![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtPointObjectStatePdu_H_ 00011 #define DtPointObjectStatePdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "stateMsg.h" 00018 #include <matrix/vlMath.h> 00019 #include "packets/pointObjStP.h" 00020 #include "objectType.h" 00021 00022 class DT_DLL_VL DtExerciseConn; 00023 class DT_DLL_VL DtPointObjectStatePdu; 00024 00026 typedef void (*DtPointObjectStatePduCb)(DtPointObjectStatePdu* pdu, void* usr); 00027 00028 00033 00034 class DT_DLL_VL DtPointObjectStatePdu : public DtStateMsg 00035 { 00036 00037 public: 00038 00040 DtPointObjectStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 DtPointObjectStatePdu(const DtNetPointObjectStatePdu* initial, 00042 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 DtPointObjectStatePdu(const DtPointObjectStatePdu& orig); 00044 00046 virtual ~DtPointObjectStatePdu(); 00047 00049 DtPointObjectStatePdu& operator=(const DtPointObjectStatePdu& orig); 00050 00052 virtual void setObjectID(const DtEntityIdentifier& id); 00053 virtual const DtEntityIdentifier& objectID() const; 00054 00056 virtual void setReferencedObjectID(const DtEntityIdentifier& id); 00057 virtual const DtEntityIdentifier& referencedObjectID() const; 00058 00060 virtual void setUpdateNumber(DtU16 field); 00061 virtual DtU16 updateNumber() const; 00062 00064 virtual void setForceID(DtForceType force); 00065 virtual DtForceType forceID() const; 00066 00068 virtual void setModifications(DtU8 value); 00069 virtual DtU8 modifications() const; 00070 00072 virtual void setModificationsField( 00073 DtModificationField field, bool value); 00074 virtual bool modificationsField( 00075 DtModificationField field) const; 00076 00078 virtual void setObjectType(const DtSyntheticEnvironmentObjectType& type); 00079 virtual const DtSyntheticEnvironmentObjectType& objectType() const; 00080 00082 virtual void setLocation(const DtVector& coords); 00083 virtual const DtVector& location() const; 00084 00086 virtual void setOrientation(const DtTaitBryan& orientation); 00087 virtual const DtTaitBryan& orientation() const; 00088 00090 virtual void setAppearance(DtU16 app); 00091 virtual DtU16 appearance() const; 00092 00094 virtual void setAppearanceAttribute( 00095 DtAppearAttribute attr, DtAppearAttrVal val); 00096 virtual DtAppearAttrVal appearanceAttribute( 00097 DtAppearAttribute attr) const; 00098 00100 virtual void setSpecificAppearance(DtU32 app); 00101 virtual DtU32 specificAppearance() const; 00102 00104 virtual void setSpecificAppearanceAttribute( 00105 const DtAppearAttribute attr, const DtAppearAttrVal val); 00106 virtual DtAppearAttrVal specificAppearanceAttribute( 00107 const DtAppearAttribute attr) const; 00108 00110 virtual void setRequesterID(const DtSimulationAddress& type); 00111 virtual const DtSimulationAddress& requesterID() const; 00112 00114 virtual void setReceivingID(const DtSimulationAddress& type); 00115 virtual const DtSimulationAddress& receivingID() const; 00116 00118 virtual void printData() const; 00119 00121 virtual void printDataToStream(std::ostream& stream) const; 00122 00123 public: 00124 00127 static DtPdu* create(const DtNetPacket* initial, 00128 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00129 00132 static void addCallback(DtExerciseConn* conn, 00133 DtPointObjectStatePduCb cb, void* usr); 00134 static void removeCallback(DtExerciseConn* conn, 00135 DtPointObjectStatePduCb cb, void* usr); 00136 00137 protected: 00138 00140 virtual DtPduKind internalGetPduKind() const; 00141 00143 virtual DtNetPointObjectStatePdu* netPduStruct() const; 00144 00147 DtPointObjectStatePdu* self() const; 00148 00149 protected: 00150 00152 static const int theStaticSize; 00153 00154 protected: 00155 00157 DtEntityIdentifier myEntityID; 00158 DtSyntheticEnvironmentObjectType myObjectType; 00159 DtVector myVector; 00160 DtTaitBryan myEulerAngles; 00161 DtSimulationAddress mySimulationAddress; 00162 00163 }; 00164 00165 #endif 00166 #endif 00167