![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtLinearObjectStatePdu_H_ 00007 #define DtLinearObjectStatePdu_H_ 00008 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include <matrix/vlMath.h> 00018 #include "stateMsg.h" 00019 00020 #include "packets/linObjStP.h" 00021 00022 #include "objectType.h" 00023 00024 00025 class DT_DLL_VL DtExerciseConn; 00026 class DT_DLL_VL DtLinearObjectStatePdu; 00027 class DT_DLL_VL DtLinearSegmentParameter; 00028 00030 typedef void (*DtLinearObjectStatePduCb)( 00031 DtLinearObjectStatePdu* pdu, void* usr); 00032 00039 class DT_DLL_VL DtLinearObjectStatePdu : public DtStateMsg 00040 { 00041 00042 public: 00043 00045 DtLinearObjectStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 DtLinearObjectStatePdu(const DtNetLinearObjectStatePdu* initial, 00047 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 DtLinearObjectStatePdu(const DtLinearObjectStatePdu& orig); 00049 00051 virtual ~DtLinearObjectStatePdu(); 00052 00054 DtLinearObjectStatePdu& operator=(const DtLinearObjectStatePdu& orig); 00055 00057 virtual void setObjectID(const DtEntityIdentifier& id); 00058 virtual const DtEntityIdentifier& objectID() const; 00059 00061 virtual void setReferencedObjectID(const DtEntityIdentifier& id); 00062 virtual const DtEntityIdentifier& referencedObjectID() const; 00063 00065 virtual void setUpdateNumber(DtU16 field); 00066 virtual DtU16 updateNumber() const; 00067 00069 virtual void setForceID(DtForceType force); 00070 virtual DtForceType forceID() const; 00071 00073 virtual bool setNumSegments(DtU8 num); 00074 virtual DtU8 numSegments() const; 00075 00077 virtual void setRequesterID(const DtSimulationAddress& type); 00078 virtual const DtSimulationAddress& requesterID() const; 00079 00081 virtual void setReceivingID(const DtSimulationAddress& type); 00082 virtual const DtSimulationAddress& receivingID() const; 00083 00085 virtual void setObjectType(const DtSyntheticEnvironmentObjectType& type); 00086 virtual const DtSyntheticEnvironmentObjectType& objectType() const; 00087 00090 virtual bool setLinearSegmentParameter(int index, 00091 const DtLinearSegmentParameter& init); 00092 virtual bool getLinearSegmentParameter(int index, 00093 DtLinearSegmentParameter& record) const; 00094 00096 virtual void printData() const; 00097 00099 virtual void printDataToStream(std::ostream& stream) const; 00100 00101 public: 00102 00105 static DtPdu* create(const DtNetPacket* initial, 00106 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00107 00110 static void addCallback(DtExerciseConn* conn, 00111 DtLinearObjectStatePduCb cb, void* usr); 00112 static void removeCallback(DtExerciseConn* conn, 00113 DtLinearObjectStatePduCb cb, void* usr); 00114 00115 protected: 00116 00118 virtual DtPduKind internalGetPduKind() const; 00119 00121 virtual DtNetLinearObjectStatePdu* netPduStruct() const; 00122 00125 DtLinearObjectStatePdu* self() const; 00126 00128 virtual char* var() const; 00129 00130 protected: 00131 00133 static const int theStaticSize; 00134 00135 protected: 00136 00138 DtEntityIdentifier myEntityID; 00139 DtSyntheticEnvironmentObjectType myObjectType; 00140 DtSimulationAddress mySimulationAddress; 00141 00142 }; 00143 00144 #endif 00145 #endif 00146