38 class DtDynamicTerrainStateComponent;
43 class DtDynamicTerrainFeature;
44 class DtDynamicTerrainChanges;
45 class DtDynamicTerrainGeometry;
74 virtual void registerCallbacks();
77 virtual void deregisterCallbacks();
83 virtual const char*
type()
const;
92 unsigned priority,
double delay = 0.0,
bool shouldQueue =
true);
98 unsigned priority,
double delay = 0.0);
101 unsigned priority,
double delay = 0.0);
107 double tolerance,
const DtString& key,
unsigned* index = 0);
115 virtual void processQueuedTerrainChanges(
double dt);
119 virtual void setDynamicTerrainInformationRecheckPeriod(
double);
122 return myDynamicTerrainRecheckPeriod;
129 virtual std::list<DtVector> findDynamicTerrainElements(
const DtVector& localLocation,
double radius,
130 const DtString& filterKey = DtString::nullString(),
131 std::list<DtRwDynamicTerrainInformation>* fullInfo = 0,
132 bool* dataAvailable = 0);
137 virtual std::list<DtVector> findDynamicTerrainElements(
const DtVector& localStartLocation,
138 const DtVector& localEndLocation,
const DtString& filterKey = DtString::nullString(),
139 std::list<DtRwDynamicTerrainInformation>* fullInfo = 0,
140 bool* dataAvailable = 0);
153 static void addDynamicTerrainChangesCallback(
const DtSimCommand& cmd,
void* usr);
159 static void switchDynamicTerrainCallback(
const DtSimCommand& cmd,
void* usr);
167 static void resetDynamicTerrainChangesCallback(
const DtSimCommand& cmd,
void* usr);
173 static void resetAllDynamicTerrainChangesCallback(
const DtSimCommand& cmd,
void* usr);
194 static void dynamicTerrainInformationRequestCallback(
DtSimMessage*,
void* usr);
216 static void drawDynamicTerrainCallback(
DtSimMessage * msg,
void * usr);
217 virtual void processDrawDynamicTerrainTask(
DtSimMessage * msg);
224 virtual void addPublishedChange(std::vector<makVrf::DtDynamicTerrainStateComponent*>& publishers,
229 virtual void updatePublishedChange(std::vector<makVrf::DtDynamicTerrainStateComponent*>& publishers,
230 unsigned index,
const DtKeyValuePairList& changeData,
unsigned priority,
unsigned eventNumber);
233 virtual const DtTerrainGeometryAndData& publishedChange(
const std::vector<makVrf::DtDynamicTerrainStateComponent*>& publishers,
unsigned index)
const;
268 : geometry(g.clone()), change(c), priority(p), delay(d) {};
double myLastTickRealTime
Definition: dynamicTerrainController.h:260
std::list< QueuedTerrainSwitch > myTerrainSwitchQueue
Definition: dynamicTerrainController.h:280
Definition: dynamicTerrainController.h:265
#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
Definition: keyValuePairList.h:18
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:270
DtDynamicTerrainControllerPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: dynamicTerrainController.h:243
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
bool myEnabled
Definition: dynamicTerrainController.h:282
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
unsigned priority
Definition: dynamicTerrainController.h:277
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
std::vector< makVrf::DtDynamicTerrainStateComponent * > myCraterPublishers
Publishes the dynamic terrain changes for a whole area to the network.
Definition: dynamicTerrainController.h:252
Definition: keyValuePair.h:18
virtual bool init()
Calls setRadio()
Mutex myTerrainFeatureMutex
Definition: dynamicTerrainController.h:263
PendingDynamicTerrainRequests myPendingDynamicTerrainRequests
Definition: dynamicTerrainController.h:257
tbb::spin_mutex Mutex
Definition: dynamicTerrainController.h:262
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:436
DtKeyValuePair change
Definition: dynamicTerrainController.h:276
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainController.h:52
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:25
File: simMsg.h.
Definition: simMessage.h:35
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
std::vector< PendingDynamicTerrainInformationPtr > PendingDynamicTerrainRequests
Definition: dynamicTerrainController.h:208
DtDynamicTerrainControllerDescriptor * myDynamicTerrainDescriptor
Definition: dynamicTerrainController.h:239
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
std::vector< makVrf::DtDynamicTerrainStateComponent * > myIndividualSwitchPublishers
Publishes the dynamic terrain changes for individual switches to the network.
Definition: dynamicTerrainController.h:246
virtual double dynamicTerrainInformationRecheckPeriod() const
The recheck period for checking dynamic terrain info requests. Default is 0.5 seconds.
Definition: dynamicTerrainController.h:120
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:23
std::vector< makVrf::DtDynamicTerrainStateComponent * > myAreaPublishers
Publishes the dynamic terrain changes for a whole area to the network.
Definition: dynamicTerrainController.h:249
DtTerrainGeometry * geometry
Definition: dynamicTerrainController.h:275
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:278
double myDynamicTerrainRecheckPeriod
Definition: dynamicTerrainController.h:258
QueuedTerrainSwitch(const DtTerrainGeometry &g, const DtKeyValuePair &c, unsigned p, double d)
Definition: dynamicTerrainController.h:267
DtSimCommand which causes all dynamic terrain changes to be reset to their original state at the spec...
Definition: dynamicTerrainCommand.h:170
class DtRwVectorList:
Definition: rwVectorList.h:22
DtBoost::shared_ptr< PendingDynamicTerrainInformation > PendingDynamicTerrainInformationPtr
Definition: dynamicTerrainController.h:207
std::vector< makVrf::DtDynamicTerrainStateComponent * > myVehicleTrackPublishers
Publishes the persistent vehicle track changes to the the network.
Definition: dynamicTerrainController.h:255
Definition: terrainGeometry.h:33
std::list< DtSwitchDynamicTerrainAtPointCommand > myTerrainSwitchAtPointQueue
Definition: dynamicTerrainController.h:281
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
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: dynamicTerrainStateComponent.h:45