VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fireManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
10 
11 #include <matrix/vlVector.h>
12 
13 #include <vl/fireInteraction.h>
14 #include "vrfobjcore/fireContext.h"
15 
17 #include "vrfobjcore/vrfObject.h"
20 #include "vrfobjcore/simRadio.h"
22 
23 #include "vrfcore/simManager.h"
24 #include "vrfutil/kinematicTools.h"
26 
27 #include <map>
28 
39 {
40 public:
41 
42  typedef bool (*DtFireProcessingFunction)(const DtFireContext& fireContext, void* usr);
43  typedef std::map<DtVrfObject*, DtGlobalObjectDesignator> DtRegisteredVrfObjects;
44  typedef std::map<DtVrfObject*, DtFireProcessingFunction> DtFireCallbackFuncs;
45  typedef std::map<DtVrfObject*, void*> DtFireCallbackObjects;
46 
49  DtFireManager(DtSimManager& simManager);
50 
53  virtual ~DtFireManager();
54 
61  virtual bool init();
62 
69  virtual bool reinitialize();
70 
71 
79  virtual bool registerFireTarget(DtVrfObject& entity,
80  DtGlobalObjectDesignator entityId,
81  void* callbackObject,
82  DtFireProcessingFunction func);
83 
93  virtual bool registerFireTargetForRemoval(DtVrfObject& entity);
94 
102  virtual bool unRegisterFireTarget(DtVrfObject& entity);
103 
105  virtual void sendFireInteraction(DtFireInteraction& fire);
106 
107 protected:
108 
114  bool testInvariant() const;
115 
126  static void detonationCallback(DtDetonationInteraction* fireInter, void* usr);
127 
139  virtual void processDetonation(const DtDetonationInteraction& fire);
140 
141 
146  static void fireCallback(DtFireInteraction* fireInter, void* usr);
147 
159  virtual void processFire(const DtFireInteraction& fire);
160 
161 
163  virtual void determineUnderFire(const DtDetonationInteraction& detonation);
164 
166  virtual void determineUnderFire(const DtFireInteraction& fireInter);
167 
169  virtual void removeQueuedFireTargets();
170 
171 protected:
172 
175  DtFireManager(const DtFireManager& orig);
177  DtFireManager& operator=(const DtFireManager& other);
178 
179 protected:
182 
186 
191 
193  std::vector<DtVrfObject*> myFireTargetsToBeRemoved;
194 
196 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)