VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
reflectedExtEmitterSystemList.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vl/reflectedEmitterSystemList.h>
14 #include <map>
15 
17 class DtReflectedEntity;
18 
19 // class DtReflectedExtEmitterSystemList:
20 // Instances of DtReflectedExtEntityList manage the list of
21 // remote emitters in the exercise. In DIS only it will remove
22 // an emitter once the associated entity that it was attached to
23 // is deleted. In HLA this class will simply use the base class
25 {
26 public:
27 
28  // Constructor - obtains the set of object classes to subscribe
29  // to from the exConn's fomMapper.
30  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn);
31 
32 #if DtHLA
33  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn, const DtDDMRegionSet* regionSetToUse);
34 
37  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn,
38  const DtList *handleList, const DtDDMRegionSet* regionSetToUse = 0);
39 #endif
40 
41  // destructor
43 
44  // This routine will set the reflected entity list and also
45  // attach a callback to be triggerd any time an entity is deleted
46  virtual void setReflectedEntityList(DtReflectedEntityList* l);
47 
48  // This function receives entityRemovalCallback from the reflected
49  // entity list, then calls entityRemoval. It also removes the
50  // entityPostUpdateCallback from the reflected entity.
51  static void entityRemovalCallback(DtReflectedEntity* e, void* usr);
52 
53  // If there is an emitter in the list that is attached to this entity,
54  // remove it
55  virtual void processEntityRemoval(DtReflectedEntity* e);
56 
57 #ifdef DtHLA
58  virtual void processEmitterBeamRemoval(DtReflectedEmitterBeam* beam);
59  virtual void processEmitterBeamAddition(DtReflectedEmitterBeam* beam);
60 
61  virtual bool removeObject(const DtObjectId& id);
62 #endif
63 
64 private:
65 
66  // not implemented
69 
70 protected:
71 
72  typedef struct _DtBeamIdStruct
73  {
76  }
78 
79  typedef std::map<int, DtBeamIdStruct> DtBeamIdMap;
80 
81 protected:
82 
85 
86 };
DtReflectedEntityList * myReflectedEntityList
Definition: reflectedExtEmitterSystemList.h:83
DtBeamIdMap myBeamMap
Definition: reflectedExtEmitterSystemList.h:84
DtGlobalObjectDesignator emittingSystemId
Definition: reflectedExtEmitterSystemList.h:74
Definition: reflectedExtEmitterSystemList.h:24
std::map< int, DtBeamIdStruct > DtBeamIdMap
Definition: reflectedExtEmitterSystemList.h:79
Definition: reflectedExtEmitterSystemList.h:72
DtGlobalObjectDesignator globalId
Definition: reflectedExtEmitterSystemList.h:75
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)