VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
entityStateUpdatePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include "hostStructs.h"
14 #include "pdu.h"
15 #include "exerciseConn.h"
16 #include "packets/esUpdateP.h"
17 
20 
21 #include <vlutil/vlMachineTypes.h>
22 
23 class DtEntityStateUpdatePdu;
24 
26 typedef void (*DtEntityStateUpdatePduCb)(
27  DtEntityStateUpdatePdu* pdu, void* usr);
28 
33 class DT_DLL_VL DtEntityStateUpdatePdu : public DtStateMsg
34 {
35 
36 public:
37 
39  DtEntityStateUpdatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
40  DtEntityStateUpdatePdu(const DtNetEntityStateUpdatePdu* initial,
41  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
42  DtEntityStateUpdatePdu(const DtEntityStateUpdatePdu& orig);
43 
45  virtual ~DtEntityStateUpdatePdu();
46 
49  static DtPdu* create(const DtNetPacket* initial,
50  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
51 
54  static void addCallback(DtExerciseConn* conn,
55  DtEntityStateUpdatePduCb cb, void* usr);
56  static void removeCallback(DtExerciseConn* conn,
57  DtEntityStateUpdatePduCb cb, void* usr);
58 
60  DtEntityStateUpdatePdu& operator=(const DtEntityStateUpdatePdu& orig);
61 
63  virtual void setEntityID(const DtEntityIdentifier& id);
64  virtual const DtEntityIdentifier& entityID() const;
65 
69  virtual DtU8 numRecords() const;
70 
72  virtual void setVelocity(const DtVector32& velocity);
73  virtual const DtVector32& velocity() const;
74 
76  virtual void setLocation(const DtVector& coords);
77  virtual const DtVector& location() const;
78 
80  virtual void setOrientation(const DtTaitBryan& orientation);
81  virtual const DtTaitBryan& orientation() const;
82 
84  virtual void setAppearance(DtU32 app);
85  virtual DtU32 appearance() const;
86 
88  virtual void setAppearanceAttribute(
89  const DtAppearAttribute attr, const DtAppearAttrVal val);
90  virtual DtAppearAttrVal appearanceAttribute(
91  const DtAppearAttribute attr) const;
92 
93 
96 
100  virtual bool setArtPartParameters(const DtArticulatedPartCollection& partList);
101  virtual bool getArtPartParameters(DtArticulatedPartCollection& partList) const;
102 
106  virtual bool setAttPartParameters(const DtAttachedPartCollection& partList);
107  virtual bool getAttPartParameters(DtAttachedPartCollection& partList) const;
108 
110  virtual void printData() const;
111 
113  virtual void printDataToStream(std::ostream& stream) const;
114 
115 protected:
116 
118  virtual DtPduKind internalGetPduKind() const;
119 
121  virtual DtNetEntityStateUpdatePdu* netPduStruct() const;
122 
125  DtEntityStateUpdatePdu* self() const;
126 
128  virtual char* var() const;
129 
131  virtual void setNumRecords(DtU8 value);
132 
134  virtual int artParmOffset() const;
135  virtual int attParmOffset() const;
136 
137  virtual void fillAttPartNetParams(const DtAttachedPartCollection& apList,
138  DtNetAttachedPart* netRecords);
139  virtual void fillAttPartCollection(DtAttachedPartCollection& apList,
140  const DtNetAttachedPart* netRecords) const;
141 
142 protected:
143 
145  static const int theStaticSize;
146 
147 protected:
148 
150  int myNumArtPartParams;
151 
153  int myNumAttPartParams;
154 
156  DtEntityIdentifier myEntityID;
157  DtVector myVector;
158  DtVector32 myVector32;
159  DtTaitBryan myEulerAngles;
160 };
161 
162 
163 #endif
DtAppearAttrVal
Create an enumeration type, but since many of the names will have the same value, define them all as ...
Definition: disEnums.h:1421
A DtAttachedPartCollection is a collection of attached parts of an entity.
Definition: attachedPartCollection.h:24
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
This file declares the class DtNetEntityStateUpdatePdu.
Definition: netStructs.h:301
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
This file provides a declaration of the class DtArticulatedPartCollection.
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
A DtArticulatedPartCollection is a collection of articulated parts typically of an entity...
Definition: articulatedPartCollection.h:29
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
Definition: vlVector.h:162
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
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtAppearAttribute
If you put spaces between the &quot;&lt;&lt;&quot; and the surrounding strings, enumstr gets confused and thinks the ...
Definition: disEnums.h:1266
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
class DtStateMsg:
Definition: stateMsgHLA.h:32
This file contains typedefs for machine dependant types.
This file provides a declaration of the class DtAttachedPartCollection.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)