VR-Link API Documentation for HLA 1.3
 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-2010 VT MAK
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 
21 enum DtDiGuyDataSendMode
22 {
23  DtDiGuySendDisabled = 0,
24  DtDiGuySendPdu = 1,
25  DtDiGuySendAttributes = 2
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:
118  virtual void tick();
119 
122  virtual DtEntityStateRepository* entityStateRep();
123 
125  virtual DtEntityStateRepository* esr();
126 
130  virtual DtEntityStateDecoder* decoder();
131 
134  virtual DtEntityStateEncoder* encoder();
135 
139  virtual DtOwnershipHandler* setOwnershipHandler( DtOwnershipHandler* handler );
140 
142  virtual const DtObjectId& id() const;
143 
145  virtual const DtObjectId& localId() const;
146 
148  virtual const DtGlobalObjectDesignator& globalId() const;
149 
153  virtual void sendFinalPduOnDestruction(bool on);
154 
157  virtual void forceUpdate();
158 
161  virtual void enableDiGuyInformation(DtDiGuyDataSendMode sendMode=DtDiGuySendPdu);
162 
164  virtual void setSendDiGuyAttributes(bool enableAttributes);
165 
167  virtual bool sendDiGuyAttributes() const;
168 
171  virtual void setSendDiGuyPdus(bool enablePdu);
172 
174  virtual bool sendDiGuyPdus() const;
175 
177  virtual void setSendSeesPdus(bool yesNo);
178 
180  virtual bool sendSeesPdus() const;
181 
183  virtual void setSeesTimeThreshold(DtTime time);
184 
186  virtual DtTime seesTimeThreshold() const;
187 
189  virtual void setDiGuyTypeTimeThreshold(DtTime time);
190 
192  virtual DtTime diGuyTypeTimeThreshold() const;
193 
195  virtual void setDiGuyAppearanceTimeThreshold(DtTime time);
196 
198  virtual DtTime diGuyAppearanceTimeThreshold() const;
199 
201  virtual void setDiGuyActionTimeThreshold(DtTime time);
202 
204  virtual DtTime diGuyActionTimeThreshold() const;
205 
207  DtTime entityTypeHeartbeat(int type, int domain);
208 
213  virtual void divestObject(DtU16 siteTarget, DtU16 applicationTarget);
214 
215 public:
216 
218  static void setStateRepCreator(DtStateRepCreator creator);
219  static DtStateRepCreator stateRepCreator(void);
220 
221  static void setClassDfltTimeThreshold(DtTime threshold);
222  static void setStationaryDfltTimeThreshold(DtTime threshold);
223  static void setEntityTypeDfltTimeThreshold(int type, int domain, DtTime threshold);
224 
226 
227  static void setDfltRotationThreshold(double r);
228  static double dfltRotationThreshold();
229  static void setDfltTranslationThreshold(double t);
230  static double dfltTranslationThreshold();
232 
234  virtual void createAndSendDiGuy();
235 
236 protected:
237 
239  void sendFinalPdu();
240 
242  virtual void createAndSendSeesPdu();
243 
244  virtual bool sendSeesNeeded() const;
245 
247  void init(const DtObjectId& vehId);
248 
249 protected:
250  DtObjectId myId;
251  DtEntityStateDecoder* myEntityDecoder;
252  DtEntityStateEncoder* myEntityEncoder;
253  DtDIGuyCustomPduEncoder* myDiGuyEncoder;
254  bool mySendFinalInDtor;
255  DtDiGuyDataSendMode mySendDiGuyMode;
256  bool mySendSeesPdus;
257  DtTime mySeesPdusTimeThreshold;
258  DtTime myLastSeesPdusUpdate;
259  DtOwnershipHandler* myOwnershipHandler;
260  DtRelativeLocationPdu myLastSentRelLocPdu;
261  DtTime myLastSentRelLocPduTime;
262 
263 protected:
264  static DtStateRepCreator theStateRepCreator;
265  static DtTime theClassDfltTimeThreshold;
266  static bool theClassDfltIsSetFlag;
267  static DtTime theStationaryDfltTimeThreshold;
268  static bool theStationaryDfltIsSetFlag;
269  static std::map<std::pair<int,int>,DtTime> theEntityTypeHeartbeat;
270 };
271 
273 {
274  return esr();
275 }
276 
278 {
279  return (DtEntityStateRepository*) stateRep();
280 }
281 
282 inline DtEntityStateEncoder* DtEntityPublisher::encoder()
283 {
284  return myEntityEncoder;
285 }
286 
287 inline DtEntityStateDecoder* DtEntityPublisher::decoder()
288 {
289  return myEntityDecoder;
290 }
291 
292 inline void DtEntityPublisher::sendFinalPduOnDestruction(bool onOff)
293 {
294  mySendFinalInDtor = onOff;
295 }
296 
297 inline const DtObjectId& DtEntityPublisher::id() const
298 {
299  return myId;
300 }
301 
303 {
305 }
306 
308 {
310 }
311 
313 {
315 }
316 
318 {
320 }
321 
322 inline const DtObjectId& DtEntityPublisher::localId() const
323 {
324  return id();
325 }
326 
327 
328 
329 #endif
Contains the DtObjectId class declaration.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:58
virtual DtHlaStateEncoder * encoder()
Returns a pointer to the Encoder being used to encode current state into an outgoing message...
virtual DtStateRepository * stateRep()
Returns a pointer to the DtStateRepository - through which you can set or inspect current state infor...
Definition: objectPublisherHLA.h:227
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
static const DtObjectId & defaultId()
static double dfltRotationThreshold()
Definition: thresholder.h:151
virtual DtEntityStateRepository * esr()
Synonym for entityStateRep().
Definition: entityPublisherHLA.h:167
Instances of DtObjectPublisher are used for local or source simulations of objects, (i.e.
Definition: objectPublisherHLA.h:34
static void setDfltRotationThreshold(double thresh)
Set/Get default rotation threshold in radians.
Definition: thresholder.h:156
virtual void tick()
Tick (update) this object.
static void setDfltRotationThreshold(double r)
Instances of DtEntityPublisher are used for local or source simulations of entities (i...
Definition: entityPublisherHLA.h:28
Instances of DtEntityStateRepository are used to maintain attributes and state of entity objects in a...
Definition: entityStateRepository.h:36
static void setDfltTranslationThreshold(double t)
virtual const DtGlobalObjectDesignator & globalId() const
Get the HLA object&#39;s global object designator - the object name in RTI1.3.3, but the objectId in RTI1...
virtual void forceUpdate()
Specify a set of attributes that should be included in the ahvps the next time tick is called...
static double dfltTranslationThreshold()
Definition: thresholder.h:146
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: entityPublisherHLA.h:162
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: ownershipHandlerHLA.h:27
DtForceType
Section 4.
Definition: disEnums.h:199
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
DtDeadReckonTypes
Definition: disEnums.h:987
This file declares DtOwnershipHandler.
Instances of DtString are used to represent strings.
Definition: vlString.h:29
virtual const DtObjectId & id() const
Get the object&#39;s local identifier.
void init(RTI::ObjectClassHandle hand, DtStateRepository *stateRep, DtStateRepository *asSeenByRemote, DtHlaStateEncoder *encoder=0, DtHlaStateDecoder *decoder=0)
static double dfltRotationThreshold()
virtual const DtObjectId & localId() const
Get the object&#39;s local identifier.
Definition: objectPublisherHLA.h:247
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
static double dfltTranslationThreshold()
virtual DtHlaStateDecoder * decoder()
Returns a pointer to the Decoder being used to decode state messages that we send back into the asSee...

Document ID: Generated on Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)