VR-Link API Documentation for DIS
hReflEntList.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef hReflEntList_H_
7 #define hReflEntList_H_
8 
9 #if DtHLA
10 
11 #include "hRefObjList.h"
12 #include "hReflectedEnt.h"
13 #include "region.h"
14 
15 #include <matrix/geodCoord.h>
16 #include <vector>
17 class DtGeodeticRegion;
18 class DtReflectedDIGuyObjectList;
19 class DtReflectedDIGuyObject;
20 
25 
41 {
42 public:
43 
44 
51  DtExerciseConn* exConn,
52  bool smoothCapable = false,
53  const DtDDMRegionSet* regionSetToUse = 0 );
54 
56  DtExerciseConn* exConn,
57  const DtString& updateRateTag,
58  bool smoothCapable = false,
59  const DtDDMRegionSet* regionSetToUse = 0 );
60 
68 
70  DtExerciseConn* exConn,
71  const DtList *handleList,
72  bool smoothCapable = false,
73  const DtDDMRegionSet* regionSetToUse = 0 );
74 
76  DtExerciseConn* exConn,
77  const DtList *handleList,
78  const DtString& updateRateTag,
79  bool smoothCapable = false,
80  const DtDDMRegionSet* regionSetToUse = 0 );
81 
83  virtual ~DtReflectedEntityList();
84 
85 private:
86 
89 
92 
93 public:
94 
97  virtual DtReflectedEntity* lookup(
98 #if DtHLA_1516
99  RTI::ObjectInstanceHandle id);
100 #else
101  RTI::ObjectHandle id);
102 #endif
103 
106  virtual DtReflectedEntity* lookup(const DtGlobalObjectDesignator& objName);
107 
110  virtual DtReflectedEntity* lookup(const DtEntityIdentifier& entityId);
111 
115  virtual DtReflectedEntity* first() const;
116 
120  virtual DtReflectedEntity* last() const;
121 
125  virtual void addToObjectList(DtReflectedObject* refObj);
126 
130  virtual void addToEntityIdentifierHashList(DtReflectedEntity* ent);
131 
135  virtual void addEntityAdditionCallback(
136  DtEntityCallbackFunction cb, void* userData);
137 
141  virtual void removeEntityAdditionCallback(
142  DtEntityCallbackFunction cb, void* userData);
143 
147  virtual void addEntityRemovalCallback(
148  DtEntityCallbackFunction cb, void* userData);
149 
153  virtual void removeEntityRemovalCallback(
154  DtEntityCallbackFunction cb, void* userData);
155 
161  virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo);
162 
163 
164 protected:
165 
168  virtual const DtList* dfltHandleList();
169 
172  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
173 
176  virtual DtReflectedEntity* newReflectedEntity(DtHlaObject* obj) const;
177 
180  virtual void removeAndDelete(DtReflectedObject* object, char* msg);
181 
185  virtual void removeAndDelete(DtReflectedEntity* entity, char* msg = NULL);
186 
189  virtual void objectAdded(DtReflectedObject* obj);
190 
195  virtual void entityAdded(DtReflectedEntity* ent);
196 
199  virtual void initializeDIGuy();
200 
206  virtual void processDiGuyObjectAddition( DtReflectedDIGuyObject* beam );
207  virtual void processDiGuyObjectUpdate( DtReflectedDIGuyObject* beam );
208  virtual void processDiGuyObjectRemoval( DtReflectedDIGuyObject* beam );
209 
213  virtual void resolveOrphans();
214 
215 protected:
216 
220  static bool checkEntityType(DtReflectedObject* obj, void* usr);
221 
226  static void checkEntityId(DtReflectedEntity* ent, void* usr);
227 
231  static void diGuyObjectAdditionCb(
232  DtReflectedDIGuyObject* beam, void* usr );
233  static void diGuyObjectUpdateCb(
234  DtReflectedDIGuyObject* beam, void* usr );
235  static void diGuyObjectRemovalCb(
236  DtReflectedDIGuyObject* beam, void* usr );
237 
239  static void resolveOrphansPostDrainCb( void* usr );
240 
245  static bool delayDiGuyObjectDiscoveryCondition(
246  DtReflectedObject* beam, void* usr );
247 
248 protected:
249 
251  bool mySmoothCapable;
252 
254  DtHashlist myEntityIdentifierHashlist;
255 
256  std::set<DtReflectedDIGuyObject*> myOrphanDiGuyObjects;
257  DtReflectedDIGuyObjectList* myReflectedDiGuyObjects;
258 };
259 
260 #endif
261 #endif
262 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)