![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtAggregateStatePdu_H_ 00007 #define DtAggregateStatePdu_H_ 00008 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "stateMsg.h" 00018 #include "exerciseConn.h" 00019 #include "aggEntList.h" 00020 #include "aggAggList.h" 00021 #include "varDatumRec.h" 00022 00023 #include <matrix/vlMath.h> 00024 00025 #include "packets/aggStateP.h" 00026 00027 class DT_DLL_VL DtAggregateStatePdu; 00028 00029 00031 typedef void (*DtAggregateStatePduCb)(DtAggregateStatePdu* pdu, void* usr); 00032 00033 00037 class DT_DLL_VL DtAggregateStatePdu : public DtStateMsg 00038 { 00039 00040 public: 00041 00043 DtAggregateStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 DtAggregateStatePdu(const DtNetAggregateStatePdu* initial, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 DtAggregateStatePdu(const DtAggregateStatePdu& orig); 00047 00049 virtual ~DtAggregateStatePdu(); 00050 00052 DtAggregateStatePdu& operator=(const DtAggregateStatePdu& orig); 00053 00055 virtual void setAggregateID(const DtEntityIdentifier& entity); 00056 virtual const DtEntityIdentifier& aggregateID() const; 00057 00059 virtual void setForceID(DtForceType force); 00060 virtual DtForceType forceID() const; 00061 00063 virtual void setAggregateState(DtAggregateState value); 00064 virtual DtAggregateState aggregateState() const; 00065 00067 virtual void setAggregateType(const DtEntityType& type); 00068 virtual const DtEntityType& aggregateType() const; 00069 00071 virtual void setFormation(DtAggregateFormation value); 00072 virtual DtAggregateFormation formation() const; 00073 00075 virtual void setMarkingCharacterSet(DtCharacterSet value); 00076 virtual DtCharacterSet markingCharacterSet() const; 00077 00079 virtual void setMarkingText(DtU8* copyFrom); 00080 virtual void getMarkingText(DtU8* copyTo) const; 00081 00083 virtual void setDimensions(const DtVector& dims); 00084 virtual const DtVector& dimensions() const; 00085 00087 virtual void setOrientation(const DtTaitBryan& orientation); 00088 virtual const DtTaitBryan& orientation() const; 00089 00091 virtual void setLocation(const DtVector& coords); 00092 virtual const DtVector& location() const; 00093 00095 virtual void setVelocity(const DtVector& coords); 00096 virtual const DtVector& velocity() const; 00097 00100 virtual bool setNumberOfDIS_Subaggregates(DtU16 newNumberOfAggregates); 00101 virtual DtU16 numberOfDIS_Subaggregates() const; 00102 00105 virtual bool setNumberOfDIS_Entities(DtU16 newNumberOfEntities); 00106 virtual DtU16 numberOfDIS_Entities() const; 00107 00110 virtual bool setNumberOfSilentSubaggregates( 00111 DtU16 newNumberOfAggregates); 00112 virtual DtU16 numberOfSilentSubaggregates() const; 00113 00116 virtual bool setNumberOfSilentEntities(DtU16 newNumberOfEntities); 00117 virtual DtU16 numberOfSilentEntities() const; 00118 00121 virtual bool setSubaggregateID(int index, 00122 const DtEntityIdentifier& aggID); 00123 virtual bool getSubaggregateID(int index, 00124 DtEntityIdentifier& aggID) const; 00125 00127 virtual bool setEntityID(int index, 00128 const DtEntityIdentifier& entID); 00129 virtual bool getEntityID(int index, 00130 DtEntityIdentifier& entID) const; 00131 00134 virtual bool setSilentAggregateList(int index, 00135 const DtSilentAggregateList& aggList); 00136 virtual bool getSilentAggregateList(int index, 00137 DtSilentAggregateList& aggList) const; 00138 00141 virtual bool setSilentEntityList(int index, 00142 const DtSilentEntityList& entList); 00143 virtual bool getSilentEntityList(int index, 00144 DtSilentEntityList& entList) const; 00145 00148 virtual bool setNumberOfDatumRecords(DtU32 newNumberOfRecords); 00149 virtual DtU32 numberOfDatumRecords() const; 00150 00153 virtual bool setVariableDatumRecord(int index, 00154 const DtVariableDatumRecord& rec); 00155 virtual bool getVariableDatumRecord(int index, 00156 DtVariableDatumRecord& rec) const; 00157 00159 virtual const DtVariableDatumRecord& variableDatumRecordConstRef( 00160 int index) const; 00161 00163 virtual void printData() const; 00164 00166 virtual void printDataToStream(std::ostream& stream) const; 00167 00168 00173 00176 virtual bool setDatumBitLength(int index, DtU32 newRecordBitLength); 00177 virtual bool getDatumBitLength(int index, DtU32& length) const; 00178 00181 virtual bool setDatumID(int index, DtDatumParam value); 00182 virtual bool getDatumID(int index, DtDatumParam& value) const; 00183 00186 virtual bool setDatumValFloat64(int index, DtFloat64 value); 00187 virtual bool getDatumValFloat64(int index, DtFloat64& value) const; 00188 00191 virtual bool setDatumValFloat32(int index, DtFloat32 value); 00192 virtual bool getDatumValFloat32(int index, DtFloat32& value) const; 00193 00196 virtual bool setDatumValInt32(int index, DtInt32 value); 00197 virtual bool getDatumValInt32(int index, DtInt32& value) const; 00198 00201 virtual bool setDatumValU32(int index, DtU32 value); 00202 virtual bool getDatumValU32(int index, DtU32& value) const; 00203 00206 virtual bool setDatumValInt16(int index, DtInt16 value); 00207 virtual bool getDatumValInt16(int index, DtInt16& value) const; 00208 00211 virtual bool setDatumValU16(int index, DtU16 value); 00212 virtual bool getDatumValU16(int index, DtU16& value) const; 00213 00216 virtual bool setDatumValU8(int index, DtU8 value); 00217 virtual bool getDatumValU8(int index, DtU8& value) const; 00218 00222 virtual bool setDatumValByteArray(int index, const DtU8* setFrom); 00223 virtual bool getDatumValByteArray(int index, DtU8* copyTo) const; 00224 00226 virtual bool getDatumValPtr(int index, DtNetU8*& datumPtr); 00227 00228 public: 00229 00232 static DtPdu* create(const DtNetPacket* initial, 00233 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00234 00237 static void addCallback(DtExerciseConn* conn, 00238 DtAggregateStatePduCb cb, void* usr); 00239 static void removeCallback(DtExerciseConn* conn, 00240 DtAggregateStatePduCb cb, void* usr); 00241 00242 protected: 00243 00245 virtual DtPduKind internalGetPduKind() const; 00246 00249 virtual DtNetAggregateStatePdu* netPduStruct() const; 00250 00253 DtAggregateStatePdu* self() const; 00254 00256 virtual char* var() const; 00257 00260 virtual int subaggregateID_Offset(int index) const; 00261 00264 virtual int entityID_Offset(int index) const; 00265 00268 virtual int paddingOffset() const; 00269 00272 virtual int paddingBytes() const; 00273 00276 virtual int silentAggregateOffset(int index) const; 00277 00280 virtual int silentEntityOffset(int index) const; 00281 00284 virtual int numberOfDatumRecordsOffset() const; 00285 00288 virtual int datumRecordOffset(int index) const; 00289 00290 protected: 00291 00293 static const int theStaticSize; 00294 00295 protected: 00296 00298 DtEntityIdentifier myEntityID; 00299 DtEntityType myEntityType; 00300 DtVector myVector; 00301 DtTaitBryan myAngles; 00302 DtVariableDatumRecord myRefRec; 00303 DtVariableDatumRecord myDumRec; 00304 }; 00305 00306 #endif 00307 #endif 00308