VR-Forces 5.0.2 Developer's Guide
 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 
24 
25 namespace makVrfEvents
26 {
27  class DtDetonationEvent;
28  class DtEvent;
29 }
30 
36 {
37 private:
44 
45 public:
48  DtSimulationServices* simManager, DtComponentDescriptor* desc=0, DtReaderWriterRegistry *parentRegistry=0);
49 
52 
54  virtual void registerCallbacks();
55 
57  virtual void deregisterCallbacks();
58 
60  virtual const char* type() const;
61 
63  virtual void tick();
64 
66  virtual void sendDetonation(const DtVector& localPos, const DtEntityType& munitionType);
67 
69  static DtSimComponent* creator(const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
70  DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
71 
75  static void addHighFidelityDamageAlgorithm(const DtString& algorithmId, DtDynamicTerrainMunitionDamageAlgorithmSP);
76 
78  static void removeHighFidelityDamageAlgorithm(const DtString& algorithmId);
79 
80 protected:
81 
84  virtual void detonationCallback(const makVrfEvents::DtEvent&);
85  virtual void processDetonation(const makVrfEvents::DtDetonationEvent& detonation);
87 
90  static void removeDynamicTerrainDamageCallback(const DtSimCommand& cmd, void* usr);
91  virtual void processRemoveDynamicTerrainDamageCommand(const DtRemoveDynamicTerrainDamageCommand& cmd);
93 
95  virtual void removeStandardDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
96 
98  virtual void removeHighFidelityDamageInCommandArea(const DtDynamicTerrainCommand& cmd);
99 
102 
106 
107  virtual void processCraterDamage(const DtVector & localPos, const DtMunitionTerrainDeformationEntry* deformationEntry, const makVrfEvents::DtDetonationEvent & detonationInteraction);
108 
110  virtual void processStandardDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
111 
113  virtual void processHighFidelityDamage(const DtVector& localPos, const DtPowerRangeDeterminantList* detonationPower);
114 
116  virtual bool processQueuedHighFidelityDamage(const DtVector& localPos,
117  const DtPowerRangeDeterminantList* detonationPower,
118  const DtHighFidelityTerrainDamageConfig* damageConfig);
119 
120  typedef std::map<DtString, DtDynamicTerrainMunitionDamageAlgorithmSP> HighFidelityAlgorithmMap;
121  static HighFidelityAlgorithmMap* highFidelityAlgorithms();
122 
123 protected:
124 
126 
128  {
130  const DtPowerRangeDeterminantList* dp,
132  : localPos(lp), detonationPower(dp), damageConfig(dc) {};
133 
134  DtVector localPos;
137  };
138  typedef std::list<HighFidelityQueueItem> HighFidelityQueue;
139 
141 
145 };
#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:144
unsigned myCraterPriorityIncrement
Definition: dynamicTerrainMunitionDamageController.h:140
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)
Processes commands to add new changes to dynamic terrain.
DtDynamicTerrainMunitionDamageControllerDescriptor * myDynamicTerrainMunitionDamageDescriptor
Definition: dynamicTerrainMunitionDamageController.h:125
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
Definition: detonationEvent.h:20
Definition: event.h:13
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainController.h:52
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. It manages the read/write capa...
Definition: simCommand.h:32
HighFidelityQueueItem(const DtVector &lp, const DtPowerRangeDeterminantList *dp, const DtHighFidelityTerrainDamageConfig *dc)
Definition: dynamicTerrainMunitionDamageController.h:129
virtual void deregisterCallbacks()
Called by destructor to deregister any callbacks.
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainMunitionDamageController.h:35
Instances of DtDynamicTerrainMunitionDamageControllerDescriptor are used to specify the parameters fo...
Definition: dynamicTerrainMunitionDamageControllerDescriptor.h:17
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Static creator function for factory registration.
const DtHighFidelityTerrainDamageConfig * damageConfig
Definition: dynamicTerrainMunitionDamageController.h:136
const DtPowerRangeDeterminantList * detonationPower
Definition: dynamicTerrainMunitionDamageController.h:135
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
Definition: highFidelityTerrainDamageConfig.h:23
DtSimCommand which causes all dynamic terrain damage to be removed at the specified geometry...
Definition: dynamicTerrainCommand.h:194
DtBoost::shared_ptr< DtDynamicTerrainMunitionDamageAlgorithm > DtDynamicTerrainMunitionDamageAlgorithmSP
Definition: dynamicTerrainMunitionDamageAlgorithm.h:65
virtual bool processPendingDynamicTerrainInformation(PendingDynamicTerrainInformationPtr &)
Processes a pending dynamic terrain information request. If results are discovered, sends a response. If not sent returns false.
DtDynamicTerrainController & operator=(const DtDynamicTerrainController &orig)
Not Implemented.
Definition: dynamicTerrainMunitionDamageController.h:127
std::list< HighFidelityQueueItem > HighFidelityQueue
Definition: dynamicTerrainMunitionDamageController.h:138
virtual void tick()
This component&#39;s simulation tick.
std::map< DtString, DtDynamicTerrainMunitionDamageAlgorithmSP > HighFidelityAlgorithmMap
Definition: dynamicTerrainMunitionDamageController.h:120
virtual void registerCallbacks()
Called by init to register any callbacks.
DtBoost::shared_ptr< PendingDynamicTerrainInformation > PendingDynamicTerrainInformationPtr
Definition: dynamicTerrainController.h:207
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)