VR-Link API Documentation for DIS
 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 VT MAK
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 
26 
28 typedef void (*DtMinefieldStatePduCb)(DtMinefieldStatePdu* pdu, void* usr);
29 
34 
36 {
37 
38 public:
39 
43  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
45 
47  virtual ~DtMinefieldStatePdu();
48 
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 
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:1415
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
DtNetMinefieldStatePdu is the network structure for the minefield state PDU.
Definition: mineStateP.h:30
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
class DtMinefieldPerimeterRecord:
Definition: minefieldPerimeterRecord.h:28
Definition: pduHeader.h:14
class DtPduFactory:
Definition: pduFactory.h:38
DtEntityType myEntityType
Definition: minefieldStatePdu.h:163
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
virtual void printDataToStream(std::ostream &stream) const
DtMinefieldProtocol
Definition: disEnums.h:2629
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: minefieldStatePdu.h:157
This file defines math constants and methods which may be useful in simulations.
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
DtTaitBryan myEulerAngles
Definition: minefieldStatePdu.h:164
Definition: vlVector.h:224
virtual DtPduKind internalGetPduKind() const =0
Returns the PDU kind associated with the derived PDU class.
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
DtMinefieldPerimeterRecord myPerimeterRecord
Definition: minefieldStatePdu.h:166
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
virtual void printData() const
Print the PDU&#39;s data (not including header).
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
void(* DtMinefieldStatePduCb)(DtMinefieldStatePdu *pdu, void *usr)
DtMinefieldStatePdu callback function signature.
Definition: minefieldStatePdu.h:28
class DtMinefieldStatePdu:
Definition: minefieldStatePdu.h:35
DtAppearAttribute
If you put spaces between the &quot;&lt;&lt;&quot; and the surrounding strings, enumstr gets confused and thinks the ...
Definition: disEnums.h:1260
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
DtVector myVector
Definition: minefieldStatePdu.h:165
This file contains typedefs for machine dependant types.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
DtEntityIdentifier myEntityID
Temporary objects for reference returns.
Definition: minefieldStatePdu.h:162

Document ID: Generated on Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)