VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
entityPublisherDIS.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 #pragma once
6 
9 #if DtDIS
10 
11 
12 #include "objectPublisherDIS.h"
13 #include "entityStateRepository.h"
14 #include "entityStateEncoder.h"
15 #include "entityStateDecoder.h"
16 #include "diGuyCustomPduDecoder.h"
17 #include "diGuyCustomPduEncoder.h"
18 #include "objectId.h"
19 #include "ownershipHandler.h"
20 
22 {
26 };
27 
34 {
35 public:
36 
37  //g++ forces us to define this function before we define
38  //our constructors
39  static const DtEntityType& guiseSameAsType();
40 
41 public:
42 
44  typedef DtEntityStateRepository* (*DtStateRepCreator)();
45 
46 public:
47 
48 
58  DtEntityStateRepository *stateRepToUse,
59  DtExerciseConn* conn,
60  const DtObjectId& id = DtObjectId::defaultId());
61 
71  DtExerciseConn* conn,
72  const DtObjectId& id = DtObjectId::defaultId());
73 
83  const DtEntityType& type,
84  DtExerciseConn* conn,
85  const DtObjectId& id = DtObjectId::defaultId());
86 
96  const DtEntityType& type,
97  DtExerciseConn* conn,
98  DtDeadReckonTypes algorithm,
99  DtForceType forceId,
100  const DtEntityType& guise = guiseSameAsType(),
101  const DtObjectId& id = DtObjectId::defaultId());
102 
104  virtual ~DtEntityPublisher();
105 
106 private:
107 
110 
113 
114 public:
119  virtual bool tick();
120 
123  virtual DtEntityStateRepository* entityStateRep();
124 
126  virtual DtEntityStateRepository* esr();
127 
131  virtual DtEntityStateDecoder* decoder();
132 
135  virtual DtEntityStateEncoder* encoder();
136 
140  virtual DtOwnershipHandler* setOwnershipHandler( DtOwnershipHandler* handler );
141 
143  virtual const DtObjectId& id() const;
144 
146  virtual const DtObjectId& localId() const;
147 
149  virtual const DtGlobalObjectDesignator& globalId() const;
150 
154  virtual void sendFinalPduOnDestruction(bool on);
155 
158  virtual void forceUpdate();
159 
162  virtual void enableDiGuyInformation(DtDiGuyDataSendMode sendMode=DtDiGuySendPdu);
163 
165  virtual void setSendDiGuyAttributes(bool enableAttributes);
166 
168  virtual bool sendDiGuyAttributes() const;
169 
172  virtual void setSendDiGuyPdus(bool enablePdu);
173 
175  virtual bool sendDiGuyPdus() const;
176 
178  virtual void setSendSeesPdus(bool yesNo);
179 
181  virtual bool sendSeesPdus() const;
182 
184  virtual void setSeesTimeThreshold(DtTime time);
185 
187  virtual DtTime seesTimeThreshold() const;
188 
190  virtual void setDiGuyTypeTimeThreshold(DtTime time);
191 
193  virtual DtTime diGuyTypeTimeThreshold() const;
194 
196  virtual void setDiGuyAppearanceTimeThreshold(DtTime time);
197 
199  virtual DtTime diGuyAppearanceTimeThreshold() const;
200 
202  virtual void setDiGuyActionTimeThreshold(DtTime time);
203 
205  virtual DtTime diGuyActionTimeThreshold() const;
206 
208  DtTime entityTypeHeartbeat(int type, int domain);
209 
214  virtual void divestObject(DtU16 siteTarget, DtU16 applicationTarget);
215 
216 public:
217 
219  static void setStateRepCreator(DtStateRepCreator creator);
220  static DtStateRepCreator stateRepCreator(void);
221 
222  static void setClassDfltTimeThreshold(DtTime threshold);
223  static void setStationaryDfltTimeThreshold(DtTime threshold);
224  static void setEntityTypeDfltTimeThreshold(int type, int domain, DtTime threshold);
225 
227 
228  static void setDfltRotationThreshold(double r);
229  static double dfltRotationThreshold();
230  static void setDfltTranslationThreshold(double t);
231  static double dfltTranslationThreshold();
233 
235  virtual bool createAndSendDiGuy();
236 
237 protected:
238 
240  void sendFinalPdu();
241 
243  virtual void createAndSendSeesPdu();
244 
245  virtual bool sendSeesNeeded() const;
246 
248  void init(const DtObjectId& vehId);
249 
250 protected:
263 
264 protected:
265  static DtStateRepCreator theStateRepCreator;
270  static std::map<std::pair<int,int>,DtTime> theEntityTypeHeartbeat;
271 };
272 
274 {
275  return esr();
276 }
277 
279 {
280  return (DtEntityStateRepository*) stateRep();
281 }
282 
284 {
285  return myEntityEncoder;
286 }
287 
289 {
290  return myEntityDecoder;
291 }
292 
294 {
295  mySendFinalInDtor = onOff;
296 }
297 
298 inline const DtObjectId& DtEntityPublisher::id() const
299 {
300  return myId;
301 }
302 
304 {
306 }
307 
309 {
311 }
312 
314 {
316 }
317 
319 {
321 }
322 
324 {
325  return id();
326 }
327 
328 
329 
330 #endif
Contains the DtObjectId class declaration.
Instances of DtEntityStateDecoder are objects capable of decoding EntityState PDUs into a DtEntitySta...
Definition: entityStateDecoder.h:23
DtDIGuyCustomPduEncoder * myDiGuyEncoder
Definition: entityPublisherDIS.h:254
static void setDfltRotationThreshold(double r)
Definition: entityPublisherDIS.h:318
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
virtual void sendFinalPduOnDestruction(bool on)
Set flag indicating whether to send a final PDU with the &quot;FinalPdu&quot; appearance bit set...
Definition: entityPublisherDIS.h:293
virtual DtStateRepository * stateRep()
Returns a pointer to the DtStateRepository - through which you can set or inspect current state infor...
Definition: objectPublisherDIS.h:245
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtOwnershipHandler * myOwnershipHandler
Definition: entityPublisherDIS.h:260
static double dfltRotationThreshold()
Definition: thresholder.h:151
static const DtEntityIdentifier & defaultId()
Returns a reference to an instance of -1:-1:-1.
bool mySendFinalInDtor
Definition: entityPublisherDIS.h:255
static DtTime theStationaryDfltTimeThreshold
Definition: entityPublisherDIS.h:268
static void setDfltTranslationThreshold(double t)
Definition: entityPublisherDIS.h:313
virtual DtEntityStateRepository * esr()
Synonym for entityStateRep().
Definition: entityPublisherDIS.h:278
DtDiGuyDataSendMode
Definition: entityPublisherDIS.h:21
DtDiGuyDataSendMode mySendDiGuyMode
Definition: entityPublisherDIS.h:256
Instances of DtObjectPublisher are used for local or source simulations of objects, (i.e.
Definition: objectPublisherDIS.h:36
virtual void forceUpdate()=0
For publisher to send PDU on next tick.
static void setDfltRotationThreshold(double thresh)
Set/Get default rotation threshold in radians.
Definition: thresholder.h:156
Instances of DtEntityStateEncoder are used to take state information from a DtEntityStateRepository a...
Definition: entityStateEncoder.h:31
virtual DtEntityStateDecoder * decoder()
Returns a pointer to the Decoder being used to decode PDUs that we send back into the asSeenByRemote ...
Definition: entityPublisherDIS.h:288
Definition: entityPublisherDIS.h:23
virtual const DtObjectId & id() const =0
The id is the same as the globalId, a DtEntityIdentifier unique to this object.
virtual const DtObjectId & localId() const
Get the entity&#39;s localId - same as id for DIS.
Definition: entityPublisherDIS.h:323
DtObjectId myId
Definition: entityPublisherDIS.h:251
DtEntityStateEncoder * myEntityEncoder
Definition: entityPublisherDIS.h:253
virtual DtEntityStateEncoder * encoder()
Returns a pointer to the Encoder being used to encode current state into an entity state PDU...
Definition: entityPublisherDIS.h:283
static double dfltTranslationThreshold()
Definition: entityPublisherDIS.h:308
Instances of DtRelativeLocationPdu are used to convey the fact that one unit is located at a position...
Definition: relativeLocationPdu.h:29
Instances of DtEntityPublisher are used for local or source simulations of entities, (i.e.
Definition: entityPublisherDIS.h:33
Instances of DtEntityStateRepository are used to maintain attributes and state of entity objects in a...
Definition: entityStateRepository.h:42
DtRelativeLocationPdu myLastSentRelLocPdu
Definition: entityPublisherDIS.h:261
static DtTime theClassDfltTimeThreshold
Definition: entityPublisherDIS.h:266
static bool theStationaryDfltIsSetFlag
Definition: entityPublisherDIS.h:269
static double dfltTranslationThreshold()
Definition: thresholder.h:146
virtual const DtGlobalObjectDesignator & globalId() const =0
The entityIdentifier unique to this object.
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
Contains the DIS DtEntityStateEncoder class declaration.
DtObjectPublisher & operator=(const DtObjectPublisher &orig)
assignment operator – not implemented
Contains the DIS DtEntityStateDecoder class declaration.
Contains the DtEntityStateRepository class declaration.
virtual DtEntityStateRepository * entityStateRep()
Returns a pointer to the EntityStateRepository - through which you can set or inspect current state i...
Definition: entityPublisherDIS.h:273
static bool theClassDfltIsSetFlag
Definition: entityPublisherDIS.h:267
Definition: entityPublisherDIS.h:24
DtTime mySeesPdusTimeThreshold
Definition: entityPublisherDIS.h:258
static DtStateRepCreator theStateRepCreator
Definition: entityPublisherDIS.h:265
DtTime myLastSeesPdusUpdate
Definition: entityPublisherDIS.h:259
Definition: diGuyCustomPduEncoder.h:23
static void setDfltTranslationThreshold(double thresh)
Set/Get default translation threshold in radians.
Definition: thresholder.h:141
This class declares the DIS version of DtObjectPublisher.
This is a base class meant to encapsulate user callbacks on ownership management services.
Definition: ownershipHandlerDIS.h:39
DtForceType
Section 4.
Definition: disEnums.h:199
static std::map< std::pair< int, int >, DtTime > theEntityTypeHeartbeat
Definition: entityPublisherDIS.h:270
DtTime myLastSentRelLocPduTime
Definition: entityPublisherDIS.h:262
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
Definition: entityPublisherDIS.h:25
static double dfltRotationThreshold()
Definition: entityPublisherDIS.h:303
bool mySendSeesPdus
Definition: entityPublisherDIS.h:257
DtDeadReckonTypes
Definition: disEnums.h:1013
virtual bool tick()=0
Tick (update) this object.
This file declares DtOwnershipHandler.
virtual const DtObjectId & id() const
Get the entity&#39;s identifier.
Definition: entityPublisherDIS.h:298
virtual const DtObjectId & localId() const =0
The localId is the same as the globalId, a DtEntityIdentifier unique to this object.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
DtEntityStateDecoder * myEntityDecoder
Definition: entityPublisherDIS.h:252

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)