VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pointObjectStatePdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vl/stateMsg.h>
15 #include <vl/packets/pointObjStP.h>
17 #include <vlutil/vlMachineTypes.h>
18 #include <matrix/vlMath.h>
19 
20 class DtExerciseConn;
21 class DtPointObjectStatePdu;
22 
24 typedef void (*DtPointObjectStatePduCb)( DtPointObjectStatePdu* pdu, void* usr );
25 
29 class DT_DLL_VL DtPointObjectStatePdu : public DtStateMsg
30 {
31 public:
32 
35  static DtPdu* create( const DtNetPacket* initial,
36  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );
37 
39  DtPointObjectStatePdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );
40  DtPointObjectStatePdu( const DtNetPointObjectStatePdu* initial,
41  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );
42  DtPointObjectStatePdu( const DtPointObjectStatePdu& orig );
43 
45  virtual ~DtPointObjectStatePdu();
46 
48  DtPointObjectStatePdu& operator = ( const DtPointObjectStatePdu& orig );
49 
51  virtual void setObjectID( const DtEntityIdentifier& id );
52  virtual const DtEntityIdentifier& objectID() const;
53 
55  virtual void setReferencedObjectID( const DtEntityIdentifier& id );
56  virtual const DtEntityIdentifier& referencedObjectID() const;
57 
59  virtual void setUpdateNumber( DtU16 field );
60  virtual DtU16 updateNumber() const;
61 
63  virtual void setForceID( DtForceType force );
64  virtual DtForceType forceID() const;
65 
67  virtual void setModifications( DtU8 value );
68  virtual DtU8 modifications() const;
69 
71  virtual void setModificationsField(
72  DtModificationField field, bool value );
73  virtual bool modificationsField(
74  DtModificationField field ) const;
75 
77  virtual void setObjectType( const DtSyntheticEnvironmentObjectType& type );
78  virtual const DtSyntheticEnvironmentObjectType& objectType() const;
79 
81  virtual void setLocation( const DtVector& coords );
82  virtual const DtVector& location() const;
83 
85  virtual void setOrientation( const DtTaitBryan& orientation );
86  virtual const DtTaitBryan& orientation() const;
87 
91  virtual void setGeneralAppearance( DtU16 app );
92  virtual DtU16 generalAppearance() const;
93 
97  virtual void setGeneralAppearanceAttribute(
99  virtual DtAppearAttrVal generalAppearanceAttribute(
100  DtAppearAttribute attr ) const;
101 
105  virtual void setSpecificAppearance( DtU32 app );
106  virtual DtU32 specificAppearance() const;
107 
109  virtual void setSpecificAppearanceAttribute(
110  const DtAppearAttribute attr, const DtAppearAttrVal val );
111  virtual DtAppearAttrVal specificAppearanceAttribute(
112  const DtAppearAttribute attr ) const;
113 
115  virtual void setRequesterID( const DtSimulationAddress& type );
116  virtual const DtSimulationAddress& requesterID() const;
117 
119  virtual void setReceivingID( const DtSimulationAddress& type );
120  virtual const DtSimulationAddress& receivingID() const;
121 
123  virtual void printData() const;
124 
126  virtual void printDataToStream( std::ostream& stream ) const;
127 
130  static void addCallback( DtExerciseConn* conn,
131  DtPointObjectStatePduCb cb, void* usr );
132  static void removeCallback( DtExerciseConn* conn,
133  DtPointObjectStatePduCb cb, void* usr );
134 
135 protected:
136 
138  virtual DtPduKind internalGetPduKind() const;
139 
141  virtual DtNetPointObjectStatePdu* netPduStruct() const;
142 
145  DtPointObjectStatePdu* self() const;
146 
147 protected:
148 
150  static const int theStaticSize;
151 
153  DtEntityIdentifier myEntityID;
155  DtVector myVector;
156  DtTaitBryan myEulerAngles;
157  DtSimulationAddress mySimulationAddress;
158 
159 };
160 
161 #endif // DtDIS
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 DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
#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
Contains net type declarations for the DtPointObjectStatePdu class.
This file defines math constants and methods which may be useful in simulations.
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
Definition: vlVector.h:224
DtSyntheticEnvironmentObjectType is a class which contains information identifying the type of a synt...
Definition: vlpi/syntheticEnvironmentObjectType.h:19
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
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
DtModificationField
Definition: disEnums.h:2476
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.

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)