VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
minefieldStatePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "pdu.h"
17 #include <matrix/vlMath.h>
18 #include "exerciseConn.h"
19 
20 #include "packets/mineStateP.h"
21 
23 
24 
25 class DT_DLL_VL DtMinefieldStatePdu;
26 
28 typedef void (*DtMinefieldStatePduCb)(DtMinefieldStatePdu* pdu, void* usr);
29 
34 
35 class DT_DLL_VL DtMinefieldStatePdu : public DtStateMsg
36 {
37 
38 public:
39 
41  DtMinefieldStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
42  DtMinefieldStatePdu(const DtNetMinefieldStatePdu* initial,
43  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
44  DtMinefieldStatePdu(const DtMinefieldStatePdu& orig);
45 
47  virtual ~DtMinefieldStatePdu();
48 
50  DtMinefieldStatePdu& operator=(const DtMinefieldStatePdu& orig);
51 
53  virtual void setMinefieldID(const DtEntityIdentifier& id);
54  virtual const DtEntityIdentifier& minefieldID() const;
55 
57  virtual void setSequenceNumber(DtU16 field);
58  virtual DtU16 sequenceNumber() const;
59 
61  virtual void setForceID(DtForceType force);
62  virtual DtForceType forceID() const;
63 
65  virtual bool setNumPerimeterPoints(DtU8 num);
66  virtual DtU8 numPerimeterPoints() const;
67 
69  virtual void setMinefieldType(const DtEntityType& type);
70  virtual const DtEntityType& minefieldType() const;
71 
73  virtual bool setNumMineTypes(DtU16 num);
74  virtual DtU16 numMineTypes() const;
75 
77  virtual void setLocation(const DtVector& coords);
78  virtual const DtVector& location() const;
79 
81  virtual void setOrientation(const DtTaitBryan& orientation);
82  virtual const DtTaitBryan& orientation() const;
83 
85  virtual void setAppearance(DtU16 app);
86  virtual DtU16 appearance() const;
87 
89  virtual void setAppearanceAttribute(
91  virtual DtAppearAttrVal appearanceAttribute(
92  DtAppearAttribute attr) const;
93 
96  virtual void setMinefieldProtocolMode(DtMinefieldProtocol mode);
97  virtual DtMinefieldProtocol minefieldProtocolMode() const;
98 
101  virtual bool setPerimeterPoint(int index,
102  const DtMinefieldPerimeterRecord& init);
103  virtual bool getPerimeterPoint(int index,
104  DtMinefieldPerimeterRecord& record) const;
105 
108  virtual bool setMineType(int index,
109  const DtEntityType& init);
110  virtual bool getMineType(int index,
111  DtEntityType& record) const;
112 
114  virtual void printData() const;
115 
117  virtual void printDataToStream(std::ostream& stream) const;
118 
119 public:
120 
123  static DtPdu* create(const DtNetPacket* initial,
124  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
125 
128  static void addCallback(DtExerciseConn* conn,
129  DtMinefieldStatePduCb cb, void* usr);
130  static void removeCallback(DtExerciseConn* conn,
131  DtMinefieldStatePduCb cb, void* usr);
132 
133 protected:
134 
136  virtual DtPduKind internalGetPduKind() const;
137 
139  virtual DtNetMinefieldStatePdu* netPduStruct() const;
140 
143  DtMinefieldStatePdu* self() const;
144 
146  virtual char* var() const;
147 
149  virtual int perimeterPointRecordOffset(int recordIndex) const;
150 
152  virtual int mineTypeRecordOffset(int recordIndex) const;
153 
154 protected:
155 
157  static const int theStaticSize;
158 
159 protected:
160 
162  DtEntityIdentifier myEntityID;
163  DtEntityType myEntityType;
164  DtTaitBryan myEulerAngles;
165  DtVector myVector;
166  DtMinefieldPerimeterRecord myPerimeterRecord;
167 
168 };
169 
170 #endif
DtAppearAttrVal
Create an enumeration type, but since many of the names will have the same value, define them all as ...
Definition: disEnums.h:1425
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
DtMinefieldProtocol
Definition: disEnums.h:2725
This file defines math constants and methods which may be useful in simulations.
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
Definition: vlVector.h:224
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
DtForceType
Section 4.
Definition: disEnums.h:199
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtAppearAttribute
If you put spaces between the &quot;&lt;&lt;&quot; and the surrounding strings, enumstr gets confused and thinks the ...
Definition: disEnums.h:1270
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
class DtStateMsg:
Definition: stateMsgHLA.h:32
This file contains typedefs for machine dependant types.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)