![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtMinefieldDataPdu_H_ 00011 #define DtMinefieldDataPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "dInteraction.h" 00018 #include <matrix/vlMath.h> 00019 #include "exerciseConn.h" 00020 00021 #include "packets/mineDataP.h" 00022 00023 00024 class DT_DLL_VL DtMinefieldDataPdu; 00025 00027 typedef void (*DtMinefieldDataPduCb)(DtMinefieldDataPdu* pdu, void* usr); 00028 00029 00033 class DT_DLL_VL DtMinefieldDataPdu : public DtInteraction 00034 { 00035 00036 public: 00037 00039 DtMinefieldDataPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 DtMinefieldDataPdu(const DtNetMinefieldDataPdu* initial, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 DtMinefieldDataPdu(const DtMinefieldDataPdu& orig); 00043 00045 virtual ~DtMinefieldDataPdu(); 00046 00048 DtMinefieldDataPdu& operator=(const DtMinefieldDataPdu& orig); 00049 00051 virtual void setMinefieldID(const DtEntityIdentifier& id); 00052 virtual const DtEntityIdentifier& minefieldID() const; 00053 00055 virtual void setRequestingEntityID(const DtEntityIdentifier& id); 00056 virtual const DtEntityIdentifier& requestingEntityID() const; 00057 00059 virtual void setMinefieldSequenceNumber(DtU16 field); 00060 virtual DtU16 minefieldSequenceNumber() const; 00061 00063 virtual void setRequestID(DtU8 value); 00064 virtual DtU8 requestID() const; 00065 00067 virtual void setPDU_SequenceNumber(DtU8 value); 00068 virtual DtU8 PDU_SequenceNumber() const; 00069 00071 virtual void setNumberOfPdus(DtU8 value); 00072 virtual DtU8 numberOfPdus() const; 00073 00076 virtual bool setNumberOfMines(DtU8 value); 00077 virtual DtU8 numberOfMines() const; 00078 00081 virtual bool setNumberOfSensorTypes(DtU8 value); 00082 virtual DtU8 numberOfSensorTypes() const; 00083 00086 virtual void setDataFilter(DtU32 value); 00087 virtual DtU32 dataFilter() const; 00088 00091 virtual void setDataFilterBit( 00092 DtMinefieldDataFilterField field, bool value); 00093 virtual bool dataFilterBit(DtMinefieldDataFilterField field) const; 00094 00096 virtual void setMineType(const DtEntityType& value); 00097 virtual const DtEntityType& mineType() const; 00098 00101 virtual bool setSensorTypeCategory( 00102 int sensorIndex, DtSensorTypeCategory value); 00103 virtual bool getSensorTypeCategory( 00104 int sensorIndex, DtSensorTypeCategory& value) const; 00105 00108 virtual bool setSensorTypeSubcategory( 00109 int sensorIndex, DtU16 value); 00110 virtual bool getSensorTypeSubcategory( 00111 int sensorIndex, DtU16& value) const; 00112 00114 virtual bool setMineLocation(int mineIndex, const DtVector& value); 00115 virtual bool getMineLocation(int mineIndex, DtVector& value) const; 00116 00119 virtual bool setGroundBurialDepthOffset( 00120 int mineIndex, DtFloat32 value); 00121 virtual bool getGroundBurialDepthOffset( 00122 int mineIndex, DtFloat32& value) const; 00123 00126 virtual bool setWaterBurialDepthOffset( 00127 int mineIndex, DtFloat32 value); 00128 virtual bool getWaterBurialDepthOffset( 00129 int mineIndex, DtFloat32& value) const; 00130 00133 virtual bool setSnowBurialDepthOffset( 00134 int mineIndex, DtFloat32 value); 00135 virtual bool getSnowBurialDepthOffset( 00136 int mineIndex, DtFloat32& value) const; 00137 00140 virtual bool setMineOrientation( 00141 int mineIndex, const DtTaitBryan& value); 00142 virtual bool getMineOrientation( 00143 int mineIndex, DtTaitBryan& value) const; 00144 00147 virtual bool setThermalContrast(int mineIndex, DtFloat32 value); 00148 virtual bool getThermalContrast(int mineIndex, DtFloat32& value) const; 00149 00152 virtual bool setReflectance(int mineIndex, DtFloat32 value); 00153 virtual bool getReflectance(int mineIndex, DtFloat32& value) const; 00154 00157 virtual bool setMineEmplacementTime(int mineIndex, DtTime value); 00158 virtual bool getMineEmplacementTime(int mineIndex, DtTime& value) const; 00159 00161 virtual bool setMineEntityID(int mineIndex, DtU16 value); 00162 virtual bool getMineEntityID(int mineIndex, DtU16& value) const; 00163 00166 virtual bool setPrimaryFusing(int mineIndex, 00167 DtMinefieldFusing value); 00168 virtual bool getPrimaryFusing(int mineIndex, 00169 DtMinefieldFusing& value) const; 00170 00173 virtual bool setSecondaryFusing(int mineIndex, 00174 DtMinefieldFusing value); 00175 virtual bool getSecondaryFusing(int mineIndex, 00176 DtMinefieldFusing& value) const; 00177 00180 virtual bool setAntiHandlingDevice(int mineIndex, 00181 DtMinefieldAntiHandlingDevice value); 00182 virtual bool getAntiHandlingDevice(int mineIndex, 00183 DtMinefieldAntiHandlingDevice& value) const; 00184 00187 virtual bool setScalarDetectionCoefficient( 00188 int sensorIndex, int mineIndex, DtU8 value); 00189 virtual bool getScalarDetectionCoefficient( 00190 int sensorIndex, int mineIndex, DtU8& value) const; 00191 00194 virtual bool setMinefieldAlgae( 00195 int mineIndex, DtMinefieldAlgae value); 00196 virtual bool getMinefieldAlgae( 00197 int mineIndex, DtMinefieldAlgae& value) const; 00198 00201 virtual bool setPaintScheme( 00202 int mineIndex, DtMinefieldPaintScheme value); 00203 virtual bool getPaintScheme( 00204 int mineIndex, DtMinefieldPaintScheme& value) const; 00205 00208 virtual bool setNumTripWires(int mineIndex, DtU8 num); 00209 virtual bool getNumTripWires(int mineIndex, DtU8& num) const; 00210 00213 virtual bool setNumVertices( 00214 int mineIndex, int wireIndex, DtU8 num); 00215 virtual bool getNumVertices( 00216 int mineIndex, int wireIndex, DtU8& num) const; 00217 00220 virtual bool setVertex(int mineIndex, int wireIndex, int vertexIndex, 00221 const DtVector& value); 00222 virtual bool getVertex(int mineIndex, int wireIndex, int vertexIndex, 00223 DtVector& value) const; 00224 00226 virtual void printData() const; 00227 00229 virtual void printDataToStream(std::ostream& stream) const; 00230 00231 public: 00232 00235 static DtPdu* create(const DtNetPacket* initial, 00236 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00237 00240 static void addCallback(DtExerciseConn* conn, 00241 DtMinefieldDataPduCb cb, void* usr); 00242 static void removeCallback(DtExerciseConn* conn, 00243 DtMinefieldDataPduCb cb, void* usr); 00244 00245 protected: 00246 00248 virtual DtPduKind internalGetPduKind() const; 00249 00251 virtual DtNetMinefieldDataPdu* netPduStruct() const; 00252 00255 DtMinefieldDataPdu* self() const; 00256 00258 virtual char* var() const; 00259 00261 virtual int sensorTypeRecordOffset(int sensorIndex) const; 00262 00264 virtual int sensorTypePaddingOffset() const; 00265 00267 virtual int sensorTypePaddingBytes() const; 00268 00270 virtual int mineLocationRecordOffset(int mineIndex) const; 00271 00273 virtual int groundBurialDepthRecordOffset(int mineIndex) const; 00274 00276 virtual int waterBurialDepthRecordOffset(int mineIndex) const; 00277 00279 virtual int snowBurialDepthRecordOffset(int mineIndex) const; 00280 00282 virtual int mineOrientationRecordOffset(int mineIndex) const; 00283 00285 virtual int thermalContrastRecordOffset(int mineIndex) const; 00286 00288 virtual int reflectanceRecordOffset(int mineIndex) const; 00289 00291 virtual int mineEmplacementTimeRecordOffset(int mineIndex) const; 00292 00294 virtual int mineEntityID_RecordOffset(int mineIndex) const; 00295 00297 virtual int fusingRecordOffset(int mineIndex) const; 00298 00300 virtual int scalarDetectionCoefficientRecordOffset( 00301 int sensorIndex, int mineIndex) const; 00302 00304 virtual int paintSchemeRecordOffset(int mineIndex) const; 00305 00307 virtual int paintSchemePaddingOffset() const; 00308 00310 virtual int paintSchemePaddingBytes() const; 00311 00313 virtual int numberOfTripWiresRecordOffset(int mineIndex) const; 00314 00316 virtual int numberOfTripWiresPaddingOffset() const; 00317 00319 virtual int numberOfTripWiresPaddingBytes() const; 00320 00324 virtual int variableDataLengthAfterReset() const; 00325 00327 virtual int numberOfVerticesRecordOffset( 00328 int mineIndex, int wireIndex) const; 00329 00332 virtual int numberOfVerticesPaddingOffset() const; 00333 00335 virtual int numberOfVerticesPaddingBytes() const; 00336 00338 virtual int vertexRecordOffset(int mineIndex, int wireIndex, 00339 int vertexIndex) const; 00340 00342 virtual int variableDataLength() const; 00343 00344 protected: 00345 00347 static const int theStaticSize; 00348 00349 protected: 00350 00352 DtEntityIdentifier myEntityID; 00353 DtEntityType myEntityType; 00354 00355 }; 00356 00357 #endif 00358 #endif 00359