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;
92 class DtStateDataManager;
95 namespace makVrfEvents
100 class DtFireInteraction;
101 class DtDataInteraction;
102 class DtCommentInteraction;
157 virtual bool createScheduler();
158 virtual bool createMessageInterface();
159 virtual bool createTDLMessageInterface();
160 virtual bool createFrameRateMonitor();
162 virtual bool createVrfSimSettingsManager();
163 virtual bool createParallelQueue();
180 virtual bool createAndDeliverMessage(
181 const DtSimulationAddress& recipient,
183 bool overrideTimestampOrder =
true,
184 bool sendImmediately =
false)
const;
195 virtual void removeTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
201 virtual void addPostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
202 virtual void removePostTickEntry(
DtSimTickFunction tickFunction,
void* userData)
const;
219 virtual double simTime()
const;
220 virtual double dT()
const;
221 virtual double elapsedRealTime()
const;
222 virtual double absRealTime()
const;
223 virtual double approximateElapsedRealTime()
const;
224 virtual bool isPaused()
const;
225 virtual double timeMultiplier()
const;
228 virtual void setSimTime(
double d);
229 virtual void setTimeMultiplier(
double d);
232 virtual void setExerciseStartTime(
double);
233 virtual double exerciseTime()
const;
234 virtual double exerciseStartTime()
const;
245 virtual void pause();
302 virtual void sendServerMessage(
const DtString&,
int severity = DtNlWarn,
const DtSimulationAddress& addr = DtSimSendToAll);
403 virtual bool runFullyThreaded()
const;
459 virtual void setScenarioRunId(
int);
460 virtual int scenarioRunId()
const;
463 virtual void setRejectMismatchedScenarioMessages(
bool);
464 virtual bool rejectMismatchedScenarioMessages()
const;
487 virtual DtU32 scenarioCapabilities()
const;
488 virtual void setScenarioCapabilities(DtU32 v);
503 static void TickFunction(
void* userData);
508 virtual void registerInterfaceCallbacks();
512 virtual const DtSimulationAddress& messageAddress()
const;
515 static void randSeedCallback(
DtSimMessage* msg,
void* usr);
518 virtual unsigned long sequenceNumber();
522 virtual void setSequenceNumber(
unsigned long sequenceNumber);
537 virtual int vrfSessionId()
const;
540 virtual int vrfMessageVersionSupported()
const;
544 virtual void runForDuration(
double);
545 virtual double runDurationTime()
const;
548 virtual void stopSimulationDurationTimer();
551 static void runDurationCompleteCallback(
DtTimer*);
552 virtual void processRunDurationComplete();
560 virtual void setMaxTasks(
int);
566 virtual void doNotSelfReflect(
unsigned int);
567 virtual void selfReflect(
unsigned int);
573 virtual void clearEnumerations();
576 virtual bool initializeEnumerations();
579 virtual bool loadEnumerations(
const DtFilename&);
582 virtual DtFilename enumerationsFileDirectory()
const;
583 virtual void setEnumerationsFileDirectory(
const DtFilename& directory);
594 virtual void setupMessagesToNotSelfReflect();
virtual DtSimInternalCommunicationManager * simInternalCommunicationManager() const
Definition: simManager.h:805
DtObjectConsoleManager * myObjectConsoleManager
Definition: simManager.h:648
DtTerrainProfileRequestManager * terrainProfileRequestManager()
Get/set terrain profile request manager.
Definition: simManager.h:690
Definition: simTerrainRequestManager.h:132
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:624
DtObjectGeometricModelsManager * myObjectModelsManager
Definition: simManager.h:640
The DtAmmunitionManager is a clas that will maintain ammunition (that which is not published...
Definition: ammunitionManager.h:17
DtDiGuyCharacterDataManager * diGuyCharacterManager() const
Definition: simManager.h:725
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:625
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:40
void setTerrainProfileRequestManager(DtTerrainProfileRequestManager *)
Definition: simManager.h:705
DtVrfMessageInterface * myMessageInterface
out message interface
Definition: simManager.h:612
void setResourceMonitor(DtResourceMonitor *)
Definition: simManager.h:695
Abstract interface class to the AIS data service. This service provides access to Automatic Identific...
Definition: aisDataServiceInterface.h:28
DtVrfSimSettingsManager * myVrfSimSettingsManager
Definition: simManager.h:609
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:643
DtNoArgumentCallbackList mySimulationDurationCallbackList
Definition: simManager.h:659
DtU32 myScenarioCapabilities
Definition: simManager.h:664
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:666
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:639
DtVrfObjectPlanAdministrator * planAdministrator() const
Definition: simManager.h:715
Definition: radarCoverageMonitor.h:32
DtVrfSimOptionsInterface * mySimOptions
Definition: simManager.h:597
DtVrfCallbackQueue * myParallelQueue
Definition: simManager.h:641
Definition: terrainProfileRequestManager.h:31
DtDetonationServiceInterface * myDetonationManager
Definition: simManager.h:622
double myDT
Definition: simManager.h:598
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:642
DtSimCommandDistributor * mySimCommandDistributor
Definition: simManager.h:644
virtual DtOrbatManager * orbatManager()
Definition: simManager.h:765
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:647
virtual void setObjectListManager(DtManagedObjectListManager *)
objectListManager() gives a pointer to the manager of object lists
Definition: simManager.h:770
DtEngagementZonesManager * myEngagementZonesManager
Definition: simManager.h:628
DtSimTerrainRequestManager * mySimTerrainRequestManager
Definition: simManager.h:620
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:775
DtFrameRateMonitor * myFrameRateMonitor
Definition: simManager.h:608
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:626
DtScriptedTaskManager * myScriptedTaskManager
Definition: simManager.h:633
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:745
tbb::spin_mutex myMutex
Definition: simManager.h:669
DtOrbatManager * myOrbatManager
Definition: simManager.h:638
DtNoArgumentCallbackList myTickList
The simulation back-end's clock. Note that this clock is different from the clock associated with the...
Definition: simManager.h:606
double mySimTime
Definition: simManager.h:670
virtual const DtObjectConsoleManager * objectConsoleManager() const
The object console manager.
Definition: simManager.h:750
Manages loading and destruction of the geometric models for objects. Will reference the object parame...
Definition: objectGeometricModelsManager.h:30
DtScenarioExtrasMgr * myScenarioExtrasMgr
Definition: simManager.h:629
DtCommunicationManager * myCommunicationManager
Definition: simManager.h:645
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:619
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:649
DtSyncMatrixManager * mySyncMatrixManager
Definition: simManager.h:650
tbb::atomic< int > myNextEventNumber
Definition: simManager.h:671
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:52
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:51
DtNoArgumentCallbackList myPostTickList
Definition: simManager.h:607
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:785
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:636
DtScenarioEventManager * myScenarioEventManager
Definition: simManager.h:634
DtScriptedObjectsMovementManager * myScriptedObjectsMovementManager
Definition: simManager.h:637
DtAisDataServiceInterface * myAisDataManager
Definition: simManager.h:651
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
DtSimObjectManager * mySimObjectManager
Definition: simManager.h:610
void(* DtSimTickFunction)(void *userData)
Function signature for tick functions registered with the DtSimManager.
Definition: simManager.h:106
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:730
DtPhysicalWorld * myPhysicalWorld
Objects we hold pointers onto for others.
Definition: simManager.h:618
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:800
bool myRejectMismatchedScenarioMessages
Definition: simManager.h:663
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
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:740
void setPlanAdministrator(DtVrfObjectPlanAdministrator *entityManager)
Definition: simManager.h:710
DtRadarCoverageMonitor * myRadarCoverageMonitor
Definition: simManager.h:631
Responsible for maintaining and executing stealth commands. The stealth commands are of the format (i...
Definition: stealthCommandsManager.h:35
DtDiGuyCharacterDataManager * myDiGuyCharacterManager
Definition: simManager.h:615
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:226
virtual void setObjectParametersDB(const DtVrfParameterDb *)
The object parameters database.
Definition: simManager.h:735
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:123
DtAdsbDataServiceInterface * myAdsbDataManager
Definition: simManager.h:652
virtual DtObjectGeometricModelsManager * objectModelsManager()
Definition: simManager.h:790
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:660
Definition: simInterfaceContent.h:45
DtVrfObjectPlanAdministrator * myPlanAdministrator
Definition: simManager.h:614
DtRadarCoverageMonitor * radarCoverageMonitor()
Get/set radarCoverage monitor.
Definition: simManager.h:685
DtVrfTDLMessageInterface * myTDLMessageInterface
Definition: simManager.h:613
DtHazardAreaManager * myHazardAreaManager
Definition: simManager.h:635
void setRadarCoverageMonitor(DtRadarCoverageMonitor *)
Definition: simManager.h:700
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:662
DtFilename myEnumsFileDirectory
Definition: simManager.h:667
void setDiGuyCharacterManager(DtDiGuyCharacterDataManager *entityManager)
Definition: simManager.h:720
DtSimulationServices * mySimulationServices
Definition: simManager.h:654
#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:630
DtTerrainProfileRequestManager * myTerrainProfileRequestManager
Definition: simManager.h:632
DtResourceMonitor * resourceMonitor()
Get/set resource monitor.
Definition: simManager.h:680
DtAmmunitionManager * myAmmunitionManager
Definition: simManager.h:623
Contains the DtSimCommandDistributor class declaration.
Definition: simCommandDistributor.h:24
DtEmbeddedEntityInfoManager * myEmbeddedEntityInfoManager
Definition: simManager.h:621
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25
void(* DtRunDurationCallbackFcn)(void *userData)
Definition: simManager.h:107
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:760
DtDebugDrawManager * myDebugDrawManager
Definition: simManager.h:646
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:658
DtHostilityManager * myHostilityManager
Definition: simManager.h:627
DtScheduler * myScheduler
Objects we create.
Definition: simManager.h:601
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73