VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedEntityListHLA.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtHLA
11 
12 #pragma once
13 
15 #include <vl/reflectedEntityHLA.h>
16 #include <vl/region.h>
17 #include <matrix/geodeticCoord.h>
18 #include <vector>
19 
20 class DtGeodeticRegion;
23 
39 {
40 public:
41 
48  DtExerciseConn* exConn,
49  bool smoothCapable = false,
50  const DtDDMRegionSet* regionSetToUse = 0 );
51 
53  DtExerciseConn* exConn,
54  const DtString& updateRateTag,
55  bool smoothCapable = false,
56  const DtDDMRegionSet* regionSetToUse = 0 );
57 
65 
67  DtExerciseConn* exConn,
68  const DtList *handleList,
69  bool smoothCapable = false,
70  const DtDDMRegionSet* regionSetToUse = 0 );
71 
73  DtExerciseConn* exConn,
74  const DtList *handleList,
75  const DtString& updateRateTag,
76  bool smoothCapable = false,
77  const DtDDMRegionSet* regionSetToUse = 0 );
78 
80  virtual ~DtReflectedEntityList();
81 
84  virtual DtReflectedEntity* lookup(
85 #if DtHLA_1516
86  RTI::ObjectInstanceHandle id);
87 #else
88  RTI::ObjectHandle id);
89 #endif
90 
93  virtual DtReflectedEntity* lookup(const DtGlobalObjectDesignator& objName);
94 
97  virtual DtReflectedEntity* lookup(const DtEntityIdentifier& entityId);
98 
102  virtual DtReflectedEntity* first() const;
103 
107  virtual DtReflectedEntity* last() const;
108 
112  virtual void addToObjectList(DtReflectedObject* refObj);
113 
117  virtual void addToEntityIdentifierHashList(DtReflectedEntity* ent);
118 
122  virtual void addEntityAdditionCallback(
123  DtEntityCallbackFunction cb, void* userData);
124 
128  virtual void removeEntityAdditionCallback(
129  DtEntityCallbackFunction cb, void* userData);
130 
134  virtual void addEntityRemovalCallback(
135  DtEntityCallbackFunction cb, void* userData);
136 
140  virtual void removeEntityRemovalCallback(
141  DtEntityCallbackFunction cb, void* userData);
142 
148  virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo);
149 
150 protected:
151 
154  virtual const DtList* dfltHandleList();
155 
158  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
159 
162  virtual DtReflectedEntity* newReflectedEntity(DtHlaObject* obj) const;
163 
166  virtual void removeAndDelete(DtReflectedObject* object, char* msg);
167 
171  virtual void removeAndDelete(DtReflectedEntity* entity, char* msg = NULL);
172 
175  virtual void objectAdded(DtReflectedObject* obj);
176 
181  virtual void entityAdded(DtReflectedEntity* ent);
182 
185  virtual void initializeDIGuy();
186 
192  virtual void processDiGuyObjectAddition( DtReflectedDIGuyObject* beam );
193  virtual void processDiGuyObjectUpdate( DtReflectedDIGuyObject* beam );
194  virtual void processDiGuyObjectRemoval( DtReflectedDIGuyObject* beam );
195 
199  virtual void resolveOrphans();
200 
201 protected:
202 
206  static bool checkEntityType(DtReflectedObject* obj, void* usr);
207 
212  static void checkEntityId(DtReflectedEntity* ent, void* usr);
213 
217  static void diGuyObjectAdditionCb(
218  DtReflectedDIGuyObject* beam, void* usr );
219  static void diGuyObjectUpdateCb(
220  DtReflectedDIGuyObject* beam, void* usr );
221  static void diGuyObjectRemovalCb(
222  DtReflectedDIGuyObject* beam, void* usr );
223 
225  static void resolveOrphansPostDrainCb( void* usr );
226 
231  static bool delayDiGuyObjectDiscoveryCondition(
232  DtReflectedObject* beam, void* usr );
233 
234 private:
235 
238 
241 
242 protected:
243 
246 
249 
250  std::set<DtReflectedDIGuyObject*> myOrphanDiGuyObjects;
252 
253 };
254 
255 #endif // DtHLA
Instances of DtReflectedEntity are used to represent a simulation entity reflected across a network (...
Definition: reflectedEntityHLA.h:29
class DtReflectedObjectList
Definition: reflectedObjectListHLA.h:58
DtReflectedDIGuyObjectList * myReflectedDiGuyObjects
Definition: reflectedEntityListHLA.h:251
Contains the HLA DtReflectedObjectList class declaration.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
virtual DtReflectedObject * newReflectedObject(DtHlaObject *obj) const =0
Create a remote object object for the HLA object.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
void(* DtEntityCallbackFunction)(DtReflectedEntity *obj, void *userData)
Callback function that takes a DtReflectedObject and user data.
Definition: reflectedEntityHLA.h:23
This file provides a definition of GeodeticCoords and several helper functions.
Instances of DtReflectedDIGuyObjectList manage a list of DtReflectedDIGuyObject objects.
Definition: reflectedDiGuyObjectListHLA.h:22
std::set< DtDDMRegionSP > DtDDMRegionSet
Definition: region13.h:34
DtReflectedObjectList & operator=(const DtReflectedObjectList &orig)
assignment operator – not implemented
Instances of DtHlaObject are used to represent HLA objects which are communicated across the network...
Definition: hlaObject.h:58
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
bool mySmoothCapable
Determines whether to use smoothing for reflected entities.
Definition: reflectedEntityListHLA.h:245
virtual void addToObjectList(DtReflectedObject *refObj)
Add refObj to myObjectList and initiates discovery callbacks.
Instances of DtReflectedDIGuyObject are used to represent a simulated HLAobjectRoot.DIGuyObject object reflected across a network.
Definition: reflectedDiGuyObject.h:31
class DtReflectedObject:
Definition: reflectedObjectHLA.h:36
virtual void removeAndDelete(DtReflectedObject *obj, char *msg=nullptr)
Remove the remote object from the list if found and delete it.
Instances of DtReflectedEntityList are used to manage remote entities from the network.
Definition: reflectedEntityListHLA.h:38
DtGeodeticRegion.
Definition: geodeticRegion.h:38
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
std::set< DtReflectedDIGuyObject * > myOrphanDiGuyObjects
Definition: reflectedEntityListHLA.h:250
DtHashlist is deprecated and provided for backwards compatibility only.
Definition: vlHashlist.h:69
virtual void objectAdded(DtReflectedObject *object)
Called from processDiscoverObject() after a remote object has been added to the list.
This file provides a declaration of the class DtReflectedEntity and the definition of DtEntityCallbac...
Instances of DtString are used to represent strings.
Definition: vlString.h:29
DtHashlist myEntityIdentifierHashlist
Hash list used for lookup of entity identifiers.
Definition: reflectedEntityListHLA.h:248

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)