20 #include <matrix/vlVector.h>
22 #include <vlutil/vlTime.h>
28 #include <tbb/spin_mutex.h>
38 class DtThreadMessageList;
55 class DtEchelonRoleName;
72 class DtScriptedObjects;
98 class DtEnumDictionary;
106 class DtStateDataManager;
109 namespace makVrfEvents
111 class DtEventManager;
114 class DtFireInteraction;
115 class DtDataInteraction;
116 class DtCommentInteraction;
171 virtual bool createScheduler();
172 virtual bool createMessageInterface();
173 virtual bool createTDLMessageInterface();
174 virtual bool createFrameRateMonitor();
176 virtual bool createVrfSimSettingsManager();
177 virtual bool createParallelQueue();
178 virtual bool createDatabaseLogger();
195 virtual bool createAndDeliverMessage(
196 const DtSimulationAddress& recipient,
198 bool overrideTimestampOrder =
true,
199 bool sendImmediately =
false)
const;
202 virtual bool allowInfiniteObjects()
const;
213 virtual void removeTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
219 virtual void addPostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
220 virtual void removePostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
237 virtual bool canTransferObjects()
const;
240 virtual double simTime()
const;
241 virtual double dT()
const;
242 virtual double elapsedRealTime()
const;
243 virtual double absRealTime()
const;
244 virtual double approximateElapsedRealTime()
const;
245 virtual bool isPaused()
const;
246 virtual double timeMultiplier()
const;
252 virtual void setSimTime(
double d);
253 virtual void setTimeMultiplier(
double d);
256 virtual void setExerciseStartTime(
double);
257 virtual double exerciseTime()
const;
258 virtual double exerciseStartTime()
const;
269 virtual void pause();
329 virtual void sendServerMessage(
const DtString&,
int severity = DtNlWarn,
const DtSimulationAddress& addr = DtSimSendToAll);
430 virtual bool runFullyThreaded()
const;
486 virtual void setScenarioRunId(
int);
487 virtual int scenarioRunId()
const;
490 virtual void setRejectMismatchedScenarioMessages(
bool);
491 virtual bool rejectMismatchedScenarioMessages()
const;
514 virtual DtU32 scenarioCapabilities()
const;
515 virtual void setScenarioCapabilities(DtU32 v);
530 static void TickFunction(
void* userData);
535 virtual void registerInterfaceCallbacks();
539 virtual const DtSimulationAddress& messageAddress()
const;
542 static void randSeedCallback(
DtSimMessage* msg,
void* usr);
545 virtual unsigned long sequenceNumber();
549 virtual void setSequenceNumber(
unsigned long sequenceNumber);
564 virtual int vrfSessionId()
const;
567 virtual int vrfMessageVersionSupported()
const;
571 virtual void runForDuration(
double);
572 virtual double runDurationTime()
const;
575 virtual void stopSimulationDurationTimer();
578 static void runDurationCompleteCallback(
DtTimer*);
579 virtual void processRunDurationComplete();
587 virtual void setMaxTasks(
int);
593 virtual void doNotSelfReflect(
unsigned int);
594 virtual void selfReflect(
unsigned int);
597 const DtEnumDictionary* enumerationDictionary()
const;
600 virtual void clearEnumerations();
603 virtual bool initializeEnumerations();
606 virtual bool loadEnumerations(
const DtFilename&);
609 virtual DtFilename enumerationsFileDirectory()
const;
610 virtual void setEnumerationsFileDirectory(
const DtFilename& directory);
626 static void setBlockOnAsynchronousOperations(
bool shouldBlock);
627 static bool blockOnAsynchronousOperations();
629 virtual void setupMessagesToNotSelfReflect();
virtual DtSimInternalCommunicationManager * simInternalCommunicationManager() const
Definition: simManager.h:846
DtObjectConsoleManager * myObjectConsoleManager
Definition: simManager.h:683
DtTerrainProfileRequestManager * terrainProfileRequestManager()
Get/set terrain profile request manager.
Definition: simManager.h:731
Definition: simTerrainRequestManager.h:137
This class will be responsible for handling requests to return resources for a particular entity (or ...
Definition: resourceMonitor.h:60
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:659
DtSimImguiThread * mySimImguiManager
Definition: simManager.h:692
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: simManager.h:675
The DtAmmunitionManager is a clas that will maintain ammunition (that which is not published...
Definition: ammunitionManager.h:17
DtDiGuyCharacterDataManager * diGuyCharacterManager() const
Definition: simManager.h:766
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:660
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
void setTerrainProfileRequestManager(DtTerrainProfileRequestManager *)
Definition: simManager.h:746
DtVrfDatabaseLoggerInterface * myDatabaseLogger
Definition: simManager.h:688
DtVrfMessageInterface * myMessageInterface
out message interface
Definition: simManager.h:647
void setResourceMonitor(DtResourceMonitor *)
Definition: simManager.h:736
DtReaderWriter::SearchPaths myObjectNavDataPaths
Definition: simManager.h:699
Abstract interface class to the AIS data service. This service provides access to Automatic Identific...
Definition: aisDataServiceInterface.h:28
DtVrfSimSettingsManager * myVrfSimSettingsManager
Definition: simManager.h:644
Manage scripted tasks (primarily Lua tasks) known by VR-Forces.
Definition: scriptedTaskManager.h:76
virtual const DtReaderWriter::SearchPaths & objectNavDataPaths() const
Definition: simManager.h:856
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:678
DtNoArgumentCallbackList mySimulationDurationCallbackList
Definition: simManager.h:697
DtU32 myScenarioCapabilities
Definition: simManager.h:703
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:24
The manager for SimInternal messages on a single simulation engine. This class manages the passing of...
Definition: simInternalCommunicationManager.h:28
DtEnumDictionary * myEnumDictionary
Definition: simManager.h:705
The DtEngagementZonesManager will keep track of all the engagement zones and their state...
Definition: engagementZonesManager.h:20
static bool theBlockOnAsynchronousOperations
Definition: simManager.h:712
DtManagedObjectListManager * myObjectListManager
Definition: simManager.h:674
DtVrfObjectPlanAdministrator * planAdministrator() const
Definition: simManager.h:756
Definition: radarCoverageMonitor.h:30
DtVrfSimOptionsInterface * mySimOptions
Definition: simManager.h:632
DtVrfCallbackQueue * myParallelQueue
Definition: simManager.h:676
Definition: terrainProfileRequestManager.h:31
DtDetonationServiceInterface * myDetonationManager
Definition: simManager.h:657
double myDT
Definition: simManager.h:633
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
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:677
DtSimCommandDistributor * mySimCommandDistributor
Definition: simManager.h:679
virtual DtOrbatManager * orbatManager()
Definition: simManager.h:806
This class handles all requests as they pertain to viewing or modifying the ORBAT.
Definition: orbatManager.h:30
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:22
const DtVrfParameterDb * myObjectParametersDB
Definition: simManager.h:682
virtual void setObjectListManager(DtManagedObjectListManager *)
objectListManager() gives a pointer to the manager of object lists
Definition: simManager.h:811
DtEngagementZonesManager * myEngagementZonesManager
Definition: simManager.h:663
DtSimTerrainRequestManager * mySimTerrainRequestManager
Definition: simManager.h:655
The DtFireManager class exists to centralize the process of sending and receiving of fire interaction...
Definition: fireManager.h:43
The base class for database loggers. A database logger is responsible for logging database events int...
Definition: vrfDatabaseLoggerInterface.h:29
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:816
DtFrameRateMonitor * myFrameRateMonitor
Definition: simManager.h:643
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:39
DtStealthCommandsManager * myStealthCommandsManager
Definition: simManager.h:661
DtScriptedTaskManager * myScriptedTaskManager
Definition: simManager.h:668
This class represents a collection of object consoles that will be used to manage streams for individ...
Definition: objectConsoleManager.h:31
virtual void setObjectConsoleManager(DtObjectConsoleManager *)
The object console manager.
Definition: simManager.h:786
tbb::spin_mutex myMutex
Definition: simManager.h:708
DtOrbatManager * myOrbatManager
Definition: simManager.h:673
DtNoArgumentCallbackList myTickList
The simulation back-end's clock. Note that this clock is different from the clock associated with the...
Definition: simManager.h:641
double mySimTime
Definition: simManager.h:709
virtual const DtObjectConsoleManager * objectConsoleManager() const
The object console manager.
Definition: simManager.h:791
Manages loading and destruction of the geometric models for objects. Will reference the object parame...
Definition: objectGeometricModelsManager.h:34
DtScenarioExtrasMgr * myScenarioExtrasMgr
Definition: simManager.h:664
DtCommunicationManager * myCommunicationManager
Definition: simManager.h:680
Abstract interface class to the ADSB data service. This service provides access to Automatic Dependen...
Definition: adsbDataServiceInterface.h:121
The scenario event manager will keep track of all scenario event objects and their state...
Definition: scenarioEventManager.h:36
DtCommModelManager * myCommModelManager
Definition: simManager.h:654
The DtPhysicalWorld is the primary interface to and manager of all of the "physical" aspects of the s...
Definition: physicalWorld.h:112
DtSimInternalCommunicationManager * mySimInternalCommunicationManager
Definition: simManager.h:684
DtSyncMatrixManager * mySyncMatrixManager
Definition: simManager.h:685
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:65
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:54
DtNoArgumentCallbackList myPostTickList
Definition: simManager.h:642
std::atomic< int > myNextEventNumber
Definition: simManager.h:710
File: simMsg.h.
Definition: simMessage.h:35
virtual void setObjectNavDataPaths(const DtReaderWriter::SearchPaths &)
Definition: simManager.h:861
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:826
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:151
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtIntelCollectionAreaManager * myIntelCollectionAreaManager
Definition: simManager.h:671
DtScenarioEventManager * myScenarioEventManager
Definition: simManager.h:669
DtScriptedObjectsMovementManager * myScriptedObjectsMovementManager
Definition: simManager.h:672
DtAisDataServiceInterface * myAisDataManager
Definition: simManager.h:686
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
DtSimObjectManager * mySimObjectManager
Definition: simManager.h:645
void(* DtSimTickFunction)(void *userData)
Function signature for tick functions registered with the DtSimManager.
Definition: simManager.h:120
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
virtual DtVrfDatabaseLoggerInterface * databaseLogger()
The interface to the VRF database logger.
Definition: simManager.h:851
Contains the DtInterfaceMessageExecutive class declaration.
Definition: interfaceMessageExecutive.h:20
DtCommunicationManager * communicationManager() const
Communication manager accessor.
Definition: simManager.h:771
DtPhysicalWorld * myPhysicalWorld
Objects we hold pointers onto for others.
Definition: simManager.h:653
The top level IM GUI interface for a single thread of IM GUI rendering.
Definition: simImguiThread.h:20
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:841
bool myRejectMismatchedScenarioMessages
Definition: simManager.h:702
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManager.h:32
virtual const DtVrfParameterDb * objectParametersDB() const
The object parameters database.
Definition: simManager.h:781
void setPlanAdministrator(DtVrfObjectPlanAdministrator *entityManager)
Definition: simManager.h:751
DtRadarCoverageMonitor * myRadarCoverageMonitor
Definition: simManager.h:666
Responsible for maintaining and executing stealth commands. The stealth commands are of the format (i...
Definition: stealthCommandsManager.h:35
DtDiGuyCharacterDataManager * myDiGuyCharacterManager
Definition: simManager.h:650
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:247
virtual void setObjectParametersDB(const DtVrfParameterDb *)
The object parameters database.
Definition: simManager.h:776
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:137
DtAdsbDataServiceInterface * myAdsbDataManager
Definition: simManager.h:687
virtual DtObjectGeometricModelsManager * objectModelsManager()
Definition: simManager.h:831
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:698
Definition: simInterfaceContent.h:45
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: simManager.h:649
DtRadarCoverageMonitor * radarCoverageMonitor()
Get/set radarCoverage monitor.
Definition: simManager.h:726
DtVrfTDLMessageInterface * myTDLMessageInterface
Definition: simManager.h:648
DtHazardAreaManager * myHazardAreaManager
Definition: simManager.h:670
void setRadarCoverageMonitor(DtRadarCoverageMonitor *)
Definition: simManager.h:741
The global plan manager maintains the list of "Global Plans." These are plans that are not specific t...
Definition: globalPlanManager.h:53
int myScenarioRunId
Definition: simManager.h:701
DtFilename myEnumsFileDirectory
Definition: simManager.h:706
void setDiGuyCharacterManager(DtDiGuyCharacterDataManager *entityManager)
Definition: simManager.h:761
DtSimulationServices * mySimulationServices
Definition: simManager.h:690
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:23
Abstract interface class to the detonation service. This service provides information about detonatio...
Definition: detonationServiceInterface.h:34
DtResourceMonitor * myResourceMonitor
Definition: simManager.h:665
DtTerrainProfileRequestManager * myTerrainProfileRequestManager
Definition: simManager.h:667
DtResourceMonitor * resourceMonitor()
Get/set resource monitor.
Definition: simManager.h:721
DtAmmunitionManager * myAmmunitionManager
Definition: simManager.h:658
Contains the DtSimCommandDistributor class declaration.
Definition: simCommandDistributor.h:24
DtEmbeddedEntityInfoManager * myEmbeddedEntityInfoManager
Definition: simManager.h:656
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25
void(* DtRunDurationCallbackFcn)(void *userData)
Definition: simManager.h:121
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:801
DtDebugDrawManager * myDebugDrawManager
Definition: simManager.h:681
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:696
DtHostilityManager * myHostilityManager
Definition: simManager.h:662
DtScheduler * myScheduler
Objects we create.
Definition: simManager.h:636
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73