VR-Forces 4.1 Class Documentation
detonationManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2004 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: detonationManager.h,v $ $Revision: 1.22 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef detonationManager_H_
9 #define detonationManager_H_
10 
13 
14 #include <matrix/vlVector.h>
16 
17 #include <vl/detonateInter.h>
18 #include "vrfobjcore/vrfObjMgr.h"
19 #include "vrfobjcore/vrfObject.h"
20 #include "vrfobjcore/vrfKinState.h"
21 #include "vrftasks/radioMsgTypes.h"
22 #include "vrfobjcore/baseRadio.h"
23 #include "vrfobjcore/vrfObjSR.h"
24 
25 #include "vrfcore/simMgr.h"
26 #include "vrfutil/kinTools.h"
28 #include "vrfobjcore/compTypes.h"
30 #include <vlutil/vlConfig.h>
31 #include <map>
32 #include <vlutil/vlSmartPointers.h>
33 
34 
57 {
58 public:
59 
60  typedef bool (*DtDamageAdjudicationFunction)(const DtDetonationContext& detonationContext, void* usr);
61 
63  {
65  DtGlobalObjectDesignator globalId;
66  DtDamageAdjudicationFunction callbackFcn;
68  };
69 
70  typedef std::map<DtSimMunition,double> DtMunitionDamageMap;
71 
73  {
75  DtGlobalObjectDesignator globalId;
77  DtDamageAdjudicationFunction callbackFcn;
79  };
80 
81  typedef DtBoost::shared_ptr<DtDirectDetonationTargetInfo> DtDirectDetonationTargetInfoPtr;
82 
83  typedef std::list<DtDirectDetonationTargetInfoPtr> DtDirectDetonationTargetList;
84  typedef std::map<std::string, DtDirectDetonationTargetInfoPtr> DtDirectDetonationTargetMap;
85 
86  typedef DtBoost::shared_ptr<DtCollateralDetonationTargetInfo> DtCollateralDetonationTargetInfoPtr;
87 
88  typedef std::list<DtCollateralDetonationTargetInfoPtr> DtCollateralDetonationTargetList;
89  typedef std::map<std::string, DtCollateralDetonationTargetInfoPtr> DtCollateralDetonationTargetMap;
90 
93  DtDetonationManager(DtSimManager& simManager);
94 
98  virtual ~DtDetonationManager();
99 
105  virtual bool init();
106 
113  virtual bool reinitialize();
114 
118 
122  virtual bool registerDirectDetonation(DtVrfObject& entity,
123  DtGlobalObjectDesignator entityId, void* callbackObject, DtDamageAdjudicationFunction func);
124 
125 
131  virtual bool registerCollateralDetonation(DtVrfObject& entity,
132  DtGlobalObjectDesignator entityId, DtSimMunition munition, double maxDamageRadius,void* callbackObject,
133  DtDamageAdjudicationFunction func);
134 
142  virtual bool unRegisterDirectDetonationTarget(DtVrfObject& entity);
143  virtual bool unRegisterCollateralDetonationTarget(DtVrfObject& entity);
144 
146  virtual double lookupMunitionInCollateralDetonationMap(
147  DtCollateralDetonationTargetInfoPtr targetPtr, const DtSimMunition & munition);
148 
150  virtual void sendDetonationInteraction(DtDetonationInteraction& detonation);
151 
152 protected:
153 
163  static void detonationCallback(DtDetonationInteraction* detInter, void* usr);
164 
165  static void nameChangeCallback(const DtVrfObjectNameChangedCallbackInfo& change, void * usr);
166 
167  virtual void processNameChange(const DtVrfObjectNameChangedCallbackInfo& change);
168 
180  virtual void processDetonation(const DtDetonationInteraction& detonation);
181 
184  virtual const DtPhysicalWorld* physicalWorld() const;
185  virtual DtPhysicalWorld* physicalWorld();
186 
189  virtual Coordinate_System* coordinateSystem();
190  virtual const Coordinate_System* coordinateSystem() const;
191 
196  virtual void processCollateralDetonationForEntitiesInRange(DtDetonationContext& detonationContext);
197 
202  bool testInvariant() const;
203 
204  void cleanOutDeadEntities();
205 
206 private:
207 
212  DtDetonationManager& operator=(const DtDetonationManager& other);
213 
214 protected:
215 
221  std::list<std::string> myEntitiesQueuedToBeRemovedList;
223 };
224 
225 
226 #endif
227 
228 
229 

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)