VR-Link API Documentation for HLA 1516
esUpdatePdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00009 
00010 #ifndef esUpdatePdu_H_
00011 #define esUpdatePdu_H_
00012 
00013 #if DtDIS
00014 
00015 #include "hostStructs.h"
00016 #include "pdu.h"
00017 #include "exerciseConn.h"
00018 #include "packets/esUpdateP.h"
00019 
00020 #include <vlpi/articulatedPartCollection.h>
00021 #include <vlpi/attachedPartCollection.h>
00022 
00023 #include <vlutil/vlMachineTypes.h>
00024 
00025 class DtEntityStateUpdatePdu;
00026 
00028 typedef void (*DtEntityStateUpdatePduCb)(
00029       DtEntityStateUpdatePdu* pdu, void* usr);
00030 
00035 class DT_DLL_VL DtEntityStateUpdatePdu : public DtStateMsg
00036 {
00037 
00038 public:
00039 
00041    DtEntityStateUpdatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00042    DtEntityStateUpdatePdu(const DtNetEntityStateUpdatePdu* initial,
00043       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00044    DtEntityStateUpdatePdu(const DtEntityStateUpdatePdu& orig);
00045 
00047    virtual ~DtEntityStateUpdatePdu();
00048 
00051    static DtPdu* create(const DtNetPacket* initial,
00052       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00053 
00056    static void addCallback(DtExerciseConn* conn,
00057       DtEntityStateUpdatePduCb cb, void* usr);
00058    static void removeCallback(DtExerciseConn* conn,
00059       DtEntityStateUpdatePduCb cb, void* usr);
00060 
00062    DtEntityStateUpdatePdu& operator=(const DtEntityStateUpdatePdu& orig);
00063 
00065    virtual void setEntityID(const DtEntityIdentifier& id);
00066    virtual const DtEntityIdentifier& entityID() const;
00067 
00071    virtual DtU8 numRecords() const;
00072 
00074    virtual void setVelocity(const DtVector& velocity);
00075    virtual const DtVector& velocity() const;
00076 
00078    virtual void setLocation(const DtVector& coords);
00079    virtual const DtVector& location() const;
00080 
00082    virtual void setOrientation(const DtTaitBryan& orientation);
00083    virtual const DtTaitBryan& orientation() const;
00084 
00086    virtual void setAppearance(DtU32 app);
00087    virtual DtU32 appearance() const;
00088 
00090    virtual void setAppearanceAttribute(
00091       const DtAppearAttribute attr, const DtAppearAttrVal val);
00092    virtual DtAppearAttrVal appearanceAttribute(
00093       const DtAppearAttribute attr) const;
00094 
00095 
00098 
00102    virtual bool setArtPartParameters(const DtArticulatedPartCollection& partList);
00103    virtual bool getArtPartParameters(DtArticulatedPartCollection& partList) const;
00104 
00108    virtual bool setAttPartParameters(const DtAttachedPartCollection& partList);
00109    virtual bool getAttPartParameters(DtAttachedPartCollection& partList) const;
00110 
00112    virtual void printData() const;
00113 
00115    virtual void printDataToStream(std::ostream& stream) const;
00116 
00117 protected:
00118 
00120    virtual DtPduKind internalGetPduKind() const;
00121 
00123    virtual DtNetEntityStateUpdatePdu* netPduStruct()  const; 
00124 
00127    DtEntityStateUpdatePdu* self() const; 
00128 
00130    virtual char* var() const;
00131 
00133    virtual void setNumRecords(DtU8 value);
00134 
00136    virtual int artParmOffset() const;
00137    virtual int attParmOffset() const;
00138 
00139    virtual void fillAttPartNetParams(const DtAttachedPartCollection& apList,
00140       DtNetAttachedPart* netRecords);
00141    virtual void fillAttPartCollection(DtAttachedPartCollection& apList,
00142       const DtNetAttachedPart* netRecords) const;
00143 
00144 protected:
00145 
00147    static const int theStaticSize;
00148 
00149 protected:
00150 
00152    int myNumArtPartParams;
00153 
00155    int myNumAttPartParams;
00156 
00158    DtEntityIdentifier myEntityID;
00159    DtVector myVector;
00160    DtTaitBryan myEulerAngles;
00161 };
00162 
00163 
00164 #endif
00165 #endif
00166 

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)