20 #include <vl/detonationInteraction.h>
39 class DtDynamicTerrainFeature;
40 class DtDynamicTerrainChanges;
41 class DtDynamicTerrainGeometry;
70 virtual void registerCallbacks();
73 virtual void deregisterCallbacks();
79 virtual const char*
type()
const;
88 unsigned priority,
double delay = 0.0,
bool shouldQueue =
true);
94 unsigned priority,
double delay = 0.0);
97 unsigned priority,
double delay = 0.0);
103 double tolerance,
const DtString& key,
unsigned* index = 0);
111 virtual void processQueuedTerrainChanges(
double dt);
115 virtual void setDynamicTerrainInformationRecheckPeriod(
double);
118 return myDynamicTerrainRecheckPeriod;
125 virtual std::list<DtVector> findDynamicTerrainElements(
const DtVector& localLocation,
double radius,
126 const DtString& filterKey = DtString::nullString(),
127 std::list<DtRwDynamicTerrainInformation>* fullInfo = 0,
128 bool* dataAvailable = 0);
133 virtual std::list<DtVector> findDynamicTerrainElements(
const DtVector& localStartLocation,
134 const DtVector& localEndLocation,
const DtString& filterKey = DtString::nullString(),
135 std::list<DtRwDynamicTerrainInformation>* fullInfo = 0,
136 bool* dataAvailable = 0);
147 static void addDynamicTerrainChangesCallback(
const DtSimCommand& cmd,
void* usr);
153 static void switchDynamicTerrainCallback(
const DtSimCommand& cmd,
void* usr);
161 static void resetDynamicTerrainChangesCallback(
const DtSimCommand& cmd,
void* usr);
182 static void dynamicTerrainInformationRequestCallback(
DtSimMessage*,
void* usr);
204 static void drawDynamicTerrainCallback(
DtSimMessage * msg,
void * usr);
205 virtual void processDrawDynamicTerrainTask(
DtSimMessage * msg);
215 virtual void addPublishedChange(std::vector<DtDynamicTerrainPublisher*>& publishers,
220 virtual void updatePublishedChange(std::vector<DtDynamicTerrainPublisher*>& publishers,
221 unsigned index,
const DtKeyValuePairList& changeData,
unsigned priority,
unsigned eventNumber);
224 virtual const DtTerrainGeometryAndData& publishedChange(
const std::vector<DtDynamicTerrainPublisher*>& publishers,
unsigned index)
const;
255 : geometry(g.clone()), change(c), priority(p), delay(d) {};
double myLastTickRealTime
Definition: dynamicTerrainController.h:247
std::list< QueuedTerrainSwitch > myTerrainSwitchQueue
Definition: dynamicTerrainController.h:267
Definition: dynamicTerrainController.h:252
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Base class for any DtSimCommand which causes dynamic terrain changes to be added or removed...
Definition: dynamicTerrainCommand.h:20
Definition: worldLocationStructArray.h:19
Definition: terrainGeometryAndData.h:24
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: keyValuePairList.h:18
Instances of DtDynamicTerrainPublisher publish DynamicTerrain objects to the network.
Definition: dynamicTerrainPublisherDIS.h:27
DtSimCommand which causes a specific list of dynamic terrain changes to take place at the specified g...
Definition: dynamicTerrainCommand.h:114
~QueuedTerrainSwitch()
Definition: dynamicTerrainController.h:257
DtDynamicTerrainControllerPSR * myProcessState
Container for state data associated with this component.
Definition: dynamicTerrainController.h:233
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
Sim command that causes the dynamic terrain state at a specific point to be switched to the next stat...
Definition: switchDynamicTerrainAtPointCommand.h:21
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
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
unsigned priority
Definition: dynamicTerrainController.h:264
virtual const char * type() const =0
Returns a string identifies the class type of component.
Definition: keyValuePair.h:18
virtual bool init()
Calls setRadio()
Mutex myTerrainFeatureMutex
Definition: dynamicTerrainController.h:250
PendingDynamicTerrainRequests myPendingDynamicTerrainRequests
Definition: dynamicTerrainController.h:244
tbb::spin_mutex Mutex
Definition: dynamicTerrainController.h:249
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick.
Definition: simComponent.h:485
DtKeyValuePair change
Definition: dynamicTerrainController.h:263
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainController.h:48
Instances of DtDynamicTerrainControllerDescriptor are used to specify the parameters for a DtDynamicT...
Definition: dynamicTerrainControllerDescriptor.h:19
DtDynamicTerrainControllerPSR is a process state repository which holds state variables for the DtDyn...
Definition: dynamicTerrainControllerPSR.h:23
File: simMsg.h.
Definition: simMessage.h:35
std::vector< DtDynamicTerrainPublisher * > myIndividualSwitchPublishers
Publishes the dynamic terrain changes for individual switches to the network.
Definition: dynamicTerrainController.h:236
virtual void tick()
This gives the thread of control to the component.
DtSimCommand is an abstract base class from which commands can derive.
Definition: simCommand.h:32
std::vector< DtDynamicTerrainPublisher * > myCraterPublishers
Publishes the dynamic terrain changes for craters to the network.
Definition: dynamicTerrainController.h:242
std::vector< PendingDynamicTerrainInformationPtr > PendingDynamicTerrainRequests
Definition: dynamicTerrainController.h:196
This file provides a protocol independant include file for the class DtDynamicTerrainPublisher.
DtDynamicTerrainControllerDescriptor * myDynamicTerrainDescriptor
Definition: dynamicTerrainController.h:229
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
virtual double dynamicTerrainInformationRecheckPeriod() const
Definition: dynamicTerrainController.h:116
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtRwDynamicTerrainItem holds a the information needed to make a dynamic change to the terrain...
Definition: rwDynamicTerrainItem.h:24
DtTerrainGeometry * geometry
Definition: dynamicTerrainController.h:262
DtSimCommand which causes a specific list of dynamic terrain changes to be reset to their original st...
Definition: dynamicTerrainCommand.h:139
double delay
Definition: dynamicTerrainController.h:265
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
double myDynamicTerrainRecheckPeriod
Definition: dynamicTerrainController.h:245
QueuedTerrainSwitch(const DtTerrainGeometry &g, const DtKeyValuePair &c, unsigned p, double d)
Definition: dynamicTerrainController.h:254
class DtRwVectorList:
Definition: rwVectorList.h:22
DtBoost::shared_ptr< PendingDynamicTerrainInformation > PendingDynamicTerrainInformationPtr
Definition: dynamicTerrainController.h:195
Definition: terrainGeometry.h:33
std::list< DtSwitchDynamicTerrainAtPointCommand > myTerrainSwitchAtPointQueue
Definition: dynamicTerrainController.h:268
std::vector< DtDynamicTerrainPublisher * > myAreaPublishers
Publishes the dynamic terrain changes for a whole area to the network.
Definition: dynamicTerrainController.h:239