17 #include <vlpi/deadReckoner.h>
20 #include <tbb/mutex.h>
21 #include <tbb/spin_mutex.h>
33 class DtDynamicTerrainStateComponent;
36 namespace MAKVRinTerra
38 class DtFeatureGeometry;
69 virtual const char*
type()
const override;
78 virtual void tick()
override;
81 unsigned priority,
const DtString& soilType,
double distanceTraveled = 0.0,
double delay = 0.0);
95 static void addPersistentTracksCommandCallBack(
const DtSimCommand& cmd,
void *usr);
96 static void removePersistentTracksCommandCallBack(
const DtSimCommand& cmd,
void *usr);
107 virtual void processTrackFromCommand(
DtKeyValuePairList& trackParams,
const std::vector<DtVector>& points);
109 static void displayDebugForCurrentTracksCallback(
DtSimMessage* msg,
void* usrData);
110 virtual void processDisplayDebugForCurrentTracks(
DtSimMessage*);
112 static void clearDebugForCurrentTracksCallback(
DtSimMessage* msg,
void* usrData);
113 virtual void processClearDebugForCurrentTracks(
DtSimMessage*);
125 virtual void tickQueuedVehicleTrackData();
129 virtual void tickVehicleTrackData();
132 virtual void updatePublishedTrackChange(std::vector<makVrf::DtDynamicTerrainStateComponent*>& publishers,
150 virtual void discoverNewObjectsInArea();
156 std::vector<MAKVRinTerra::DtFeatureGeometry>& resultingGeom);
170 virtual void resetAllQueuedTracks();
173 virtual bool atMaximumNumberOfIndividualTracks()
const;
176 virtual void dumpPublishedTracksToLog()
const;
178 virtual void dumpQueuedTracksToLog()
const;
210 : trackParams(params), points(pts) {};
static void resetAllDynamicTerrainChangesCallback(const DtSimCommand &cmd, void *usr)
Processes commands to reset all changes to dynamic terrain.
Definition: dynamicTerrainVehicleTrackController.h:207
UUID is a unique ID wrapper class.
Definition: uuid.h:59
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=nullptr, DtReaderWriterRegistry *parentRegistry=nullptr)
Static creator function for factory registration.
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Definition: keyValuePairList.h:18
virtual void tick() override
This component's simulation tick.
DtRwQueuedDynamicTerrainVehicleTrackItem holds the information needed to make a dynamic change to the...
Definition: rwQueuedDynamicTerrainVehicleTrackItem.h:17
double myMaximumTraverseDistBetweenTrackPointsSquared
Definition: dynamicTerrainVehicleTrackController.h:190
DtDeadReckoner myDeadReckoner
Definition: dynamicTerrainVehicleTrackController.h:205
virtual void registerTaskMsgCallbacks()
virtual bool isCommandValidForArea(const DtDynamicTerrainCommand &cmd)
Returns true if the geometry for the command is within our area of control.
Definition: rwDynamicTerrainVehicleTrackItem.h:24
DtDynamicTerrainVehicleTrackController is a controller that calculates and publishes terrain changes ...
Definition: dynamicTerrainVehicleTrackController.h:45
std::set< DtUUID > myObjectsInArea
Definition: dynamicTerrainVehicleTrackController.h:200
unsigned myMaxNumPtsPerTrack
Definition: dynamicTerrainVehicleTrackController.h:196
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: dynamicTerrainVehicleTrackController.h:219
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
tbb::mutex myRemovalMutex
Definition: dynamicTerrainVehicleTrackController.h:220
bool myShowingDebugTracks
Definition: dynamicTerrainVehicleTrackController.h:202
Definition: readerWriterRegistry.h:39
virtual bool taskVisualizationsActive() const override
Returns true if task visualizations are currently active for this component. Default behavior for tas...
bool myUpdateTrackTaskVis
Definition: dynamicTerrainVehicleTrackController.h:203
DtSimCommand which causes a specific list of dynamic terrain changes to take place at the specified g...
Definition: persistentTracksCommand.h:71
Definition: dynamicTerrainVehicleTrackControllerDescriptor.h:29
virtual void updateTaskVisualizations() override
Called to update task visualizations after every tick. Implemented by subclasses. ...
DtDynamicTerrainMunitionDamageController is a controller that calculates and publishes terrain change...
Definition: dynamicTerrainController.h:53
DtSimCommand which causes a specific list of dynamic terrain changes to take place at the specified g...
Definition: persistentTracksCommand.h:151
QueuedTrackCommand(const DtKeyValuePairList ¶ms, const std::vector< DtVector > &pts)
Definition: dynamicTerrainVehicleTrackController.h:209
File: simMsg.h.
Definition: simMessage.h:35
double myLastTimePublishedDebugPrint
Definition: dynamicTerrainVehicleTrackController.h:193
std::vector< DtVector > points
Definition: dynamicTerrainVehicleTrackController.h:213
DtDynamicTerrainVehicleTrackControllerDescriptor * myDynamicTerrainVehicleTrackDescriptor
Definition: dynamicTerrainVehicleTrackController.h:186
double myTrackPositionalThresholdSquared
Definition: dynamicTerrainVehicleTrackController.h:188
boost::signals2::scoped_connection mySimObjectAddedConnection
Definition: dynamicTerrainVehicleTrackController.h:218
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
virtual void deregisterCallbacks()
Called by destructor to deregister any callbacks.
Base class for any DtSimCommand which persistent changes to be added or removed. Must be subclassed f...
Definition: persistentTracksCommand.h:21
double myNextObjectDiscoveryTime
Definition: dynamicTerrainVehicleTrackController.h:199
double myMinimumTraverseDistToPublishTracksSquared
Definition: dynamicTerrainVehicleTrackController.h:191
virtual void preFirstTickInit() override
Publishes any dynamic terrain changes saved in PSR.
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
virtual void processResetAllDynamicTerrainChangesCommand(const DtResetAllDynamicTerrainChangesCommand &cmd)
Processes commands to reset all changes to dynamic terrain.
std::vector< QueuedTrackCommand > myQueuedTrackCommands
Definition: dynamicTerrainVehicleTrackController.h:216
double myTrackRotationalTraceThresh
Definition: dynamicTerrainVehicleTrackController.h:189
double myLastTimeQueuedDebugPrint
Definition: dynamicTerrainVehicleTrackController.h:192
virtual const char * type() const override
DtDynamicTerrainController & operator=(const DtDynamicTerrainController &orig)
Not Implemented.
DtSimCommand which causes all dynamic terrain changes to be reset to their original state at the spec...
Definition: dynamicTerrainCommand.h:169
virtual void registerCallbacks()
Called by init to register any callbacks.
Represents a feature geometry.
Definition: featureGeometry.h:40
Definition: terrainGeometry.h:33
A locally simulated VRF object.
Definition: localObject.h:98
double myTrackSamplingDistanceSquared
Definition: dynamicTerrainVehicleTrackController.h:187