VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions
DtSimulationServices Class Reference

Central access point of all non-object-specific the services and managers that are available for use by various pieces of code executing simulation logic. These services are thread safe, and can be called from within DtSimComponent subclasses without any locking.

Note
Many of these managers were provided directly by DtSimManager in VRF 4.x and earlier.
Related Examples

Public Types

typedef void(* SimTickFunction )(void *userData)
 

Public Member Functions

 DtSimulationServices (const DtSimulationServicesInitializer &initializer)
 
virtual ~DtSimulationServices ()
 
void installDetonationService (DtDetonationServiceInterface *service)
 
void installCreateObjectService (DtCreateObjectServiceInterface *service)
 
DtCreateObjectServiceInterfacecreateObjectService () const
 
void installScenarioService (DtScenarioServiceInterface *service)
 
void installInfluenceDispatcherService (DtInfluenceDispatcherServiceInterface *service)
 
DtScenarioServiceInterfacescenarioService () const
 
DtManagedObjectListManagerobjectListManager () const
 
DtSimInternalCommunicationManagersimInternalCommunicationManager () const
 
const DtVrfParameterDbparameterDatabase () const
 
DtDiGuyCharacterDataManagerdiGuyCharacterManager () const
 
DtVrfObjectPlanAdministratorplanAdministrator () const
 
makVrfEvents::DtEventManagereventManager () const
 
void addEvent (const makVrfEvents::DtEvent &)
 
DtInterfaceMessageExecutivemessageExecutive ()
 
DtSchedulerscheduler ()
 
const DtEnumDictionaryenumerationDictionary () const
 
DtVrfCallbackQueueparallelQueue ()
 
DtString nextEventId (const DtString &entityId=DtString::nullString())
 
DtVrfSimSettingsManagervrfSimSettingsManager () const
 
DtResourceMonitorresourceMonitor ()
 
bool rejectMessage (const DtVrfObjectMessage *obj)
 
const DtVrfSimOptionsInterfacesimOptions () const
 
const DtHazardAreaManagerhazardAreaManager () const
 
DtStealthCommandsManagerstealthCommandsManager () const
 
void installAisDataService (DtAisDataServiceInterface *service)
 
void installSimOperationsInProgressManager (DtSimOperationsInProgressInterface *service)
 
void installAdsbDataService (DtAdsbDataServiceInterface *service)
 
DtVrfDatabaseLoggerInterfacedatabaseLogger ()
 
const DtSimulationAddress & messageAddress () const
 
int vrfSessionId () const
 
int vrfMessageVersionSupported () const
 
double exerciseTime () const
 
int scenarioRunId () const
 
double exerciseStartTime () const
 
bool runFullyThreaded () const
 
void addMessageCallback (int type, DtMessageCallbackFcn fcn, void *usrData)
 
void removeMessageCallback (int type, DtMessageCallbackFcn fcn, void *usrData)
 
bool createAndDeliverMessage (const DtSimulationAddress &recipient, const DtSimInterfaceContent &content, bool overrideTimestampOrder=true, bool sendImmediately=false) const
 
void receiveMessage (const DtSimInterfaceMessage &)
 
DtU32 scenarioCapabilities () const
 
const DtSimulationAddress & simulationAddress () const
 
virtual void sendServerMessage (const DtString &, int severity=DtNlWarn, const DtSimulationAddress &addr=DtSimSendToAll)
 
DtDetonationServiceInterfacedetonationService ()
 
const
DtDetonationServiceInterface
detonationService () const
 
DtScriptedTaskManagerscriptedTaskManager ()
 
const DtScriptedTaskManagerscriptedTaskManager () const
 
DtOrbatManagerorbatManager ()
 
const DtOrbatManagerorbatManager () const
 
DtPhysicalWorldphysicalWorld ()
 
const DtPhysicalWorldphysicalWorld () const
 
DtVrfMessageInterfacemessageInterface () const
 
DtVrfTDLMessageInterfacetdlMessageInterface () const
 
DtObjectGeometricModelsManagerobjectModelsManager ()
 
const
DtObjectGeometricModelsManager
objectModelsManager () const
 
const DtSimObjectManagersimObjectManager () const
 
DtSimObjectManagersimObjectManager ()
 
DtScenarioEventManagerscenarioEventManager ()
 
const DtScenarioEventManagerscenarioEventManager () const
 
makVrf::DtStateDataManagerstateDataManager ()
 
const makVrf::DtStateDataManagerstateDataManager () const
 
DtScriptedObjectsMovementManagerscriptedObjectsMovementManager ()
 
const
DtScriptedObjectsMovementManager
scriptedObjectsMovementManager () const
 
DtVrfNavAreaManagervrfNavAreaManager ()
 
const DtVrfNavAreaManagervrfNavAreaManager () const
 
const DtHostilityManagerhostilityManager () const
 
DtHostilityManagerhostilityManager ()
 
DtSpawnSinkManagerspawnSinkManager ()
 
const DtSpawnSinkManagerspawnSinkManager () const
 
const DtSimCommandDistributorsimCommandDistributor () const
 
DtSimCommandDistributorsimCommandDistributor ()
 
const DtObjectConsoleManagerobjectConsoleManager () const
 
DtObjectConsoleManagerobjectConsoleManager ()
 
const DtEngagementZonesManagerengagementZonesManager () const
 
DtEngagementZonesManagerengagementZonesManager ()
 
DtFireManagerfireManager ()
 
const DtFireManagerfireManager () const
 
DtScenarioExtrasMgrscenarioExtrasMgr ()
 
const DtScenarioExtrasMgrscenarioExtrasMgr () const
 
DtIntelCollectionAreaManagerintelCollectionAreaManager ()
 
const
DtIntelCollectionAreaManager
intelCollectionAreaManager () const
 
DtEmbeddedEntityInfoManagerembeddedEntityInfoManager ()
 
const DtEmbeddedEntityInfoManagerembeddedEntityInfoManager () const
 
DtCommModelManagercommModelManager ()
 
const DtCommModelManagercommModelManager () const
 
DtCommunicationManagercommunicationManager ()
 
const DtCommunicationManagercommunicationManager () const
 
const DtSyncMatrixManagersyncMatrixManager () const
 
DtSyncMatrixManagersyncMatrixManager ()
 
const DtAisDataServiceInterfaceaisDataService () const
 
DtAisDataServiceInterfaceaisDataService ()
 
const
DtSimOperationsInProgressInterface
simOperationsInProgress () const
 
DtSimOperationsInProgressInterfacesimOperationsInProgress ()
 
const DtAdsbDataServiceInterfaceadsbDataService () const
 
DtAdsbDataServiceInterfaceadsbDataService ()
 
const
DtInfluenceDispatcherServiceInterface
influenceDispatcher () const
 
DtInfluenceDispatcherServiceInterfaceinfluenceDispatcher ()
 
Time Functions

These functions provide information on the simulation time and elapsed time of the current simulation.

double runDurationTime () const
 
void runForDuration (double)
 
void stopSimulationDurationTimer ()
 
double simTime () const
 
double dT () const
 
double elapsedRealTime () const
 
double absRealTime () const
 
double approximateElapsedRealTime () const
 
bool isPaused () const
 
double timeMultiplier () const
 
double simTimeScale () const
 
Tick Callback Registration

These functions allow classes to register functions to be called during or after each tick of the sim engine.

virtual void addPostTickEntry (SimTickFunction tickFunction, void *userData) const
 
virtual void removePostTickEntry (SimTickFunction tickFunction, void *userData) const
 
virtual void addTickEntry (SimTickFunction tickFunction, void *userData) const
 
virtual void removeTickEntry (SimTickFunction tickFunction, void *userData) const
 
VRF4API_METHOD const
DtSimObjectManager
vrfObjectManager () const
 
VRF4API_METHOD const
DtSimulationServices
exerciseClock () const
 
VRF4API_METHOD const
DtDetonationServiceInterface
detonationManager () const
 
VRF4API_METHOD
DtDetonationServiceInterface
detonationManager ()
 

Static Public Member Functions

static DtSimulationServicesinstance ()
 

Protected Attributes

DtDetonationServiceInterfacemyDetonationServiceInterface
 
DtCreateObjectServiceInterfacemyCreateObjectServiceinterface
 
DtScenarioServiceInterfacemyScenarioServiceInterface
 
DtAisDataServiceInterfacemyAisDataServiceInterface
 
DtAdsbDataServiceInterfacemyAdsbDataServiceInterface
 
DtSimManagermySimManager
 
DtInfluenceDispatcherServiceInterfacemyInfluenceDispatcherServiceInterface
 
DtSimOperationsInProgressInterfacemySimOperationsInProgressInterface = nullptr
 

Private Member Functions

 DtSimulationServices (const DtSimulationServices &)
 
DtSimulationServicesoperator= (const DtSimulationServices &)
 

Member Typedef Documentation

typedef void(* DtSimulationServices::SimTickFunction)(void *userData)

Constructor & Destructor Documentation

DtSimulationServices::DtSimulationServices ( const DtSimulationServicesInitializer initializer)
virtual DtSimulationServices::~DtSimulationServices ( )
virtual
DtSimulationServices::DtSimulationServices ( const DtSimulationServices )
private

Not implemented.

Member Function Documentation

void DtSimulationServices::installDetonationService ( DtDetonationServiceInterface service)
DtDetonationServiceInterface* DtSimulationServices::detonationService ( )

Service for receiving information about detonations, and for creating new detonations.

const DtDetonationServiceInterface* DtSimulationServices::detonationService ( ) const

Service for receiving information about detonations, and for creating new detonations.

void DtSimulationServices::installCreateObjectService ( DtCreateObjectServiceInterface service)
DtCreateObjectServiceInterface* DtSimulationServices::createObjectService ( ) const

Service for creating, deleting, and changing organization hierarchy of simulation objects.

void DtSimulationServices::installScenarioService ( DtScenarioServiceInterface service)
void DtSimulationServices::installInfluenceDispatcherService ( DtInfluenceDispatcherServiceInterface service)
DtScenarioServiceInterface* DtSimulationServices::scenarioService ( ) const

Service for some scenario-wide properties.

DtScriptedTaskManager* DtSimulationServices::scriptedTaskManager ( )

Service for accessing scripted (lua) tasks.

const DtScriptedTaskManager* DtSimulationServices::scriptedTaskManager ( ) const

Service for accessing scripted (lua) tasks.

DtManagedObjectListManager* DtSimulationServices::objectListManager ( ) const

Service for accessing DtManagedObjectList instances, which are maintained over time.

DtSimInternalCommunicationManager* DtSimulationServices::simInternalCommunicationManager ( ) const

Service for message passing between VRF entities. This service is intended for messages that are simulation-specific, meaning that in the real world, they would not be messages.

DtOrbatManager* DtSimulationServices::orbatManager ( )

Service for inspecting and altering the ORBAT.

const DtOrbatManager* DtSimulationServices::orbatManager ( ) const

Service for inspecting and altering the ORBAT.

DtPhysicalWorld* DtSimulationServices::physicalWorld ( )

Service for retrieving information about the physical environment for the simulation, including terrain information.

const DtPhysicalWorld* DtSimulationServices::physicalWorld ( ) const

Service for retrieving information about the physical environment for the simulation, including terrain information.

DtVrfMessageInterface* DtSimulationServices::messageInterface ( ) const

Service that provides access to the sending/receiving of messages on the network.

DtVrfTDLMessageInterface* DtSimulationServices::tdlMessageInterface ( ) const

Service that provides access to the sending/receiving of messages on the network.

const DtVrfParameterDb* DtSimulationServices::parameterDatabase ( ) const

Service that provides all the parameters from the Simulation Model Set for configured object types.

DtObjectGeometricModelsManager* DtSimulationServices::objectModelsManager ( )

Service that provides access to 3D geometric models of objects, if configured in the SMS.

const DtObjectGeometricModelsManager* DtSimulationServices::objectModelsManager ( ) const

Service that provides access to 3D geometric models of objects, if configured in the SMS.

const DtSimObjectManager* DtSimulationServices::simObjectManager ( ) const

Service that provides read-only access to all objects in the simulation including local, remove, VRF simulated, and non-VRF simulated.

DtSimObjectManager* DtSimulationServices::simObjectManager ( )

Service that provides read-only access to all objects in the simulation including local, remove, VRF simulated, and non-VRF simulated.

DtDiGuyCharacterDataManager* DtSimulationServices::diGuyCharacterManager ( ) const

Service for accessing information on DI-Guy animation configurations.

DtVrfObjectPlanAdministrator* DtSimulationServices::planAdministrator ( ) const

Access to some centralized plan system calls.

makVrfEvents::DtEventManager* DtSimulationServices::eventManager ( ) const

Service for posting simulation events, and receiving notification on events.

void DtSimulationServices::addEvent ( const makVrfEvents::DtEvent )

Posts a new event to the simulation.

DtInterfaceMessageExecutive* DtSimulationServices::messageExecutive ( )

Service for registering callback for messages from VRF GUI and other sources.

DtScenarioEventManager* DtSimulationServices::scenarioEventManager ( )

Service providing access to Scenario Events and their state.

const DtScenarioEventManager* DtSimulationServices::scenarioEventManager ( ) const

Service providing access to Scenario Events and their state.

makVrf::DtStateDataManager* DtSimulationServices::stateDataManager ( )

Direct access to the DtStateData system in VRF.

Note
Typically, this data is accessed via the DtSimObject instances in the DtSimObjectManager instead.
const makVrf::DtStateDataManager* DtSimulationServices::stateDataManager ( ) const

Direct access to the DtStateData system in VRF.

Note
Typically, this data is accessed via the DtSimObject instances in the DtSimObjectManager instead.
DtScheduler* DtSimulationServices::scheduler ( )

Service for scheduling callback at a particular simulation time in the future.

const DtEnumDictionary* DtSimulationServices::enumerationDictionary ( ) const

Returns a pointer to the enumerations dictionary.

DtScriptedObjectsMovementManager* DtSimulationServices::scriptedObjectsMovementManager ( )

Service providing data for the Scripted Movement (or Animated Movement) system in VRF, including access to the animation data.

const DtScriptedObjectsMovementManager* DtSimulationServices::scriptedObjectsMovementManager ( ) const

Service providing data for the Scripted Movement (or Animated Movement) system in VRF, including access to the animation data.

DtVrfNavAreaManager* DtSimulationServices::vrfNavAreaManager ( )

Service providing access to the navigation mesh system for path planning.

const DtVrfNavAreaManager* DtSimulationServices::vrfNavAreaManager ( ) const

Service providing access to the navigation mesh system for path planning.

const DtHostilityManager* DtSimulationServices::hostilityManager ( ) const

Service providing access to the hostility relationships between force types.

DtHostilityManager* DtSimulationServices::hostilityManager ( )

Service providing access to the hostility relationships between force types.

DtSpawnSinkManager* DtSimulationServices::spawnSinkManager ( )

Service for spawn and sink point data.

const DtSpawnSinkManager* DtSimulationServices::spawnSinkManager ( ) const

Service for spawn and sink point data.

const DtSimCommandDistributor* DtSimulationServices::simCommandDistributor ( ) const

Service for registering for DtSimCommand instances.

DtSimCommandDistributor* DtSimulationServices::simCommandDistributor ( )

Service for registering for DtSimCommand instances.

const DtObjectConsoleManager* DtSimulationServices::objectConsoleManager ( ) const

Service for object consoles.

DtObjectConsoleManager* DtSimulationServices::objectConsoleManager ( )

Service for object consoles.

const DtEngagementZonesManager* DtSimulationServices::engagementZonesManager ( ) const

Service for engagement zones.

DtEngagementZonesManager* DtSimulationServices::engagementZonesManager ( )

Service for engagement zones.

DtVrfCallbackQueue* DtSimulationServices::parallelQueue ( )

Access to the parallel queue used for threading the object tick of VRF Sim, as well as other key aspects of the simulation engine.

DtFireManager* DtSimulationServices::fireManager ( )

Service for registering interest in fire events.

const DtFireManager* DtSimulationServices::fireManager ( ) const

Service for registering interest in fire events.

DtString DtSimulationServices::nextEventId ( const DtString entityId = DtString::nullString())
Returns
The next unused event ID.
DtVrfSimSettingsManager* DtSimulationServices::vrfSimSettingsManager ( ) const

Access to simulation engine wide settings.

DtScenarioExtrasMgr* DtSimulationServices::scenarioExtrasMgr ( )

Access to the DtRwScenarioExtras.

const DtScenarioExtrasMgr* DtSimulationServices::scenarioExtrasMgr ( ) const

Access to the DtRwScenarioExtras.

DtIntelCollectionAreaManager* DtSimulationServices::intelCollectionAreaManager ( )

Access sensor modification factors that come from intel collection areas.

const DtIntelCollectionAreaManager* DtSimulationServices::intelCollectionAreaManager ( ) const

Access sensor modification factors that come from intel collection areas.

DtResourceMonitor* DtSimulationServices::resourceMonitor ( )

The system for sending resource updates to the GUI and other network systems.

bool DtSimulationServices::rejectMessage ( const DtVrfObjectMessage obj)

Test if a DtVrfObjectMessage should be rejected, in case it came from a different scenario run ID.

DtEmbeddedEntityInfoManager* DtSimulationServices::embeddedEntityInfoManager ( )

Information on embedded entities.

const DtEmbeddedEntityInfoManager* DtSimulationServices::embeddedEntityInfoManager ( ) const

Information on embedded entities.

DtCommModelManager* DtSimulationServices::commModelManager ( )

Access to comm model system for communication between entities by simulating real-world messages.

const DtCommModelManager* DtSimulationServices::commModelManager ( ) const

Access to comm model system for communication between entities by simulating real-world messages.

DtCommunicationManager* DtSimulationServices::communicationManager ( )

Access to the network connection.

const DtCommunicationManager* DtSimulationServices::communicationManager ( ) const

Access to the network connection.

const DtVrfSimOptionsInterface* DtSimulationServices::simOptions ( ) const

Provides access to VRF Sim configuration options (from command line and vrfSim.mtl file)

const DtHazardAreaManager* DtSimulationServices::hazardAreaManager ( ) const

Access to effects from hazard areas.

DtStealthCommandsManager* DtSimulationServices::stealthCommandsManager ( ) const

Service for sending view controls to potential GUI systems.

const DtSyncMatrixManager* DtSimulationServices::syncMatrixManager ( ) const

Access to the synchronization matrix system.

DtSyncMatrixManager* DtSimulationServices::syncMatrixManager ( )

Access to the synchronization matrix system.

void DtSimulationServices::installAisDataService ( DtAisDataServiceInterface service)
const DtAisDataServiceInterface* DtSimulationServices::aisDataService ( ) const

Service for receiving loading AIS data for clutter ship entities.

DtAisDataServiceInterface* DtSimulationServices::aisDataService ( )

Service for receiving loading AIS data for clutter ship entities.

void DtSimulationServices::installSimOperationsInProgressManager ( DtSimOperationsInProgressInterface service)
const DtSimOperationsInProgressInterface* DtSimulationServices::simOperationsInProgress ( ) const

Service for managing sim operations in progress.

DtSimOperationsInProgressInterface* DtSimulationServices::simOperationsInProgress ( )

Service for managing sim operations in progress.

void DtSimulationServices::installAdsbDataService ( DtAdsbDataServiceInterface service)
const DtAdsbDataServiceInterface* DtSimulationServices::adsbDataService ( ) const

Service for receiving loading ADSB data for clutter aircraft entities.

DtAdsbDataServiceInterface* DtSimulationServices::adsbDataService ( )

Service for receiving loading ADSB data for clutter aircraft entities.

const DtInfluenceDispatcherServiceInterface* DtSimulationServices::influenceDispatcher ( ) const

Access to the influence dispatcher service.

DtInfluenceDispatcherServiceInterface* DtSimulationServices::influenceDispatcher ( )

Access to the influence dispatcher service.

DtVrfDatabaseLoggerInterface* DtSimulationServices::databaseLogger ( )

Service providing access to the Database Logger. The database logger provides a means of logging important events to a database for later analysis.

const DtSimulationAddress& DtSimulationServices::messageAddress ( ) const

This is the address that should be used as the sender for all messages originating from the backend.

int DtSimulationServices::vrfSessionId ( ) const

Session ID of this VRF Sim.

int DtSimulationServices::vrfMessageVersionSupported ( ) const

Message version of this VRF Sim.

double DtSimulationServices::runDurationTime ( ) const

Current simulation time.

void DtSimulationServices::runForDuration ( double  )

Current simulation time.

void DtSimulationServices::stopSimulationDurationTimer ( )

Current simulation time.

double DtSimulationServices::simTime ( ) const

Current simulation time.

double DtSimulationServices::dT ( ) const

Elapsed time for the current frame.

double DtSimulationServices::elapsedRealTime ( ) const

Current simulation time.

double DtSimulationServices::absRealTime ( ) const

Current simulation time.

double DtSimulationServices::approximateElapsedRealTime ( ) const

Current simulation time.

bool DtSimulationServices::isPaused ( ) const
Returns
True if simulation is currently paused.
double DtSimulationServices::timeMultiplier ( ) const
Returns
The current time multiplier.
double DtSimulationServices::simTimeScale ( ) const

Current simulation time.

double DtSimulationServices::exerciseTime ( ) const
int DtSimulationServices::scenarioRunId ( ) const
double DtSimulationServices::exerciseStartTime ( ) const
bool DtSimulationServices::runFullyThreaded ( ) const
Returns
True if VRF is running in threaded mode (which is the default).
void DtSimulationServices::addMessageCallback ( int  type,
DtMessageCallbackFcn  fcn,
void *  usrData 
)
void DtSimulationServices::removeMessageCallback ( int  type,
DtMessageCallbackFcn  fcn,
void *  usrData 
)
bool DtSimulationServices::createAndDeliverMessage ( const DtSimulationAddress &  recipient,
const DtSimInterfaceContent content,
bool  overrideTimestampOrder = true,
bool  sendImmediately = false 
) const
void DtSimulationServices::receiveMessage ( const DtSimInterfaceMessage )
DtU32 DtSimulationServices::scenarioCapabilities ( ) const
const DtSimulationAddress& DtSimulationServices::simulationAddress ( ) const
virtual void DtSimulationServices::addPostTickEntry ( SimTickFunction  tickFunction,
void *  userData 
) const
virtual
virtual void DtSimulationServices::removePostTickEntry ( SimTickFunction  tickFunction,
void *  userData 
) const
virtual
virtual void DtSimulationServices::addTickEntry ( SimTickFunction  tickFunction,
void *  userData 
) const
virtual
virtual void DtSimulationServices::removeTickEntry ( SimTickFunction  tickFunction,
void *  userData 
) const
virtual
virtual void DtSimulationServices::sendServerMessage ( const DtString ,
int  severity = DtNlWarn,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Sends out a generic server message to the various front-ends (or specific if front-end address given)

static DtSimulationServices* DtSimulationServices::instance ( )
static
DtSimulationServices& DtSimulationServices::operator= ( const DtSimulationServices )
private

Not implemented.

VRF4API_METHOD const DtSimObjectManager* DtSimulationServices::vrfObjectManager ( ) const

Backwards compatible API to allow for older code to be compiled/used Deprecated. Use.

VRF4API_METHOD const DtSimulationServices* DtSimulationServices::exerciseClock ( ) const

Deprecated. Use time methods direction on DtSimulationServices.

VRF4API_METHOD const DtDetonationServiceInterface* DtSimulationServices::detonationManager ( ) const
VRF4API_METHOD DtDetonationServiceInterface* DtSimulationServices::detonationManager ( )

Member Data Documentation

DtDetonationServiceInterface* DtSimulationServices::myDetonationServiceInterface
protected
DtCreateObjectServiceInterface* DtSimulationServices::myCreateObjectServiceinterface
protected
DtScenarioServiceInterface* DtSimulationServices::myScenarioServiceInterface
protected
DtAisDataServiceInterface* DtSimulationServices::myAisDataServiceInterface
protected
DtAdsbDataServiceInterface* DtSimulationServices::myAdsbDataServiceInterface
protected
DtSimManager* DtSimulationServices::mySimManager
protected
DtInfluenceDispatcherServiceInterface* DtSimulationServices::myInfluenceDispatcherServiceInterface
protected
DtSimOperationsInProgressInterface* DtSimulationServices::mySimOperationsInProgressInterface = nullptr
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)