VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
linearObjectStatePdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
15 #include <vl/packets/linObjStP.h>
16 #include <vl/hostStructs.h>
17 #include <vl/stateMsg.h>
18 #include <vlutil/vlMachineTypes.h>
19 #include <matrix/vlMath.h>
20 
21 class DtExerciseConn;
23 class DtLinearObjectStatePdu;
24 
26 typedef void (*DtLinearObjectStatePduCb)(
27  DtLinearObjectStatePdu* pdu, void* usr );
28 
33 class DT_DLL_VL DtLinearObjectStatePdu : public DtStateMsg
34 {
35 public:
36 
39  static DtPdu* create( const DtNetPacket* initial,
41  DtPduFactory* pduFactory = 0 );
42 
44  DtLinearObjectStatePdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );
45 
47  DtLinearObjectStatePdu( const DtLinearObjectStatePdu& orig );
48 
50  DtLinearObjectStatePdu( const DtNetLinearObjectStatePdu* initial,
51  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );
52 
54  virtual ~DtLinearObjectStatePdu();
55 
57  DtLinearObjectStatePdu& operator = ( const DtLinearObjectStatePdu& orig );
58 
60  virtual void setObjectId( const DtEntityIdentifier& id );
61  virtual const DtEntityIdentifier& objectId() const;
62 
64  virtual void setReferencedObjectId( const DtEntityIdentifier& id );
65  virtual const DtEntityIdentifier& referencedObjectId() const;
66 
68  virtual void setUpdateNumber( DtU16 field );
69  virtual DtU16 updateNumber() const;
70 
72  virtual void setForceId( DtForceType force );
73  virtual DtForceType forceId() const;
74 
76  virtual bool setNumSegments( DtU8 num );
77  virtual DtU8 numSegments() const;
78 
80  virtual void setRequesterId( const DtSimulationAddress& type );
81  virtual const DtSimulationAddress& requesterId() const;
82 
84  virtual void setReceivingId( const DtSimulationAddress& type );
85  virtual const DtSimulationAddress& receivingId() const;
86 
88  virtual void setObjectType( const DtSyntheticEnvironmentObjectType& type );
89  virtual const DtSyntheticEnvironmentObjectType& objectType() const;
90 
93  virtual bool setLinearSegmentRecord( int index,
94  const DtLinearSegmentRecord& record );
95  virtual bool getLinearSegmentRecord( int index,
96  DtLinearSegmentRecord& record ) const;
97 
99  virtual void printData() const;
100 
102  virtual void printDataToStream( std::ostream& stream ) const;
103 
106  static void addCallback( DtExerciseConn* conn,
107  DtLinearObjectStatePduCb cb, void* usr );
108  static void removeCallback( DtExerciseConn* conn,
109  DtLinearObjectStatePduCb cb, void* usr );
110 
111 protected:
112 
114  virtual DtPduKind internalGetPduKind() const;
115 
117  virtual DtNetLinearObjectStatePdu* netPduStruct() const;
118 
121  DtLinearObjectStatePdu* self() const;
122 
124  virtual char* var() const;
125 
126 protected:
127 
129  static const int theStaticSize;
130 
132  DtEntityIdentifier myEntityId;
134  DtSimulationAddress mySimulationAddress;
135 
136 };
137 
138 #endif
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:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Instances of DtLinearSegmentRecord are used to implement the LinearSegmentStruct defined in the RPR F...
Definition: linearSegmentRecord.h:19
virtual objHandle objectId() const
Get the object identifier.
Definition: stateMsgHLA.h:211
DtNetLinearObjectStatePdu is the network structure for the linear object state PDU.
Definition: linObjStP.h:40
This file defines math constants and methods which may be useful in simulations.
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
This file declares classes for the LinearObject Pdu.
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
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
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 Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)