VR-Forces 4.1 Class Documentation
refExtEmitList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2004 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: refExtEmitList.h,v $ $Revision: 1.10 $ $State: Exp $
7 *******************************************************************************/
8 
9 #ifndef REFEXTEMITLIST_H
10 #define REFEXTEMITLIST_H
11 
12 #include <vl/refEmitLst.h>
13 
15 class DtReflectedEntity;
16 
17 #include <map>
18 // class DtReflectedExtEmitterSystemList:
19 //
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
24 
27 {
28 public:
29 
30  // Constructor - obtains the set of object classes to subscribe
31  // to from the exConn's fomMapper.
32  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn);
33 
34 #if DtHLA
35  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn, const DtDDMRegionSet* regionSetToUse);
36 
39  DtReflectedExtEmitterSystemList(DtExerciseConn* exConn,
40  const DtList *handleList, const DtDDMRegionSet* regionSetToUse = 0);
41 #endif
42 
43  // destructor
45 
46  // This routine will set the reflected entity list and also
47  // attach a callback to be triggerd any time an entity is deleted
48  virtual void setReflectedEntityList(DtReflectedEntityList* l);
49 
50  // This function receives entityRemovalCallback from the reflected
51  // entity list, then calls entityRemoval. It also removes the
52  // entityPostUpdateCallback from the reflected entity.
53  static void entityRemovalCallback(DtReflectedEntity* e, void* usr);
54 
55 #if !DtTENA
56  // If there is an emitter in the list that is attached to this entity,
57  // remove it
58  virtual void processEntityRemoval(DtReflectedEntity* e);
59 #endif
60 
61 #ifdef DtHLA
62  virtual void processEmitterBeamRemoval(DtReflectedEmitterBeam* beam);
63  virtual void processEmitterBeamAddition(DtReflectedEmitterBeam* beam);
64 
65  virtual bool removeObject(const DtObjectId& id);
66 #endif
67 
68 private:
69  // not implemented
72 
73 protected:
74  typedef struct _DtBeamIdStruct
75  {
76  DtGlobalObjectDesignator emittingSystemId;
77  DtGlobalObjectDesignator globalId;
78  }
80 
81  typedef std::map<int, DtBeamIdStruct> DtBeamIdMap;
82 protected:
85 };
86 
87 #endif // REFEXTEMITLIST_H
88 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)