13 #include <vlutil/vlTime.h>
16 #include <matrix/vlVector.h>
17 #include <tbb/spin_mutex.h>
25 class DtThreadMessageList;
42 class DtEchelonRoleName;
59 class DtScriptedObjects;
90 class DtStateDataManager;
93 namespace makVrfEvents
98 class DtFireInteraction;
99 class DtDataInteraction;
100 class DtCommentInteraction;
155 virtual bool createScheduler();
156 virtual bool createMessageInterface();
157 virtual bool createTDLMessageInterface();
158 virtual bool createFrameRateMonitor();
160 virtual bool createVrfSimSettingsManager();
161 virtual bool createParallelQueue();
166 virtual bool beginFrame();
178 virtual bool createAndDeliverMessage(
179 const DtSimulationAddress& recipient,
181 bool overrideTimestampOrder =
true)
const;
192 virtual void removeTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
198 virtual void addPostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
199 virtual void removePostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
216 virtual double simTime()
const;
217 virtual double dT()
const;
218 virtual double elapsedRealTime()
const;
219 virtual double absRealTime()
const;
220 virtual double approximateElapsedRealTime()
const;
221 virtual bool isPaused()
const;
222 virtual double timeMultiplier()
const;
225 virtual void setSimTime(
double d);
226 virtual void setTimeMultiplier(
double d);
229 virtual void setExerciseStartTime(
double);
230 virtual double exerciseTime()
const;
231 virtual double exerciseStartTime()
const;
242 virtual void pause();
397 virtual bool runFullyThreaded()
const;
439 virtual void setScenarioRunId(
int);
440 virtual int scenarioRunId()
const;
443 virtual void setRejectMismatchedScenarioMessages(
bool);
444 virtual bool rejectMismatchedScenarioMessages()
const;
467 virtual DtU32 scenarioCapabilities()
const;
468 virtual void setScenarioCapabilities(DtU32 v);
483 static void TickFunction(
void* userData);
488 virtual void registerInterfaceCallbacks();
492 virtual const DtSimulationAddress& messageAddress()
const;
495 static void randSeedCallback(
DtSimMessage* msg,
void* usr);
498 virtual unsigned long sequenceNumber();
502 virtual void setSequenceNumber(
unsigned long sequenceNumber);
517 virtual int vrfSessionId()
const;
520 virtual int vrfMessageVersionSupported()
const;
524 virtual void runForDuration(
double);
525 virtual double runDurationTime()
const;
528 virtual void stopSimulationDurationTimer();
531 static void runDurationCompleteCallback(
DtTimer*);
532 virtual void processRunDurationComplete();
540 virtual void setMaxTasks(
int);
546 virtual void doNotSelfReflect(
unsigned int);
547 virtual void selfReflect(
unsigned int);
553 virtual DtFilename enumerationsFileDirectory()
const;
554 virtual void setEnumerationsFileDirectory(
const DtFilename& directory);
565 virtual void setupMessagesToNotSelfReflect();
virtual DtSimInternalCommunicationManager * simInternalCommunicationManager() const
Definition: simManager.h:774
DtObjectConsoleManager * myObjectConsoleManager
Definition: simManager.h:619
DtTerrainProfileRequestManager * terrainProfileRequestManager()
Get/set terrain profile request manager.
Definition: simManager.h:659
Definition: simTerrainRequestManager.h:34
This class will be responsible for handling requests to return resources for a particular entity (or ...
Definition: resourceMonitor.h:54
Instances of class DtScheduler maintain a list of DtTimer objects. It ticks all timer objects each ti...
Definition: scheduler.h:22
DtFireManager * myFireManager
Definition: simManager.h:595
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: simManager.h:611
The DtAmmunitionManager is a clas that will maintain ammunition (that which is not published...
Definition: ammunitionManager.h:17
DtDiGuyCharacterDataManager * diGuyCharacterManager() const
Definition: simManager.h:694
The DtVrfTDLMessageInterface is a transporter for sending TDL messages as data interactions using a V...
Definition: vrfTDLMessageInterface.h:37
Instances of DtTimer are used to maintain the information needed to represent some kind of scheduled ...
Definition: timer.h:38
DtGlobalPlanManager * myGlobalPlanManager
Definition: simManager.h:596
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:38
void setTerrainProfileRequestManager(DtTerrainProfileRequestManager *)
Definition: simManager.h:674
DtVrfMessageInterface * myMessageInterface
out message interface
Definition: simManager.h:583
void setResourceMonitor(DtResourceMonitor *)
Definition: simManager.h:664
DtVrfSimSettingsManager * myVrfSimSettingsManager
Definition: simManager.h:580
Manage scripted tasks (primarily Lua tasks) known by VR-Forces.
Definition: scriptedTaskManager.h:76
Holds all radio networks (comm models, implemented by DtCommModel) for the current exercise...
Definition: commModelManager.h:26
The DtEventManager handles the sending and receipt of system events (fire, detonate, command, etc). It provides a thread-safe way for the sim engine to send and receive such events, between both components within this sim engine and other remote applications.
Definition: eventManager.h:33
DtSpawnSinkManager * mySpawnSinkManager
Definition: simManager.h:614
DtNoArgumentCallbackList mySimulationDurationCallbackList
Definition: simManager.h:628
DtU32 myScenarioCapabilities
Definition: simManager.h:633
Options for the configuring the sim.
Definition: vrfSimOptionsInterface.h:20
Manages all of the spawn points, sink points, and spawn templates in the current scenario.
Definition: spawnSinkManager.h:23
The manager for SimInternal messages on a single simulation engine. This class manages the passing of...
Definition: simInternalCommunicationManager.h:27
DtEnumDictionary * myEnumDictionary
Definition: simManager.h:635
Maintains a list of enumerations read in from files. The dictionary supports two different types of e...
Definition: enumDictionary.h:98
The DtEngagementZonesManager will keep track of all the engagement zones and their state...
Definition: engagementZonesManager.h:20
DtManagedObjectListManager * myObjectListManager
Definition: simManager.h:610
DtVrfObjectPlanAdministrator * planAdministrator() const
Definition: simManager.h:684
Definition: radarCoverageMonitor.h:32
DtVrfSimOptionsInterface * mySimOptions
Definition: simManager.h:568
DtVrfCallbackQueue * myParallelQueue
Definition: simManager.h:612
Definition: terrainProfileRequestManager.h:31
DtDetonationServiceInterface * myDetonationManager
Definition: simManager.h:593
double myDT
Definition: simManager.h:569
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
DtSimInterfaceMessage is used to send a message to the front end or the back end. It derives from a s...
Definition: simInterfaceMessage.h:23
DtVrfNavAreaManager * myVrfNavAreaManager
Definition: simManager.h:613
DtSimCommandDistributor * mySimCommandDistributor
Definition: simManager.h:615
virtual DtOrbatManager * orbatManager()
Definition: simManager.h:734
This class handles all requests as they pertain to viewing or modifying the ORBAT.
Definition: orbatManager.h:28
The DtHazardAreaManager will keep track of all hazard area objects and their state. Hazard areas are predefined as part of this class. Call the add/remove methods to add or remove areas to watch.
Definition: hazardAreaManager.h:21
const DtVrfParameterDb * myObjectParametersDB
Definition: simManager.h:618
virtual void setObjectListManager(DtManagedObjectListManager *)
objectListManager() gives a pointer to the manager of object lists
Definition: simManager.h:739
DtEngagementZonesManager * myEngagementZonesManager
Definition: simManager.h:599
DtSimTerrainRequestManager * mySimTerrainRequestManager
Definition: simManager.h:591
The DtFireManager class exists to centralize the process of sending and receiving of fire interaction...
Definition: fireManager.h:42
The synchronization matrix manager maintains the list of synchronization matrices. These are locally simulated objects that manage a list of phases where during each phase, scenario entities can be assigned with plans.
Definition: syncMatrixManager.h:40
virtual DtManagedObjectListManager * objectListManager() const
Definition: simManager.h:744
DtFrameRateMonitor * myFrameRateMonitor
Definition: simManager.h:579
This class keeps track of which forces are hostile to which other forces in the simulation. It maintains state for each force type, and which other forces types are considered hostile by that force. It can be queried for this data any time during the simulation. Supports force enumerations from 0 to 255.
Definition: hostilityManager.h:34
Debug Draw Manager (back end) that receive (DIS/HLA) messages from a VRF GUI and then connect to the ...
Definition: debugDrawManager.h:37
DtStealthCommandsManager * myStealthCommandsManager
Definition: simManager.h:597
DtScriptedTaskManager * myScriptedTaskManager
Definition: simManager.h:604
This class represents a collection of object consoles that will be used to manage streams for individ...
Definition: objectConsoleManager.h:29
virtual void setObjectConsoleManager(DtObjectConsoleManager *)
The object console manager.
Definition: simManager.h:714
tbb::spin_mutex myMutex
Definition: simManager.h:638
DtOrbatManager * myOrbatManager
Definition: simManager.h:609
DtNoArgumentCallbackList myTickList
The simulation back-end's clock. Note that this clock is different from the clock associated with the...
Definition: simManager.h:577
double mySimTime
Definition: simManager.h:639
virtual const DtObjectConsoleManager * objectConsoleManager() const
The object console manager.
Definition: simManager.h:719
Manages loading and destruction of the geometric models for objects. Will reference the object parame...
Definition: objectGeometricModelsManager.h:29
DtScenarioExtrasMgr * myScenarioExtrasMgr
Definition: simManager.h:600
DtCommunicationManager * myCommunicationManager
Definition: simManager.h:616
The scenario event manager will keep track of all scenario event objects and their state...
Definition: scenarioEventManager.h:33
DtCommModelManager * myCommModelManager
Definition: simManager.h:590
The DtPhysicalWorld is the primary interface to and manager of all of the "physical" aspects of the s...
Definition: physicalWorld.h:102
DtSimInternalCommunicationManager * mySimInternalCommunicationManager
Definition: simManager.h:620
DtSyncMatrixManager * mySyncMatrixManager
Definition: simManager.h:621
tbb::atomic< int > myNextEventNumber
Definition: simManager.h:640
DtEmbeddedEntityInfoManager is the central point for information about embedded entities and their ca...
Definition: embeddedEntityInfoManager.h:36
The DtVrfNavAreaManager manages all of the nav areas currently created in the sim.
Definition: vrfNavAreaManager.h:50
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:51
DtNoArgumentCallbackList myPostTickList
Definition: simManager.h:578
File: simMsg.h.
Definition: simMessage.h:35
Contains data describing the available attributes and animations for each DI-Guy character type...
Definition: diGuyCharacterDataManager.h:33
virtual void setObjectModelsManager(DtObjectGeometricModelsManager *)
Definition: simManager.h:754
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don't fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:152
DtIntelCollectionAreaManager * myIntelCollectionAreaManager
Definition: simManager.h:607
DtScenarioEventManager * myScenarioEventManager
Definition: simManager.h:605
DtScriptedObjectsMovementManager * myScriptedObjectsMovementManager
Definition: simManager.h:608
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
DtSimObjectManager * mySimObjectManager
Definition: simManager.h:581
void(* DtSimTickFunction)(void *userData)
Function signature for tick functions registered with the DtSimManager.
Definition: simManager.h:104
DtVrfSimSettingsManager is a subclass of DtVrfSettingsManager. Please see the documentation on that c...
Definition: vrfSimSettingsManager.h:33
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Contains the DtInterfaceMessageExecutive class declaration.
Definition: interfaceMessageExecutive.h:20
DtCommunicationManager * communicationManager() const
Communication manager accessor.
Definition: simManager.h:699
DtPhysicalWorld * myPhysicalWorld
Objects we hold pointers onto for others.
Definition: simManager.h:589
The intel collection area manager will keep track of all Intel Collection area objects and their stat...
Definition: intelCollectionAreaManager.h:20
The DtVrfObjectPlanAdministrator performs plan-related tasks that must be done in a centralized manne...
Definition: vrfObjectPlanAdministrator.h:44
virtual void setSimInternalCommunicationManager(DtSimInternalCommunicationManager *)
simInternalCommunicationManager() gives pointer to the internal communication manager ...
Definition: simManager.h:769
bool myRejectMismatchedScenarioMessages
Definition: simManager.h:632
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManager.h:42
virtual const DtVrfParameterDb * objectParametersDB() const
The object parameters database.
Definition: simManager.h:709
void setPlanAdministrator(DtVrfObjectPlanAdministrator *entityManager)
Definition: simManager.h:679
DtRadarCoverageMonitor * myRadarCoverageMonitor
Definition: simManager.h:602
Responsible for maintaining and executing stealth commands. The stealth commands are of the format (i...
Definition: stealthCommandsManager.h:35
DtDiGuyCharacterDataManager * myDiGuyCharacterManager
Definition: simManager.h:586
Note that this class is not thread safe. Only call from the main thread.
Definition: frameRateMonitor.h:29
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
double simTimeScale() const
Definition: simManager.h:223
virtual void setObjectParametersDB(const DtVrfParameterDb *)
The object parameters database.
Definition: simManager.h:704
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:121
virtual DtObjectGeometricModelsManager * objectModelsManager()
Definition: simManager.h:759
Service which provides managed lists of simulation objects that are filtered based on a given predica...
Definition: managedObjectListManager.h:22
double myRunDurationTime
Definition: simManager.h:629
Definition: simInterfaceContent.h:45
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: simManager.h:585
DtRadarCoverageMonitor * radarCoverageMonitor()
Get/set radarCoverage monitor.
Definition: simManager.h:654
DtVrfTDLMessageInterface * myTDLMessageInterface
Definition: simManager.h:584
DtHazardAreaManager * myHazardAreaManager
Definition: simManager.h:606
void setRadarCoverageMonitor(DtRadarCoverageMonitor *)
Definition: simManager.h:669
The global plan manager maintains the list of "Global Plans." These are plans that are not specific t...
Definition: globalPlanManager.h:45
int myScenarioRunId
Definition: simManager.h:631
DtFilename myEnumsFileDirectory
Definition: simManager.h:636
void setDiGuyCharacterManager(DtDiGuyCharacterDataManager *entityManager)
Definition: simManager.h:689
DtSimulationServices * mySimulationServices
Definition: simManager.h:623
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:22
Abstract interface class to the detonation service. This service provides information about detonatio...
Definition: detonationServiceInterface.h:34
DtResourceMonitor * myResourceMonitor
Definition: simManager.h:601
DtTerrainProfileRequestManager * myTerrainProfileRequestManager
Definition: simManager.h:603
DtResourceMonitor * resourceMonitor()
Get/set resource monitor.
Definition: simManager.h:649
DtAmmunitionManager * myAmmunitionManager
Definition: simManager.h:594
Contains the DtSimCommandDistributor class declaration.
Definition: simCommandDistributor.h:24
DtEmbeddedEntityInfoManager * myEmbeddedEntityInfoManager
Definition: simManager.h:592
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25
void(* DtRunDurationCallbackFcn)(void *userData)
Definition: simManager.h:105
The scripted objects movement manager contains a list of all scripted movement objects that can be us...
Definition: scriptedObjectsMovementManager.h:22
DtCallbackList< DtSimMessage * >::DtCallbackFunctionType DtMessageCallbackFcn
Message callback function signature.
Definition: messageExecutive.h:21
virtual void setOrbatManager(DtOrbatManager *)
orbatManager() provides access to all the orbat items in the system
Definition: simManager.h:729
DtDebugDrawManager * myDebugDrawManager
Definition: simManager.h:617
Definition: vrfMessageInterface.h:40
DtTimer * mySimulationDurationTimer
If non-null this scenario is only scheduled to run for the given amount of time delta from the curren...
Definition: simManager.h:627
DtHostilityManager * myHostilityManager
Definition: simManager.h:598
DtScheduler * myScheduler
Objects we create.
Definition: simManager.h:572
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71