![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtArealObjectStatePdu_H_ 00007 #define DtArealObjectStatePdu_H_ 00008 00009 00010 00011 00012 #if DtDIS 00013 00014 #include <vlutil/vlMachineTypes.h> 00015 #include "hostStructs.h" 00016 #include "dStateMsg.h" 00017 #include <matrix/vlMath.h> 00018 #include "exerciseConn.h" 00019 00020 #include "packets/arealObjStP.h" 00021 00022 #include "objectType.h" 00023 00024 class DT_DLL_VL DtArealObjectStatePdu; 00025 00026 00028 typedef void (*DtArealObjectStatePduCb)( 00029 DtArealObjectStatePdu* pdu, void* usr); 00030 00031 00036 class DT_DLL_VL DtArealObjectStatePdu : public DtStateMsg 00037 { 00038 00039 public: 00040 00042 DtArealObjectStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 DtArealObjectStatePdu(const DtNetArealObjectStatePdu* initial, 00044 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00045 DtArealObjectStatePdu(const DtArealObjectStatePdu& orig); 00046 00048 virtual ~DtArealObjectStatePdu(); 00049 00052 static DtPdu* create(const DtNetPacket* initial, 00053 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00054 00057 static void addCallback(DtExerciseConn* conn, 00058 DtArealObjectStatePduCb cb, void* usr); 00059 static void removeCallback(DtExerciseConn* conn, 00060 DtArealObjectStatePduCb cb, void* usr); 00061 00063 DtArealObjectStatePdu& operator=(const DtArealObjectStatePdu& orig); 00064 00066 virtual void setObjectID(const DtEntityIdentifier& id); 00067 virtual const DtEntityIdentifier& objectID() const; 00068 00070 virtual void setReferencedObjectID(const DtEntityIdentifier& id); 00071 virtual const DtEntityIdentifier& referencedObjectID() const; 00072 00074 virtual void setUpdateNumber(DtU16 field); 00075 virtual DtU16 updateNumber() const; 00076 00078 virtual void setForceID(DtForceType force); 00079 virtual DtForceType forceID() const; 00080 00082 virtual void setModifications(DtU8 value); 00083 virtual DtU8 modifications() const; 00084 00086 virtual void setModificationsField( 00087 DtModificationField field, bool value); 00088 virtual bool modificationsField( 00089 DtModificationField field) const; 00090 00092 virtual void setObjectType(const DtSyntheticEnvironmentObjectType& type); 00093 virtual const DtSyntheticEnvironmentObjectType& objectType() const; 00094 00096 virtual void setAppearance(DtU16 app); 00097 virtual DtU16 appearance() const; 00098 00100 virtual void setAppearanceAttribute( 00101 DtAppearAttribute attr, DtAppearAttrVal val); 00102 virtual DtAppearAttrVal appearanceAttribute( 00103 DtAppearAttribute attr) const; 00104 00106 virtual void setSpecificAppearance(DtU32 app); 00107 virtual DtU32 specificAppearance() const; 00108 00110 virtual void setSpecificAppearanceAttribute( 00111 const DtAppearAttribute attr, const DtAppearAttrVal val); 00112 virtual DtAppearAttrVal specificAppearanceAttribute( 00113 const DtAppearAttribute attr) const; 00114 00116 virtual bool setNumPoints(DtU16 num); 00117 virtual DtU16 numPoints() const; 00118 00120 virtual void setRequesterID(const DtSimulationAddress& type); 00121 virtual const DtSimulationAddress& requesterID() const; 00122 00124 virtual void setReceivingID(const DtSimulationAddress& type); 00125 virtual const DtSimulationAddress& receivingID() const; 00126 00128 virtual bool setPointLocation(int index, 00129 const DtVector& init); 00130 virtual bool getPointLocation(int index, 00131 DtVector& record) const; 00132 00134 virtual void printData() const; 00135 00137 virtual void printDataToStream(std::ostream& stream) const; 00138 00139 protected: 00140 00142 virtual DtPduKind internalGetPduKind() const; 00143 00145 virtual DtNetArealObjectStatePdu* netPduStruct() const; 00146 00149 DtArealObjectStatePdu* self() const; 00150 00152 virtual char* var() const; 00153 00154 protected: 00155 00157 static const int theStaticSize; 00158 00159 protected: 00160 00162 DtEntityIdentifier myEntityID; 00163 DtSyntheticEnvironmentObjectType myObjectType; 00164 DtSimulationAddress mySimulationAddress; 00165 00166 }; 00167 00168 #endif 00169 #endif 00170