VR-Link API Documentation for DIS
 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 MAK Technologies, Inc
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 
24 
26 typedef void (*DtEntityStateUpdatePduCb)(
27  DtEntityStateUpdatePdu* pdu, void* usr);
28 
34 {
35 
36 public:
37 
41  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
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 
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 
151 
154 
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:1425
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: exerciseConnDIS.h:62
This file declares the class DtNetEntityStateUpdatePdu.
Definition: netStructs.h:534
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
int myNumArtPartParams
Number of articulated part parameters for this PDU.
Definition: entityStateUpdatePdu.h:150
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: entityStateUpdatePdu.h:145
DtNetEntityStateUpdatePdu is the network structure for the entity state update PDU.
Definition: esUpdateP.h:24
Definition: pduHeader.h:14
This file provides a declaration of the class DtArticulatedPartCollection.
int myNumAttPartParams
Number of attached part parameters for this PDU.
Definition: entityStateUpdatePdu.h:153
class DtPduFactory:
Definition: pduFactory.h:38
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
void(* DtEntityStateUpdatePduCb)(DtEntityStateUpdatePdu *pdu, void *usr)
DtEntityStateUpdatePdu callback function signature.
Definition: entityStateUpdatePdu.h:26
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
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
DtEntityIdentifier myEntityID
Temporary objects for reference returns.
Definition: entityStateUpdatePdu.h:156
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
DtVector32 myVector32
Definition: entityStateUpdatePdu.h:158
DtTaitBryan myEulerAngles
Definition: entityStateUpdatePdu.h:159
Definition: vlVector.h:162
class DtEntityStateUpdatePdu:
Definition: entityStateUpdatePdu.h:33
DtVector myVector
Definition: entityStateUpdatePdu.h:157
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
#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:1270
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
This file contains typedefs for machine dependant types.
This file provides a declaration of the class DtAttachedPartCollection.

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)