VR-Link API Documentation for HLA Evolved
aggStatePdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 #ifndef DtAggregateStatePdu_H_
00007 #define DtAggregateStatePdu_H_
00008 
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "stateMsg.h"
00018 #include "exerciseConn.h"
00019 #include "aggEntList.h"
00020 #include "aggAggList.h"
00021 #include "varDatumRec.h"
00022 
00023 #include <matrix/vlMath.h>
00024 
00025 #include "packets/aggStateP.h"
00026 
00027 class DT_DLL_VL DtAggregateStatePdu;
00028 
00029 
00031 typedef void (*DtAggregateStatePduCb)(DtAggregateStatePdu* pdu, void* usr);
00032 
00033 
00037 class DT_DLL_VL DtAggregateStatePdu : public DtStateMsg
00038 {
00039 
00040 public:
00041 
00043    DtAggregateStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00044    DtAggregateStatePdu(const DtNetAggregateStatePdu* initial,
00045       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00046    DtAggregateStatePdu(const DtAggregateStatePdu& orig);
00047 
00049    virtual ~DtAggregateStatePdu();
00050 
00052    DtAggregateStatePdu& operator=(const DtAggregateStatePdu& orig);
00053 
00055    virtual void setAggregateID(const DtEntityIdentifier& entity);
00056    virtual const DtEntityIdentifier& aggregateID() const;
00057 
00059    virtual void setForceID(DtForceType force);
00060    virtual DtForceType forceID() const;
00061 
00063    virtual void setAggregateState(DtAggregateState value);
00064    virtual DtAggregateState aggregateState() const;
00065 
00067    virtual void setAggregateType(const DtEntityType& type);
00068    virtual const DtEntityType& aggregateType() const;
00069 
00071    virtual void setFormation(DtAggregateFormation value);
00072    virtual DtAggregateFormation formation() const; 
00073 
00075    virtual void setMarkingCharacterSet(DtCharacterSet value);
00076    virtual DtCharacterSet markingCharacterSet() const;
00077 
00079    virtual void setMarkingText(DtU8* copyFrom);
00080    virtual void getMarkingText(DtU8* copyTo) const;
00081 
00083    virtual void setDimensions(const DtVector& dims);
00084    virtual const DtVector& dimensions() const;
00085 
00087    virtual void setOrientation(const DtTaitBryan& orientation);
00088    virtual const DtTaitBryan& orientation() const;
00089 
00091    virtual void setLocation(const DtVector& coords);
00092    virtual const DtVector& location() const;
00093 
00095    virtual void setVelocity(const DtVector& coords);
00096    virtual const DtVector& velocity() const;
00097 
00100    virtual bool setNumberOfDIS_Subaggregates(DtU16 newNumberOfAggregates);
00101    virtual DtU16 numberOfDIS_Subaggregates() const;
00102 
00105    virtual bool setNumberOfDIS_Entities(DtU16 newNumberOfEntities);
00106    virtual DtU16 numberOfDIS_Entities() const;
00107 
00110    virtual bool setNumberOfSilentSubaggregates(
00111       DtU16 newNumberOfAggregates);
00112    virtual DtU16 numberOfSilentSubaggregates() const;
00113 
00116    virtual bool setNumberOfSilentEntities(DtU16 newNumberOfEntities);
00117    virtual DtU16 numberOfSilentEntities() const;
00118 
00121    virtual bool setSubaggregateID(int index,
00122       const DtEntityIdentifier& aggID);
00123    virtual bool getSubaggregateID(int index,
00124       DtEntityIdentifier& aggID) const;
00125 
00127    virtual bool setEntityID(int index,
00128       const DtEntityIdentifier& entID);
00129    virtual bool getEntityID(int index,
00130       DtEntityIdentifier& entID) const;
00131 
00134    virtual bool setSilentAggregateList(int index,
00135       const DtSilentAggregateList& aggList);
00136    virtual bool getSilentAggregateList(int index,
00137       DtSilentAggregateList& aggList) const;
00138 
00141    virtual bool setSilentEntityList(int index,
00142       const DtSilentEntityList& entList);
00143    virtual bool getSilentEntityList(int index,
00144       DtSilentEntityList& entList) const;
00145 
00148    virtual bool setNumberOfDatumRecords(DtU32 newNumberOfRecords);
00149    virtual DtU32 numberOfDatumRecords() const;
00150 
00153    virtual bool setVariableDatumRecord(int index,
00154       const DtVariableDatumRecord& rec);
00155    virtual bool getVariableDatumRecord(int index,
00156       DtVariableDatumRecord& rec) const;
00157 
00159    virtual const DtVariableDatumRecord& variableDatumRecordConstRef(
00160       int index) const;
00161 
00163    virtual void printData() const;
00164 
00166    virtual void printDataToStream(std::ostream& stream) const;
00167 
00168 
00173 
00176    virtual bool setDatumBitLength(int index, DtU32 newRecordBitLength);
00177    virtual bool getDatumBitLength(int index, DtU32& length) const;
00178 
00181    virtual bool setDatumID(int index, DtDatumParam value);
00182    virtual bool getDatumID(int index, DtDatumParam& value) const;
00183 
00186    virtual bool setDatumValFloat64(int index, DtFloat64 value);
00187    virtual bool getDatumValFloat64(int index, DtFloat64& value) const;
00188 
00191    virtual bool setDatumValFloat32(int index, DtFloat32 value);
00192    virtual bool getDatumValFloat32(int index, DtFloat32& value) const;
00193 
00196    virtual bool setDatumValInt32(int index, DtInt32 value);
00197    virtual bool getDatumValInt32(int index, DtInt32& value) const;
00198 
00201    virtual bool setDatumValU32(int index, DtU32 value);
00202    virtual bool getDatumValU32(int index, DtU32& value) const;
00203 
00206    virtual bool setDatumValInt16(int index, DtInt16 value);
00207    virtual bool getDatumValInt16(int index, DtInt16& value) const;
00208 
00211    virtual bool setDatumValU16(int index, DtU16 value);
00212    virtual bool getDatumValU16(int index, DtU16& value) const;
00213 
00216    virtual bool setDatumValU8(int index, DtU8 value);
00217    virtual bool getDatumValU8(int index, DtU8& value) const;
00218 
00222    virtual bool setDatumValByteArray(int index, const DtU8* setFrom);
00223    virtual bool getDatumValByteArray(int index, DtU8* copyTo) const;
00224 
00226    virtual bool getDatumValPtr(int index, DtNetU8*& datumPtr);
00227 
00228 public:
00229 
00232    static DtPdu* create(const DtNetPacket* initial,
00233       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00234 
00237    static void addCallback(DtExerciseConn* conn,
00238       DtAggregateStatePduCb cb, void* usr);
00239    static void removeCallback(DtExerciseConn* conn,
00240       DtAggregateStatePduCb cb, void* usr);
00241 
00242 protected:
00243 
00245    virtual DtPduKind internalGetPduKind() const;
00246 
00249    virtual DtNetAggregateStatePdu* netPduStruct()  const; 
00250 
00253    DtAggregateStatePdu* self() const;
00254 
00256    virtual char* var() const;
00257 
00260    virtual int subaggregateID_Offset(int index) const; 
00261 
00264    virtual int entityID_Offset(int index) const; 
00265 
00268    virtual int paddingOffset() const;
00269 
00272    virtual int paddingBytes() const;
00273 
00276    virtual int silentAggregateOffset(int index) const;
00277 
00280    virtual int silentEntityOffset(int index) const;
00281 
00284    virtual int numberOfDatumRecordsOffset() const;
00285 
00288    virtual int datumRecordOffset(int index) const;
00289 
00290 protected:
00291 
00293    static const int theStaticSize;
00294 
00295 protected:
00296 
00298    DtEntityIdentifier myEntityID;
00299    DtEntityType myEntityType;
00300    DtVector myVector;
00301    DtTaitBryan myAngles;
00302    DtVariableDatumRecord myRefRec;
00303    DtVariableDatumRecord myDumRec;
00304 };
00305 
00306 #endif
00307 #endif
00308 

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)