![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00008 00009 #ifndef DtIsPartOfPdu_H_ 00010 #define DtIsPartOfPdu_H_ 00011 00012 #if DtDIS 00013 00014 #include <vlutil/vlMachineTypes.h> 00015 #include <matrix/vlMath.h> 00016 00017 #include "hostStructs.h" 00018 #include "dInteraction.h" 00019 #include "exerciseConn.h" 00020 #include "packets/isPartOfP.h" 00021 00022 00023 class DT_DLL_VL DtIsPartOfPdu; 00024 00026 typedef void (*DtIsPartOfPduCb)(DtIsPartOfPdu* pdu, void* usr); 00027 00028 00032 class DT_DLL_VL DtIsPartOfPdu : public DtInteraction 00033 { 00034 00035 public: 00036 00038 DtIsPartOfPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 DtIsPartOfPdu(const DtNetIsPartOfPdu* initial, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 DtIsPartOfPdu(const DtIsPartOfPdu& orig); 00042 00044 virtual ~DtIsPartOfPdu(); 00045 00047 DtIsPartOfPdu& operator=(const DtIsPartOfPdu& orig); 00048 00050 virtual void setOriginatingEntityID(const DtEntityIdentifier& entity); 00051 virtual const DtEntityIdentifier& originatingEntityID() const; 00052 00054 virtual void setReceivingEntityID(const DtEntityIdentifier& entity); 00055 virtual const DtEntityIdentifier& receivingEntityID() const; 00056 00058 virtual void setNature(DtNature value); 00059 virtual DtNature nature() const; 00060 00062 virtual void setConstituentPartPosition(DtPosition value); 00063 virtual DtPosition constituentPartPosition() const; 00064 00066 virtual void setPartLocation(const DtVector& coords); 00067 virtual const DtVector& partLocation() const; 00068 00070 virtual void setStationName(DtStationName value); 00071 virtual DtStationName stationName() const; 00072 00074 virtual void setStationNumber(DtU16 value); 00075 virtual DtU16 stationNumber() const; 00076 00078 virtual void setEntityType(const DtEntityType& type); 00079 virtual const DtEntityType& entityType() const; 00080 00082 virtual void printData() const; 00083 00085 virtual void printDataToStream(std::ostream& stream) const; 00086 00087 public: 00088 00091 static DtPdu* create(const DtNetPacket* initial, 00092 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00093 00096 static void addCallback(DtExerciseConn* conn, 00097 DtIsPartOfPduCb cb, void* usr); 00098 static void removeCallback(DtExerciseConn* conn, 00099 DtIsPartOfPduCb cb, void* usr); 00100 00101 protected: 00102 00104 virtual DtPduKind internalGetPduKind() const; 00105 00108 virtual DtNetIsPartOfPdu* netPduStruct() const; 00109 00112 DtIsPartOfPdu* self() const; 00113 00114 protected: 00115 00117 static const int theStaticSize; 00118 00119 protected: 00120 00122 DtEntityIdentifier myEntityID; 00123 DtVector myVector; 00124 DtEntityType myEntityType; 00125 00126 }; 00127 00128 #endif 00129 #endif 00130