![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef DtLeArticulatedPartsPdu_H_ 00008 #define DtLeArticulatedPartsPdu_H_ 00009 00013 00014 #if DtDIS 00015 00016 #include "hostStructs.h" 00017 #include "dInteraction.h" 00018 #include "exerciseConn.h" 00019 #include "packets/leArtPartsP.h" 00020 #include "leEntityID.h" 00021 00022 #include <vlpi/articulatedPartCollection.h> 00023 #include <vlpi/attachedPartCollection.h> 00024 00025 #include <vlutil/vlMachineTypes.h> 00026 00027 00028 class DtLeArticulatedPartsPdu; 00029 00031 typedef void (*DtLeArticulatedPartsPduCb)( 00032 DtLeArticulatedPartsPdu* pdu, void* usr); 00033 00034 00040 class DT_DLL_VL DtLeArticulatedPartsPdu : public DtInteraction 00041 { 00042 00043 public: 00044 00046 DtLeArticulatedPartsPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00047 DtLeArticulatedPartsPdu(const DtNetLeArticulatedPartsPdu* initial, 00048 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00049 DtLeArticulatedPartsPdu(const DtLeArticulatedPartsPdu& orig); 00050 00052 virtual ~DtLeArticulatedPartsPdu(); 00053 00055 DtLeArticulatedPartsPdu& operator=(const DtLeArticulatedPartsPdu& orig); 00056 00058 virtual void setSubProtocol(DtSubProtocol value); 00059 virtual DtSubProtocol subProtocol() const; 00060 00062 virtual void setEntityID(const DtLeEntityID& id); 00063 virtual const DtLeEntityID& entityID() const; 00064 00068 virtual DtU8 numRecords() const; 00069 00072 00076 virtual bool setArtPartParameters(const DtArticulatedPartCollection& partList); 00077 virtual bool getArtPartParameters(DtArticulatedPartCollection& partList) const; 00078 00082 virtual bool setAttPartParameters(const DtAttachedPartCollection& partList); 00083 virtual bool getAttPartParameters(DtAttachedPartCollection& partList) const; 00084 00086 virtual void printData() const; 00087 00089 virtual void printDataToStream(std::ostream& stream) const; 00090 00092 virtual void printHeader() const; 00093 00095 virtual void printHeaderToStream(std::ostream& stream) const; 00096 00097 public: 00098 00101 static DtPdu* create(const DtNetPacket* initial, 00102 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00103 00106 static void addCallback(DtExerciseConn* conn, 00107 DtLeArticulatedPartsPduCb cb, void* usr); 00108 static void removeCallback(DtExerciseConn* conn, 00109 DtLeArticulatedPartsPduCb cb, void* usr); 00110 00111 protected: 00112 00114 virtual DtPduKind internalGetPduKind() const; 00115 00117 virtual DtNetLeArticulatedPartsPdu* netPduStruct() const; 00118 00121 DtLeArticulatedPartsPdu* self() const; 00122 00124 virtual char* var() const; 00125 00127 virtual void setNumRecords(DtU8 value); 00128 00130 virtual int numRecordsOffset() const; 00131 virtual int artParmOffset() const; 00132 virtual int attParmOffset() const; 00133 00134 virtual void fillAttPartNetParams(const DtAttachedPartCollection &partList, 00135 DtNetAttachedPart* tempCpy ); 00136 virtual void fillAttPartCollection(DtAttachedPartCollection &partList, 00137 const DtNetAttachedPart* tempCpy) const; 00138 00139 protected: 00140 00142 static const int theStaticSize; 00143 00144 protected: 00145 00147 int myNumArtPartParams; 00148 00150 int myNumAttPartParams; 00151 00153 DtLeEntityID myEntityID; 00154 00155 }; 00156 00157 #endif 00158 #endif 00159