VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dynamicTerrainMunitionDamageController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
12 
13 #pragma once
14 
17 #include <tbb/spin_mutex.h>
18 
22 
23 
29 {
30 private:
37 
38 public:
41  DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry *parentRegistry=0);
42 
45 
47  virtual void registerCallbacks();
48 
50  virtual void deregisterCallbacks();
51 
53  virtual const char* type() const;
54 
56  virtual void tick();
57 
59  virtual void sendDetonation(const DtVector& localPos, const DtEntityType& munitionType);
60 
62  static DtSimComponent* creator(const DtString& name, DtVrfObject* owner, DtSimManager* simManager,
63  DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
64 
68  static void addHighFidelityDamageAlgorithm(const DtString& algorithmId, DtDynamicTerrainMunitionDamageAlgorithmSP);
69 
71  static void removeHighFidelityDamageAlgorithm(const DtString& algorithmId);
72 
73 protected:
74 
77  static void detonationCallback(DtDetonationInteraction* detInter, void* usr);
78  virtual void processDetonation(const DtDetonationInteraction& detonation);
80 
83  static void removeDynamicTerrainDamageCallback(const DtSimCommand& cmd, void* usr);
84  virtual void processRemoveDynamicTerrainDamageCommand(const DtRemoveDynamicTerrainDamageCommand& cmd);
86 
88  virtual void removeStandardDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
89 
91  virtual void removeHighFidelityDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
92 
95 
99 
101  virtual void processStandardDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
102 
104  virtual void processHighFidelityDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
105 
107  virtual bool processQueuedHighFidelityDamage(const DtVector& localPos,
108  const DtPowerRangeDeterminantList* detonationPower,
109  const DtHighFidelityTerrainDamageConfig* damageConfig);
110 
111  typedef std::map<DtString, DtDynamicTerrainMunitionDamageAlgorithmSP> HighFidelityAlgorithmMap;
112  static HighFidelityAlgorithmMap* highFidelityAlgorithms();
113 
114 protected:
115 
117 
119  {
121  const DtPowerRangeDeterminantList* dp,
123  : localPos(lp), detonationPower(dp), damageConfig(dc) {};
124 
125  DtVector localPos;
128  };
129  typedef std::list<HighFidelityQueueItem> HighFidelityQueue;
130 
134 };

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)