VR-Link API Documentation for DIS
leArtPartsPdu.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)