![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef relLocPdu_h_ 00011 #define relLocPdu_h_ 00012 00013 #if DtDIS 00014 00015 #include "pdu.h" 00016 #include "dExerciseConn.h" 00017 #include "stateMsg.h" 00018 #include "packets/relLocP.h" 00019 00020 class DtRelativeLocationPdu; 00021 00024 typedef void (*DtRelativeLocationPduCb)(DtRelativeLocationPdu* pdu, void* usr); 00025 00030 class DT_DLL_VL DtRelativeLocationPdu : public DtStateMsg 00031 { 00032 00033 public: 00034 00037 DtRelativeLocationPdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00038 00043 DtRelativeLocationPdu( const DtNetRelativeLocationPdu* initial, 00044 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER ); 00045 00047 virtual ~DtRelativeLocationPdu(); 00048 00050 DtRelativeLocationPdu( const DtRelativeLocationPdu& orig ); 00051 00053 DtRelativeLocationPdu& operator=( const DtRelativeLocationPdu& orig ); 00054 00057 virtual void printData() const; 00058 00060 virtual void printDataToStream(std::ostream &stream) const; 00061 00066 00067 virtual DtNetRelativeLocationPdu* networkRepresentation(); 00068 virtual const DtNetRelativeLocationPdu* networkRepresentation() const; 00069 00071 virtual void setId(const DtEntityIdentifier &id); 00072 virtual const DtEntityIdentifier& id() const; 00073 00075 virtual void setHostId(const DtEntityIdentifier &id); 00076 virtual const DtEntityIdentifier& hostId() const; 00077 00079 virtual void setRelativeAlgorithm( DtDeadReckonTypes alg ); 00080 virtual DtDeadReckonTypes relativeAlgorithm() const; 00081 00083 virtual void setRelativeLocation( const DtVector& loc ); 00084 virtual const DtVector& relativeLocation() const; 00085 00087 virtual void setRelativeVelocity( const DtVector& vel ); 00088 virtual const DtVector& relativeVelocity() const; 00089 00091 virtual void setRelativeAcceleration( const DtVector& accel ); 00092 virtual const DtVector& relativeAcceleration() const; 00093 00095 virtual void setRelativeOrientation(const DtTaitBryan &orient); 00096 virtual const DtTaitBryan& relativeOrientation() const; 00097 00099 virtual void setRelativeRotationalVelocity( const DtVector& vel ); 00100 virtual const DtVector& relativeRotationalVelocity() const; 00101 00103 virtual void setNature(DtNature value); 00104 virtual DtNature nature() const; 00105 00107 virtual void setPartPosition(DtPosition value); 00108 virtual DtPosition partPosition() const; 00109 00111 virtual void setStationName(DtStationName value); 00112 virtual DtStationName stationName() const; 00113 00115 virtual void setStationNumber(DtU16 value); 00116 virtual DtU16 stationNumber() const; 00117 00123 00124 static DtPdu* create( const DtNetPacket* initial, 00125 DtBufferPtr buiffer = DtUSE_INTERNAL_BUFFER ); 00126 00133 00134 static void addCallback( DtExerciseConn *conn, DtRelativeLocationPduCb cb, 00135 void *usr ); 00136 00137 static void removeCallback( DtExerciseConn *conn, 00138 DtRelativeLocationPduCb cb, void *usr ); 00139 00140 protected: 00141 00144 00145 virtual DtPduKind internalGetPduKind() const; 00146 00149 DtRelativeLocationPdu* self() const; 00150 00151 protected: 00152 00154 00155 DtEntityIdentifier myEntityId; 00156 00157 DtEntityIdentifier myHostId; 00158 00159 DtVector myRelativeLocation; 00160 00161 DtVector myRelativeVelocity; 00162 00163 DtVector myRelativeAcceleration; 00164 00165 DtTaitBryan myRelativeOrientation; 00166 00167 DtVector myRelativeRotationalVelocity; 00168 00169 }; 00170 00171 #endif 00172 00173 #endif 00174