VR-Link API Documentation for HLA 1.3
mineStatePdu.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 DtMinefieldStatePdu_H_
00011 #define DtMinefieldStatePdu_H_
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "pdu.h"
00018 #include <matrix/vlMath.h>
00019 #include "exerciseConn.h"
00020 
00021 #include "packets/mineStateP.h"
00022 
00023 #include "minePerimeter.h"
00024 
00025 
00026 class DT_DLL_VL DtMinefieldStatePdu;
00027 
00029 typedef void (*DtMinefieldStatePduCb)(DtMinefieldStatePdu* pdu, void* usr);
00030 
00035 
00036 class DT_DLL_VL DtMinefieldStatePdu : public DtPdu
00037 {
00038 
00039 public:
00040 
00042    DtMinefieldStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00043    DtMinefieldStatePdu(const DtNetMinefieldStatePdu* initial,
00044       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00045    DtMinefieldStatePdu(const DtMinefieldStatePdu& orig);
00046 
00048    virtual ~DtMinefieldStatePdu();
00049 
00051    DtMinefieldStatePdu& operator=(const DtMinefieldStatePdu& orig);
00052 
00054    virtual void setMinefieldID(const DtEntityIdentifier& id);
00055    virtual const DtEntityIdentifier& minefieldID() const;
00056 
00058    virtual void setSequenceNumber(DtU16 field);
00059    virtual DtU16 sequenceNumber() const;
00060 
00062    virtual void setForceID(DtForceType force);
00063    virtual DtForceType forceID() const;
00064 
00066    virtual bool setNumPerimeterPoints(DtU8 num);
00067    virtual DtU8 numPerimeterPoints() const;
00068 
00070    virtual void setMinefieldType(const DtEntityType& type);
00071    virtual const DtEntityType& minefieldType() const;
00072 
00074    virtual bool setNumMineTypes(DtU16 num);
00075    virtual DtU16 numMineTypes() 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(DtU16 app);
00087    virtual DtU16 appearance() const;
00088 
00090    virtual void setAppearanceAttribute(
00091       DtAppearAttribute attr, DtAppearAttrVal val);
00092    virtual DtAppearAttrVal appearanceAttribute(
00093       DtAppearAttribute attr) const;
00094 
00097    virtual void setMinefieldProtocolMode(DtMinefieldProtocol mode);
00098    virtual DtMinefieldProtocol minefieldProtocolMode() const;
00099 
00102    virtual bool setPerimeterPoint(int index,
00103       const DtMinefieldPerimeterRecord& init);
00104    virtual bool getPerimeterPoint(int index,
00105       DtMinefieldPerimeterRecord& record) const;
00106 
00109    virtual bool setMineType(int index,
00110       const DtEntityType& init);
00111    virtual bool getMineType(int index,
00112       DtEntityType& record) const;
00113 
00115    virtual void printData() const;
00116 
00118    virtual void printDataToStream(std::ostream& stream) const;
00119 
00120 public:
00121 
00124    static DtPdu* create(const DtNetPacket* initial,
00125       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00126 
00129    static void addCallback(DtExerciseConn* conn,
00130       DtMinefieldStatePduCb cb, void* usr);
00131    static void removeCallback(DtExerciseConn* conn,
00132       DtMinefieldStatePduCb cb, void* usr);
00133 
00134 protected:
00135 
00137    virtual DtPduKind internalGetPduKind() const;
00138 
00140    virtual DtNetMinefieldStatePdu* netPduStruct()  const; 
00141 
00144    DtMinefieldStatePdu* self() const; 
00145 
00147    virtual char* var() const;
00148 
00150    virtual int perimeterPointRecordOffset(int recordIndex) const;
00151 
00153    virtual int mineTypeRecordOffset(int recordIndex) const;
00154 
00155 protected:
00156 
00158    static const int theStaticSize;
00159 
00160 protected:
00161 
00163    DtEntityIdentifier myEntityID;
00164    DtEntityType myEntityType;
00165    DtTaitBryan myEulerAngles;
00166    DtVector myVector;
00167    DtMinefieldPerimeterRecord myPerimeterRecord;
00168 
00169 };
00170 
00171 #endif
00172 #endif
00173 

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)