VR-Link API Documentation for DIS
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 "objectId.h"
17 
24 {
25 public:
26 
27  //g++ forces us to define this function before we define
28  //our constructors
29  static const DtEntityType& guiseSameAsType();
30 
31 public:
32 
34  typedef DtEntityStateRepository* (*DtStateRepCreator)();
35 
36 public:
37 
38 
48  DtEntityStateRepository *stateRepToUse,
49  DtExerciseConn* conn,
50  const DtObjectId& id = DtObjectId::defaultId());
51 
61  DtExerciseConn* conn,
62  const DtObjectId& id = DtObjectId::defaultId());
63 
73  const DtEntityType& type,
74  DtExerciseConn* conn,
75  const DtObjectId& id = DtObjectId::defaultId());
76 
86  const DtEntityType& type,
87  DtExerciseConn* conn,
88  DtDeadReckonTypes algorithm,
89  DtForceType forceId,
90  const DtEntityType& guise = guiseSameAsType(),
91  const DtObjectId& id = DtObjectId::defaultId());
92 
94  virtual ~DtEntityPublisher();
95 
96 private:
97 
100 
103 
104 public:
108  virtual void tick();
109 
112  virtual DtEntityStateRepository* entityStateRep();
113 
115  virtual DtEntityStateRepository* esr();
116 
120  virtual DtEntityStateDecoder* decoder();
121 
124  virtual DtEntityStateEncoder* encoder();
125 
127  virtual const DtObjectId& id() const;
128 
130  virtual const DtObjectId& localId() const;
131 
133  virtual const DtGlobalObjectDesignator& globalId() const;
134 
138  virtual void sendFinalPduOnDestruction(bool on);
139 
142  virtual void forceUpdate();
143 
145  virtual void setSendDiGuyPdus(bool yesNo);
146 
148  virtual bool sendDiGuyPdus() const;
149 
151  virtual void setSendSeesPdus(bool yesNo);
152 
154  virtual bool sendSeesPdus() const;
155 
157  virtual void setSeesTimeThreshold(DtTime time);
158 
160  virtual DtTime seesTimeThreshold() const;
161 
163  DtTime entityTypeHeartbeat(int type, int domain);
164 
165 public:
166 
168  static void setStateRepCreator(DtStateRepCreator creator);
169  static DtStateRepCreator stateRepCreator(void);
170 
171  static void setClassDfltTimeThreshold(DtTime threshold);
172  static void setStationaryDfltTimeThreshold(DtTime threshold);
173  static void setEntityTypeDfltTimeThreshold(int type, int domain, DtTime threshold);
174 
176 
177  static void setDfltRotationThreshold(double r);
178  static double dfltRotationThreshold();
179  static void setDfltTranslationThreshold(double t);
180  static double dfltTranslationThreshold();
182 
183 protected:
184 
186  void sendFinalPdu();
187 
189  virtual void createAndSendDiGuyPdus();
190 
192  virtual void createAndSendSeesPdu();
193 
194  virtual bool sendSeesNeeded() const;
195 
197  void init( const DtObjectId& vehId);
198 
199 protected:
208 
209 protected:
210  static DtStateRepCreator theStateRepCreator;
215  static std::map<std::pair<int,int>,DtTime> theEntityTypeHeartbeat;
216 };
217 
219 {
220  return esr();
221 }
222 
224 {
225  return (DtEntityStateRepository*) stateRep();
226 }
227 
229 {
230  return myEntityEncoder;
231 }
232 
234 {
235  return myEntityDecoder;
236 }
237 
239 {
240  mySendFinalInDtor = onOff;
241 }
242 
243 inline const DtObjectId& DtEntityPublisher::id() const
244 {
245  return myId;
246 }
247 
249 {
251 }
252 
254 {
256 }
257 
259 {
261 }
262 
264 {
266 }
267 
269 {
270  return id();
271 }
272 
273 
274 
275 #endif
276 
277 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)