VR-Forces 4.10 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 class DtEvent;
25 
31 {
32 private:
39 
40 public:
43  DtSimManager* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry *parentRegistry=0);
44 
47 
49  virtual void registerCallbacks();
50 
52  virtual void deregisterCallbacks();
53 
55  virtual const char* type() const;
56 
58  virtual void tick();
59 
61  virtual void sendDetonation(const DtVector& localPos, const DtEntityType& munitionType);
62 
64  static DtSimComponent* creator(const DtString& name, DtVrfObject* owner, DtSimManager* simManager,
65  DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
66 
70  static void addHighFidelityDamageAlgorithm(const DtString& algorithmId, DtDynamicTerrainMunitionDamageAlgorithmSP);
71 
73  static void removeHighFidelityDamageAlgorithm(const DtString& algorithmId);
74 
75 protected:
76 
79  virtual void detonationCallback(const DtEvent&);
80  virtual void processDetonation(const DtDetonationInteraction& detonation);
82 
85  static void removeDynamicTerrainDamageCallback(const DtSimCommand& cmd, void* usr);
86  virtual void processRemoveDynamicTerrainDamageCommand(const DtRemoveDynamicTerrainDamageCommand& cmd);
88 
90  virtual void removeStandardDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
91 
93  virtual void removeHighFidelityDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
94 
97 
101 
102  virtual void processCraterDamage(const DtVector & localPos, const DtMunitionTerrainDeformationEntry* deformationEntry, const DtDetonationInteraction & detonationInteraction);
103 
105  virtual void processStandardDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
106 
108  virtual void processHighFidelityDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
109 
111  virtual bool processQueuedHighFidelityDamage(const DtVector& localPos,
112  const DtPowerRangeDeterminantList* detonationPower,
113  const DtHighFidelityTerrainDamageConfig* damageConfig);
114 
115  typedef std::map<DtString, DtDynamicTerrainMunitionDamageAlgorithmSP> HighFidelityAlgorithmMap;
116  static HighFidelityAlgorithmMap* highFidelityAlgorithms();
117 
118 protected:
119 
121 
123  {
125  const DtPowerRangeDeterminantList* dp,
127  : localPos(lp), detonationPower(dp), damageConfig(dc) {};
128 
129  DtVector localPos;
132  };
133  typedef std::list<HighFidelityQueueItem> HighFidelityQueue;
134 
136 
140 };
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Definition: munitionTerrainDeformationEntry.h:13
Base class for any DtSimCommand which causes dynamic terrain changes to be added or removed...
Definition: dynamicTerrainCommand.h:20
HighFidelityQueue myHighFidelityQueue
Queue of high fidelity damage events that could not immediately be processed because data was not yet...
Definition: dynamicTerrainMunitionDamageController.h:139
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
static DtSimComponent * creator(const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Static creator function for factory registration.
unsigned myCraterPriorityIncrement
Definition: dynamicTerrainMunitionDamageController.h:135
DtSimCommand which causes a specific list of dynamic terrain changes to take place at the specified g...
Definition: dynamicTerrainCommand.h:114
virtual void processAddDynamicTerrainChangesCommand(const DtAddDynamicTerrainChangesCommand &cmd)
DtDynamicTerrainMunitionDamageControllerDescriptor * myDynamicTerrainMunitionDamageDescriptor
Definition: dynamicTerrainMunitionDamageController.h:120
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Definition: readerWriterRegistry.h:39
Definition: events.h:49
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainController.h:48
A readable/writable list of detonation powers listed by type.
Definition: powerRangeDeterminantList.h:18
virtual const char * type() const
Used to map soil types to OSG Earth Landcover strings.
Definition: vrfSoilToOsgEarthLandCoverMap.h:19
DtSimCommand is an abstract base class from which commands can derive.
Definition: simCommand.h:32
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
HighFidelityQueueItem(const DtVector &lp, const DtPowerRangeDeterminantList *dp, const DtHighFidelityTerrainDamageConfig *dc)
Definition: dynamicTerrainMunitionDamageController.h:124
virtual void deregisterCallbacks()
Called by destructor to deregister any callbacks.
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainMunitionDamageController.h:30
Instances of DtDynamicTerrainMunitionDamageControllerDescriptor are used to specify the parameters fo...
Definition: dynamicTerrainMunitionDamageControllerDescriptor.h:17
const DtHighFidelityTerrainDamageConfig * damageConfig
Definition: dynamicTerrainMunitionDamageController.h:131
const DtPowerRangeDeterminantList * detonationPower
Definition: dynamicTerrainMunitionDamageController.h:130
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
Definition: highFidelityTerrainDamageConfig.h:23
DtSimCommand which causes all dynamic terrain damage to be removed at the specified geometry...
Definition: dynamicTerrainCommand.h:170
DtBoost::shared_ptr< DtDynamicTerrainMunitionDamageAlgorithm > DtDynamicTerrainMunitionDamageAlgorithmSP
Definition: dynamicTerrainMunitionDamageAlgorithm.h:65
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
virtual bool processPendingDynamicTerrainInformation(PendingDynamicTerrainInformationPtr &)
Processes a pending dynamic terrain information request.
DtDynamicTerrainController & operator=(const DtDynamicTerrainController &orig)
Not Implemented.
Definition: dynamicTerrainMunitionDamageController.h:122
std::list< HighFidelityQueueItem > HighFidelityQueue
Definition: dynamicTerrainMunitionDamageController.h:133
virtual void tick()
This component&#39;s simulation tick.
std::map< DtString, DtDynamicTerrainMunitionDamageAlgorithmSP > HighFidelityAlgorithmMap
Definition: dynamicTerrainMunitionDamageController.h:115
virtual void registerCallbacks()
Called by init to register any callbacks.
DtBoost::shared_ptr< PendingDynamicTerrainInformation > PendingDynamicTerrainInformationPtr
Definition: dynamicTerrainController.h:197

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)