VR-Link API Documentation for HLA 1.3
gridDataPdu.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 DtGriddedDataPdu_H_
00011 #define DtGriddedDataPdu_H_
00012 
00013 
00014 #include "gridAxiRecVar.h"
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "pdu.h"
00018 #include "stateMsg.h" 
00019 #include <matrix/vlMath.h>
00020 
00021 #include "packets/gridDataP.h"
00022 
00023 #include "gridAxiRecFix.h"
00024 
00025 #include "gridDataRec.h"
00026 #include "gridDataRecT0.h"
00027 #include "gridDataRecT1.h"
00028 #include "gridDataRecT2.h"
00029 
00030 #include <vlpi/enviroTypeRec.h>
00031 
00032 
00033 class DT_DLL_VL DtGriddedDataPdu;
00034 
00036 typedef void (*DtGriddedDataPduCb)(DtGriddedDataPdu* pdu, void* usr);
00037 
00038 
00039 
00042 
00043 #if (DtHLA || DtTENA)
00044 class DT_DLL_VL DtGriddedDataPdu : public DtPdu
00045 #elif DtDIS
00046 class DT_DLL_VL DtGriddedDataPdu : public DtStateMsg
00047 #endif
00048 {
00049 
00050 public:
00051 
00053    DtGriddedDataPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00054    DtGriddedDataPdu(const DtNetGriddedDataPdu* initial,
00055       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00056    DtGriddedDataPdu(const DtGriddedDataPdu& orig);
00057 
00059    virtual ~DtGriddedDataPdu();
00060 
00063    static DtPdu* create(const DtNetPacket* initial,
00064       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00065 
00068    static void addCallback(DtExerciseConn* conn,
00069       DtGriddedDataPduCb cb, void* usr);
00070    static void removeCallback(DtExerciseConn* conn,
00071       DtGriddedDataPduCb cb, void* usr);
00072 
00074    DtGriddedDataPdu& operator=(const DtGriddedDataPdu& orig);
00075 
00077    virtual void setEnvSimAppID(const DtEntityIdentifier& app);
00078    virtual const DtEntityIdentifier& envSimAppID() const;
00079 
00081    virtual void setFieldNumber(DtU16 field);
00082    virtual DtU16 fieldNumber() const;
00083 
00085    virtual void setPduNumber(DtU16 num);
00086    virtual DtU16 pduNumber() const;
00087 
00089    virtual void setPduTotal(DtU16 total);
00090    virtual DtU16 pduTotal() const;
00091 
00093    virtual void setCoordSystem(DtU16 sys);
00094    virtual DtU16 coordSystem() const;
00095 
00097    virtual bool setNumGridAxes(DtU8 axes);
00098    virtual DtU8 numGridAxes() const;
00099 
00101    virtual void setConstantGrid(DtU8 constant);
00102    virtual DtU8 constantGrid() const;
00103 
00105    virtual void setEnvironmentType(const DtEnvironmentTypeRecord& type);
00106    virtual const DtEnvironmentTypeRecord& environmentType() const;
00107 
00109    virtual void setOrientation(const DtTaitBryan& orientation);
00110    virtual const DtTaitBryan& orientation() const;
00111 
00115    virtual void setSampleTime(int index, DtU32 time);
00116    virtual DtU32 sampleTime(int index) const;
00117 
00119    virtual void setTotalValues(DtU32 total);
00120    virtual DtU32 totalValues() const;
00121 
00124    virtual bool setVectorDim(DtU8 dim);
00125    virtual DtU8 vectorDim() const;
00126 
00128    virtual DtGridAxisType gridAxisRecordType(int index) const;
00129 
00136    virtual bool setGridAxisRecord(int index,
00137       const DtGridAxisRecordFixed& init);
00138    virtual bool getGridAxisRecord(int index,
00139       DtGridAxisRecordFixed& record) const;
00140    virtual bool setGridAxisRecord(int index,
00141       const DtGridAxisRecordVariable& init);
00142    virtual bool getGridAxisRecord(int index,
00143       DtGridAxisRecordVariable& record) const;
00144 
00146    virtual DtGridDataRecType gridDataRecordType(int index) const; 
00147 
00154    virtual bool setGridDataRecord(int index,
00155       const DtGridDataRecordType0& init);
00156    virtual bool getGridDataRecord(int index,
00157       DtGridDataRecordType0& record) const;
00158    virtual bool setGridDataRecord(int index,
00159       const DtGridDataRecordType1& init);
00160    virtual bool getGridDataRecord(int index,
00161       DtGridDataRecordType1& record) const;
00162    virtual bool setGridDataRecord(int index,
00163       const DtGridDataRecordType2& init);
00164    virtual bool getGridDataRecord(int index,
00165       DtGridDataRecordType2& record) const;
00166 
00168    virtual void printData() const;
00169 
00171    virtual void printDataToStream(std::ostream& stream) const;
00172 
00173 protected:
00174 
00176    virtual DtPduKind internalGetPduKind() const;
00177 
00179    virtual DtNetGriddedDataPdu* netPduStruct()  const; 
00180 
00182    virtual char* var() const;
00183 
00186    DtGriddedDataPdu* self() const; 
00187 
00189    virtual int gridAxisRecordLength(DtNetGridAxisRecordFixed* rec) const;
00190 
00192    virtual int gridDataRecordLength(DtNetGridDataRecord* rec) const;
00193 
00195    virtual int gridAxisRecordOffset(int recordIndex) const;
00196 
00198    virtual int gridDataRecordOffset(int recordIndex) const;
00199 
00201    virtual bool resizeGridAxisRecord(DtNetGridAxisRecordFixed* rec,
00202       int newSize);
00203 
00205    virtual bool resizeGridDataRecord(DtNetGridDataRecord* rec,
00206       int newSize);  
00207 
00208 protected:
00209 
00211    static const int theStaticSize;
00212 
00213 protected:
00214 
00216    DtEntityIdentifier myEntityID;
00217    DtEnvironmentTypeRecord myEnvironmentType;
00218    DtTaitBryan myEulerAngles;
00219 
00220 };
00221 
00222 #endif
00223 

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)