![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef esUpdatePdu_H_ 00011 #define esUpdatePdu_H_ 00012 00013 #if DtDIS 00014 00015 #include "hostStructs.h" 00016 #include "pdu.h" 00017 #include "exerciseConn.h" 00018 #include "packets/esUpdateP.h" 00019 00020 #include <vlpi/articulatedPartCollection.h> 00021 #include <vlpi/attachedPartCollection.h> 00022 00023 #include <vlutil/vlMachineTypes.h> 00024 00025 class DtEntityStateUpdatePdu; 00026 00028 typedef void (*DtEntityStateUpdatePduCb)( 00029 DtEntityStateUpdatePdu* pdu, void* usr); 00030 00035 class DT_DLL_VL DtEntityStateUpdatePdu : public DtStateMsg 00036 { 00037 00038 public: 00039 00041 DtEntityStateUpdatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 DtEntityStateUpdatePdu(const DtNetEntityStateUpdatePdu* initial, 00043 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 DtEntityStateUpdatePdu(const DtEntityStateUpdatePdu& orig); 00045 00047 virtual ~DtEntityStateUpdatePdu(); 00048 00051 static DtPdu* create(const DtNetPacket* initial, 00052 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00053 00056 static void addCallback(DtExerciseConn* conn, 00057 DtEntityStateUpdatePduCb cb, void* usr); 00058 static void removeCallback(DtExerciseConn* conn, 00059 DtEntityStateUpdatePduCb cb, void* usr); 00060 00062 DtEntityStateUpdatePdu& operator=(const DtEntityStateUpdatePdu& orig); 00063 00065 virtual void setEntityID(const DtEntityIdentifier& id); 00066 virtual const DtEntityIdentifier& entityID() const; 00067 00071 virtual DtU8 numRecords() const; 00072 00074 virtual void setVelocity(const DtVector& velocity); 00075 virtual const DtVector& velocity() const; 00076 00078 virtual void setLocation(const DtVector& coords); 00079 virtual const DtVector& location() const; 00080 00082 virtual void setOrientation(const DtTaitBryan& orientation); 00083 virtual const DtTaitBryan& orientation() const; 00084 00086 virtual void setAppearance(DtU32 app); 00087 virtual DtU32 appearance() const; 00088 00090 virtual void setAppearanceAttribute( 00091 const DtAppearAttribute attr, const DtAppearAttrVal val); 00092 virtual DtAppearAttrVal appearanceAttribute( 00093 const DtAppearAttribute attr) const; 00094 00095 00098 00102 virtual bool setArtPartParameters(const DtArticulatedPartCollection& partList); 00103 virtual bool getArtPartParameters(DtArticulatedPartCollection& partList) const; 00104 00108 virtual bool setAttPartParameters(const DtAttachedPartCollection& partList); 00109 virtual bool getAttPartParameters(DtAttachedPartCollection& partList) const; 00110 00112 virtual void printData() const; 00113 00115 virtual void printDataToStream(std::ostream& stream) const; 00116 00117 protected: 00118 00120 virtual DtPduKind internalGetPduKind() const; 00121 00123 virtual DtNetEntityStateUpdatePdu* netPduStruct() const; 00124 00127 DtEntityStateUpdatePdu* self() const; 00128 00130 virtual char* var() const; 00131 00133 virtual void setNumRecords(DtU8 value); 00134 00136 virtual int artParmOffset() const; 00137 virtual int attParmOffset() const; 00138 00139 virtual void fillAttPartNetParams(const DtAttachedPartCollection& apList, 00140 DtNetAttachedPart* netRecords); 00141 virtual void fillAttPartCollection(DtAttachedPartCollection& apList, 00142 const DtNetAttachedPart* netRecords) const; 00143 00144 protected: 00145 00147 static const int theStaticSize; 00148 00149 protected: 00150 00152 int myNumArtPartParams; 00153 00155 int myNumAttPartParams; 00156 00158 DtEntityIdentifier myEntityID; 00159 DtVector myVector; 00160 DtTaitBryan myEulerAngles; 00161 }; 00162 00163 00164 #endif 00165 #endif 00166