VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
DtVrfRemoteController Class Reference

The main class for the remote control interface to VR-Forces. More...

Public Types

enum  ComponentAttachmentRule { AttachNone = 0, AttachFirst, AttachEven }

Public Member Functions

0. Class Admin

Constructor, various accessors, etc.

 DtVrfRemoteController (int receivePort=9000)
 Constructor.
virtual ~DtVrfRemoteController ()
 Destructor.
virtual DtVrfMessageInterfacevrfMessageInterface () const
 Accessor for the message interface.
virtual DtVrfTDLMessageInterfacevrfTDLMessageInterface () const
 Accessor for the VRF TDL message interface.
virtual DtUUIDNetworkManageruuidNetworkManager () const
 Accessor for the uuidNetworkManager.
DtRemoteEnvironmentControllerremoteEnvironmentController ()
 Returns myRemoteEnvironmentController.
virtual
DtVrfConfigurationFileComposer
composer ()
 Returns current composer.
virtual void setHostInetAddr (DtInetAddr)
 Internet address setting.
virtual DtInetAddr hostInetAddr () const
virtual const DtSimulationAddress & simulationAddress () const
 Get our simulation address.
virtual int sessionId () const
 Return the session ID.
virtual unsigned int generateRequestId () const
 Generate a request id.
I. Initialization

Functions called to initialize the remote controller.

virtual void init (DtExerciseConn *exConn, DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL, const DtString &uuidMarkingForNonVrForces="entity-identifier", makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList *eaol=0)
 Initialize the remote controller.
virtual void init (DtVrfMessageInterface *msgIf, DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL, const DtString &uuidMarkingForNonVrForces="entity-identifier", makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList *eaol=0, DtVrfTDLMessageInterface *vrfTDLMsgIf=0)
virtual void reinitialize (DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL, makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList *eaol=0)
 If already initialized, reinitialize with new reflected lists.
DtRemoteEnvironmentControllercreateRemoteEnvironmentController ()
 Instantiates a new DtRemoteEnvironmentController.
II. Back end Information

Information about back end status.

virtual const DtList & backends () const
 Get a list of known back end simulation addresses.
virtual const DtList & pendingBackends () const
 Get a list of back ends which are still processing the current load or save operation (if any).
virtual DtVrfBackendListenerbackendListener () const
 Get the back end listener.
virtual void addBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
 Register backend discovery callbacks.
virtual void removeBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
virtual void addBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
 Register backend removal callbacks.
virtual void removeBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
virtual int backendsControlState () const
 Get remote back ends' control state Returns DtUnknownControlType if no remote backends exist.
virtual int numberBackendsLoaded () const
 Returns the number of backends loaded with a scenario.
virtual bool allBackendsReady () const
 Returns true if all the backends have a scenario loaded and they are ready to simulate.
virtual bool backendLoaded (const DtSimulationAddress &addr) const
 Returns true if the backend specified is loaded.
virtual void modifyBackEndSetting (const DtSettingsObject *setting, const DtSimulationAddress &addr=DtSimSendToAll)
 Modify the value of a back end settings object.
virtual void requestBackEndSetting (std::string name, DtBackEndSettingRequestCompleteCallbackFcn fcn, void *usr=0, const DtSimulationAddress &addr=DtSimSendToAll)
 Request the value of a back end setting from the DtVrfSimSettingsManager.
virtual double simTime (const DtSimulationAddress *a=NULL) const
 Returns the simulation time of the specified back end.
III. Simulation Configuration
virtual void setSpotReportsGloballyEnabled (bool enabled)
 Sets the global state of spot reports - all entities set to use the global setting (which is the default) will obey this value.
virtual void setTDLMessagesGloballyEnabled (bool enabled)
 Sets the global state of sending of tdl messages - all entities set to use the global setting (which is the default) will obey this value.
virtual void setEngagementReportsGloballyEnabled (bool enabled)
 Sets the global state of engagement reports - all entities set to use the global setting (which is the default) will obey this value.
virtual void setPeriodicSnapshotSettings (bool enabled, double period, int numberOfSnapshotsToKeep)
 Sets whether or not period snapshots is enabled and the time period (simulation time in seconds) for marking a checkpoint.
virtual void setDRThresholds (double translation, double rotation)
 Set the dead reckoning settings to be used by any entities that allow gui overrides.
virtual void setCommModelSettings (bool useExternalComms)
 Set the comm model settings to be used by entities that have radios.
virtual void setRoadDrivingSettings (bool driveOnLeft)
 Set which side of the road entities drive on.
virtual void setAutomaticAggregationDisaggregationEnabled (bool enabled)
 Sets whether or not automatic aggregation/disaggregation should be enabled.
virtual void setPublishAggregateFormationRoutes (bool yesNo)
 Sets whether or not aggregate formation-following routes should be published.
virtual void setRotationThreshold (DtReal thresh)
 Set rotation threshold (in radians) for all back ends.
virtual void setTranslationThreshold (DtReal thresh)
 Set translation threshold (in meters) for all back ends.
virtual void setAggDimensionThreshold (DtReal thresh)
 Set the aggregate dimension threshold for all back ends.
virtual void querySpatialSubdivisionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Request spatial subdivision configuration of a given type, from a given back end.
virtual void setSpatialSubdivsionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, const int spatialSubdivisionXResolution, const int spatialSubdivisionYResolution, const int spatialSubdivisionZResolution)
 Set spatial subdivision configuration for given back end.
virtual void processSpatialSubdivisionConfigurationCb (const DtIfServerRequestResponse &rsp)
 Processes a spatial-subdivision-configuration callback.
IV. Scenario management - A

Creating a New Scenario

virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const DtFilename &opdname=DtFilename::nullFilename(), const DtFilename &physicalWorldName=DtFilename::nullFilename(), const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 Create a new scenario.
virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const std::vector< DtString > &simulationModelSetFiles, const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 Create a new scenario from a simulation model set files.
virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const DtFilename &opdname, const DtFilename &physicalWorldName, const std::vector< DtString > &simulationModelSetFiles, const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 Create a new scenario from a simulation model set files.
virtual void createSimulationObjectGroup (const DtSimulationAddress &, const DtString &simulationObjectGroup, const DtVector &createPosition, double offsetRotation, int createFlags, DtForceType force, bool storedInZipFile=false)
 Creates the contents of the simulation object group at the given geocentric position and flags.
IV. Scenario management - B

Loading and Importing Scenarios

virtual bool loadScenario (const DtFilename &filename, DtBackendRemappingFcn fcn=0, void *usrRemapping=0, DtLoadBalancingFcn=0, void *usrBalancing=0, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), ComponentAttachmentRule compAttachRule=DtVrfRemoteController::AttachNone, DtString *errorString=0)
 Loads scenario file specified by filename.
virtual bool loadScenario (const DtScenarioLoadInformation &, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), DtString *errorString=0)
virtual bool loadScenario (const DtScenario &scenario, DtBackendRemappingFcn fcn=0, void *usrRemapping=0, DtLoadBalancingFcn=0, void *usrBalancing=0, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), DtString *errorString=0)
 Loads scenario specified by DtScenario.
virtual bool sendLoadScenarioMessage (const DtScenario &scenario, const DtSimulationAddress &addr=DtSimSendToAll, bool import=false, bool isOrbatEnabled=false, bool createGlobalEnv=false, bool createGlobalDynamicTerrain=false) const
 Send a load scenario message based on the information inside scenario.
virtual DtIfLoadScenariocreateLoadScenarioMessage () const
 Called by sendLoadScenarioMessage to create an instance of DtIfLoadScenario.
virtual void addBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
 Register callback to be invoked whenever a backend has finished loading a scenario.
virtual void removeBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
virtual void addScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely loaded.
virtual void removeScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
virtual bool rollbackToSnapshot (double simTime)
 Rolls back to the current snapshot given the scenario time to roll back to.
virtual bool importScenario (const DtScenario &, const DtSimulationAddress &addr, DtString *errorString=0)
 Imports a scenario into the specified back end.
virtual bool importScenario (const DtFilename &, const DtSimulationAddress &addr, DtString *errorString=0)
virtual bool importScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 Imports the specified scenario description file into the given back end.
virtual void setMaxWaitLoadTime (DtTime t)
 Set the maximum amount of time to wait for backends to respond to a 'load' message.
virtual DtTime maxWaitLoadTime () const
IV. Scenario management - C

Saving and Exporting Scenarios

virtual bool exportScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 Exports the specified scenario description file by requesting the specified back end to create the export file and send that file back to this front-end.
virtual DtString guiTerrainDatabaseFilename () const
 Accessor for front end Gui terrain database.
virtual void setGuiTerrainDatabaseFilename (DtString db)
virtual const DtRwKeyValueListscenarioData () const
 Set the scenario data used to save with the scenario.
virtual void setScenarioData (const DtRwKeyValueList &)
virtual bool isSavingScenario () const
 Returns true if a scenario is being saved.
virtual bool saveScenario (const DtFilename &saveName, DtPreserveMappingsFcn fcn=0, void *userData=0, DtString *error=0, bool saveToZip=false, bool deleteExistingZip=true, double simTime=-1)
 Save a scenario.
virtual bool save (DtString &sError)
 Write out scenario files.
virtual bool saveScenarioCheckpoint (const DtFilename &filename, double simTime, bool saveToZip=false, DtString *saveError=0)
 Saves a scenario checkpoint.
virtual void takeSnapshot (DtSimulationAddress addr=DtSimSendToAll)
 Takes a snapshot of the scenario in the various back ends in memory.
virtual void takeBaseSnapshot ()
 Takes a snapshot and makes it the base snapshot that can be rewound to by the rewind to scenario start button.
virtual void createGlobalDynamicTerrain (bool)
 Create/destroy global dynamic terrain (if not already)
virtual void createGlobalEnvironment (bool)
 Create/destroy global environment (if not already)
virtual void sendSaveScenarioMessage (const DtSimulationAddress &addr=DtSimSendToAll, double simTime=-1, const DtFilename &saveScenarioFilename="") const
 Send a save scenario message.
virtual void addBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
 Register a callback to be invoked whenever a backend has finished saving a scenario.
virtual void removeBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
virtual void addScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely saved.
virtual void removeScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
virtual void addScenarioAboutToBeSavedCallback (DtScenarioAboutToBeSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario file is about to be saved.
virtual void removeScenarioAboutToBeSavedCallback (DtScenarioAboutToBeSavedCallbackFcn fcn, void *usr)
virtual void addScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely exported.
virtual void removeScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
virtual void addCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely checkpointed.
virtual void removeCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
virtual void addScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely saved.
virtual void removeScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
virtual void setOpdSaveName (const DtFilename &f)
 Get/Set the Object Parameters Database filename to be written to the scenario file during a save.
virtual const DtFilename & opdSaveName () const
virtual void setMaxWaitSaveTime (DtTime t)
 Set the maximum amount of time to wait for backends to respond to a 'save' message.
virtual DtTime maxWaitSaveTime () const
virtual void setOverlayFilename (const DtFilename &overlay)
 If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & overlayFilename () const
virtual void setHostilityFilename (const DtFilename &hostilty)
 If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & hostilityFilename () const
virtual void setScenarioExtrasFilename (const DtFilename &extras)
virtual const DtFilename & scenarioExtrasFilename () const
virtual void setSelectionGroupsFilename (const DtFilename &sel)
 If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & selectionGroupsFilename () const
virtual void setSymbolMapFilename (const DtFilename &overlay)
 If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & symbolMapFilename () const
virtual void setCreateMenuFilename (const DtFilename &overlay)
 If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & createMenuFilename () const
virtual void saveParameterDb (const DtFilename &filename)
 Save currently loaded parameter database in backend to file.
virtual bool saveSimulationObjectGroup (const DtFilename &smsDirectory, const DtString &groupName, const DtString &groupDescription, int creationFlags, const DtSimulationAddress &addr, const std::map< DtString, DtString > &additionalInformation=std::map< DtString, DtString >(), DtString *saveError=0, bool saveAsZip=false)
 Saves a simulation object group with the contents of the items specified on the given back end (DtSimSendToAll is not valid).
IV. Scenario management - D

Closing a Scenario

virtual void closeScenario (const DtSimulationAddress &addr=DtSimSendToAll, const DtFilename &databaseToOpen="", bool forceCloseAll=false)
 Close the current scenario.
IV. Scenario management - E

Configuring a Scenario

virtual DtTime scenarioSimTimeForSave ()
 This routine will return the simulation time based upon the saved messages that should be saved in the scenario file.
virtual void setTerrainDatabaseFilename (DtScenario *scen)
 This routine will set the terrain database filename into the supplied scenario.
virtual void setParameterDatabaseFilename (DtScenario *scen)
 This routine will set the parameter database filename into the supplied scenario.
virtual void setPhysicalWorldFilename (DtScenario *scen)
 This routine will set the physical world filename into the supplied scenario.
virtual void setTimeMultiplier (DtScenario *scen)
 This routine will set the time multiplier into the supplied scenario.
virtual void setAutoReorganize (DtScenario *scen)
 This routine will set the auto reorganize flag into the supplied scenario.
virtual void setRandomNumberSeed (DtScenario *scen)
 This routine will set the random number seed into the supplied scenario.
virtual void setFrameRateMode (DtScenario *scen)
 This routine will set the frame rate mode into the supplied scenario.
virtual void setFrameDeltaTime (DtScenario *scen)
 This routine will set the frame delta time into the supplied scenario.
virtual void setExerciseStartTime (DtScenario *scen)
 This routine will set the exercise start time into the supplied scenario.
virtual void setExerciseStartDateAndTime (DtScenario *scen)
 This routine will set the exercise start day and time into the supplied scenario.
IV. Scenario management - F

Controlling a Scenario

virtual void run (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 If useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void pause (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
virtual void rewind ()
 For the rewind, if there is more then one backend with a loaded scenario, will instead close and reload the scenario.
virtual void exit () const
virtual void step () const
virtual void setTimeMultiplier (double multiplier) const
IV. Scenario management - G

Internal functions

Users should not need to call these.

However, they are available to override in plugins.

virtual void loadedScenario (const DtSimulationAddress &addr, unsigned int requestId, const DtU32 &capabilities)
 Internal function invoked when a backend notifies us that it has received and loaded the given scenario information.
virtual void initializeGlobalEnvironment (const DtSimulationAddress &environmentSimBackend=DtSimSendToAll)
 Starts the environment simulation on one of the available simulation engines.
virtual void initializeGlobalDynamicTerrain (const DtSimulationAddress &environmentSimBackend=DtSimSendToAll)
 Starts the global dynamic terrain controller on one of the available simulation engines.
virtual void save (const DtSimulationAddress &addr, DtIfSaveComplete *s)
 Invoked when a backend notifies us that it has saved and sent its scenario information.
virtual void processSaveMessages ()
 Called before the scenario is saved, this routine will go through the saved save interface messages and store scenario data common to all servers.
virtual void exported (const DtSimulationAddress &addr, DtIfExportComplete *s)
 Invoked when a backend notifies us that it has exported and sent its scenario information.
virtual void completeExport ()
 Called when everything is available to complete the export process.
virtual void savedScenario (const DtSimulationAddress &addr, DtSaveResult result, unsigned int requestId, bool isCheckpointSave=false, double checkpointSimTime=-1)
 Internal function invoked when a backend notifies us that it has saved and sent its scenario information.
virtual void doPendingSaveWork ()
 Perform periodic processing that's needed for saving a scenario.
virtual void doPendingExportWork ()
 Perform periodic processing that's needed for exporting a scenario.
virtual void doPendingLoadWork ()
 Perform periodic processing that's needed for loading a scenario.
V.Object Management - A

Control Objects

These functions provide the capability to manipulate specific classes of control objects, including

  • waypoints
  • routes
  • phase lines
  • areas
  • obstacles
  • disaggregation areas
  • overlays
  • global artillery ("indirect" artillery)
virtual void createWaypoint (const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new waypoint.
virtual void createWaypoint (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new waypoint.
virtual void modifyWaypoint (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *geocentricPosition=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given waypoint.
virtual void createRoute (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new route.
virtual void createRoute (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new route.
virtual void modifyRoute (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *vertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given route.
virtual void createPhaseLine (const DtVector &dbPoint1, const DtVector &dbPoint2, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new phase line.
virtual void createPhaseLine (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtVector &dbPoint1, const DtVector &dbPoint2, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new phase line.
virtual void modifyPhaseLine (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *newDbPoint1=0, DtVector *newDbPoint2=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given phase line.
virtual void createControlArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new control area.
virtual void createControlArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new control area.
virtual void modifyControlArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 modify the given control area
virtual void createObstacle (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new obstacle.
virtual void createObstacle (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new obstacle.
virtual void modifyObstacle (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 modify the given obstacle
virtual void createDisaggregationArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).
virtual void createDisaggregationArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).
virtual void modifyDisaggregationArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify given disaggregation area.
virtual void createOverlayObject (const DtEntityType &type, const DtList &vertices, const DtForceType &force, const DtString &name, const DtString &label, int color, const DtString &parentName, bool projection, bool closedFigure, const DtAppearance &appearance=DtAppearance::nullAppearance(), const DtUUID &attachTo=DtUUID::nullUUID(), char *userData=0, int dataSize=0, const std::map< std::string, std::string > &extendedData=std::map< std::string, std::string >(), const std::map< int, DtString > &extendedLabels=std::map< int, DtString >(), DtOverlayCreatedCallbackFcn fcn=0, const DtSimulationAddress &addr=DtSimSendToAll, unsigned int rId=0, std::list< DtAdminContent * > *initialAdminContent=0, std::list< DtSimInterfaceContent * > *initialInterfaceContent=0, const DtUUID &uuidForCreation=DtUUID::nullUUID())
 Create an overlay object.
virtual void processOverlayObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfOverlayObjectModify *modifications)
 processes a overlay-object-created callback.
virtual void setPhysicalLineWidth (const DtSimulationAddress &addr, const DtUUID &entityId, double w)
 Sets the physical line width of the object, if the object can use it.
virtual void setPhysicalLineHeight (const DtSimulationAddress &addr, const DtUUID &entityId, double h)
 Sets the physical line height of the object, if the object can use it.
virtual void setCeiling (const DtSimulationAddress &addr, const DtUUID &entityId, double c)
 Sets the ceiling of the object, if the object can use it.
virtual void sendVrfOverlayObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, int color, const DtString &parentName, const DtUUID &attachTo, bool keepExistingAttachment=true, char *userData=0, int len=0) const
 This function is only used to modify information that is specific to an overlay object (waypoint, route, overlay objects, etc.)
virtual void createIndirectArtillery (const DtVrfIndirectArtilleryObjectModify *params, const DtSimulationAddress &addr)
 Create an indirect fire object.
virtual void processIndirectArtilleryObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfIndirectArtilleryObjectModify *modifications)
 processes a indirect-artillery-created callback.
virtual void sendVrfIndirectArtilleryObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, const DtVrfIndirectArtilleryObjectModify *mod) const
V. Object Management - B

Entity and Aggregate (Hierarchy) Objects

virtual void createObject (const DtEntityType &type, DtForceType force, DtList *vertices, const DtString &name, const DtSimulationAddress &addr, const DtUUID &startingUUID=DtUUID::nullUUID())
 Very simple call that will create an object (entity or overlay) with a heading of 0 and the supplied points.
virtual void objectCreated (unsigned int requestId, const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)
 Internal function that is called when an object is created.
virtual void deleteObject (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Delete VR-Force's object by name.
virtual void createEntity (const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, bool groundClamp=true, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create a new entity.
virtual void createEntity (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, bool groundClamp=true, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create a new entity.
virtual void createAggregate (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName, const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated, const DtUUID &startingUUID=DtUUID::nullUUID())
virtual void createAggregate (const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, DtList *entityNames=0, const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated, unsigned int requestId=0, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Create an aggregate.
virtual void createAggregate (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, DtList *entityNames=0, const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated, const DtUUID &startingUUID=DtUUID::nullUUID())
 Create an aggregate.
virtual void addToOrganization (const DtUUID &objectId, const DtUUID &newSuperiorId, const DtSimulationAddress &addr=DtSimSendToAll)
 Adds the specified object to as a subordinate to the specified superior.
virtual void addToForceLevelOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 Adds the specified object as a subordinate to the Force Level aggregate corresponding to the objects force type.
virtual void removeFromOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 Removes the specified object from whatever aggregate it is a part of and leaves it with no superior.
virtual void setLabel (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set label of an existing entity or aggregate.
virtual void setOverlayParent (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sets the overlay parent of an existing entity or aggregate.
virtual void setAltitude (const DtUUID &uuid, double altitude, bool aboveGroundLevel=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set altitude (in meters) of an existing entity or aggregate.
virtual void setLocation (const DtUUID &uuid, DtVector coord, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set location (geocentric coordinates) of an existing entity or aggregate.
virtual void setAppearance (const DtUUID &uuid, int appearance, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set appearance of entity.
virtual void setCapabilities (const DtUUID &uuid, int capabilities, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set capabilities of entity.
virtual void setHeading (const DtUUID &uuid, double degrees, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set heading (in degrees) of an existing entity or aggregate.
virtual void setForce (const DtUUID &uuid, DtForceType force, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set force of an existing entity or aggregate.
virtual void requestSpotReports (const DtUUID &uuid, int onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 Spot reports of an existing entity or aggregate.
virtual void requestSendTDLMessages (const DtUUID &uuid, int onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 TDL Messaging of an existing entity or aggregate.
virtual void requestEngagementReports (const DtUUID &uuid, bool onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 Engagement reports of an existing entity or aggregate.
virtual void setResource (const DtUUID &uuid, const char *resourceType, double value, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set resource of an existing entity or aggregate.
virtual void setRulesOfEngagement (const DtUUID &uuid, const char *rulesType, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set rules of engagement of an existing entity or aggregate.
virtual void setSectorOfResponsibility (const DtUUID &uuid, double center, double size, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set sector of responsibility (center and size are in degrees) of an existing entity or aggregate.
virtual void setSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set ordered speed (in meters per second) of an existing entity or aggregate.
virtual void setCurrentSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set current speed (in meters per second) of an existing entity or aggregate.
virtual void setTarget (const DtUUID &uuid, const DtUUID &target, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set target of an existing entity or aggregate.
virtual void setSuperior (const DtUUID &uuid, const DtUUID &superior, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set superior of an existing entity.
virtual void setTaskedBySuperior (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set tasked by superior of an existing entity.
virtual void setConcealed (const DtUUID &uuid, bool yes, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set concealed for an existing entity or aggregate.
virtual void setEmitter (const DtUUID &uuid, int emitterId, bool on, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set emitter.
virtual void setIff (const DtUUID &uuid, bool mode1on, int mode1code, bool mode2on, int mode2code, bool mode3on, int mode3code, bool mode4on, int mode4code, DtIffAtcNavaidsAltParm4 altParm4, bool modeCon, bool useAltModeC, bool modeSon, bool emergency, bool flash, bool sti, bool modeSTcasI, int pin, bool mode5LevelSelection, unsigned int messageFormatsPresent, unsigned int nationalOrigin, unsigned int navigationSource, unsigned int figureOfMerit, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set iff.
virtual void restore (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Restore to start state.
virtual void setDestroyed (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sets the damage state of an existing entity or aggregate to destroyed.
virtual void setLifeformWeaponState (const DtUUID &uuid, DtWeaponState weapon, const DtSimulationAddress &addr) const
 Set lifeform weapon.
virtual void setLifeformPosture (const DtUUID &uuid, DtLifeformState posture, const DtSimulationAddress &addr) const
 Set lifeform posture.
virtual void setAggregateFormation (const DtUUID &leader, const DtString &formationName, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set an aggregate formation.
virtual void reorganizeAggregate (const DtUUID &leader, const DtSimulationAddress &addr=DtSimSendToAll) const
 Reorganize the aggregate.
virtual void disaggregateEntity (const DtUUID &entity, const DtSimulationAddress &addr=DtSimSendToAll) const
 Disaggregate the entity, resulting in its DtAggregateState to become DtDisaggregated, and simulation of its subordinates as distinct entities.
virtual void aggregateEntity (const DtUUID &entity, const DtSimulationAddress &addr=DtSimSendToAll) const
 Aggregate the entity, resulting in its DtAggregateState to become DtAggregated, with subordinates not simulated as distinct entities.
virtual void sendSetDataMsg (const DtUUID &recipient, DtSetDataRequest *msg, const DtSimulationAddress &addr) const
 General set data message.
V. Object Management - C

Sending Messages To Objects

virtual void sendVrfObjectCreateMsg (const DtSimulationAddress &addr, unsigned int requestId, const DtString &name, const DtObjectType &type, const DtList &vertices, const DtString &label, const DtAppearance &appearance, DtForceType force, bool projection, bool closedFigure, DtReal heading, bool createSubObjects, bool clampToGroundFlag=true, const DtString &initialFormation=DtString::nullString(), DtAggregateState initialAggregateState=DtDisaggregated, const DtString &userData=DtString::nullString(), const std::map< std::string, std::string > &extendedData=std::map< std::string, std::string >(), const std::map< int, DtString > &extendedLabels=std::map< int, DtString >(), std::list< DtAdminContent * > *initialAdminContent=0, std::list< DtSimInterfaceContent * > *initialInterfaceContent=0, const DtString &overlayParent="", const DtUUID &uuidForCreation=DtUUID::nullUUID()) const
 This function can be used to create vrf objects that cannot be created using the more specific methods above.
virtual void sendVrfObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, DtString *name=0, DtList *vertices=0, DtForceType *force=0, DtReal *heading=0, DtString *label=0, DtAppearance *appearance=0, DtString *overlayParent=0, DtString *userData=0) const
 This function can be used to modify vrf objects that cannot be created using the more specific methods above.
VI. Tasks

These functions start tasks and monitor execution status.

virtual void sendTaskMsg (const DtUUID &recipient, DtSimTask *task, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a general task message to the entity/aggregate specified by 'recipient' argument, which is the name of the entity/aggregate to receive the task message.
virtual void moveAlongRoute (const DtUUID &entityName, const DtUUID &routeName, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'move along route' task to the entity/aggregate specified by 'name'.
virtual void moveToWaypoint (const DtUUID &entityName, const DtUUID &waypoint, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'move to waypoint' task to the entity/aggregate specified by 'name'.
virtual void moveToLocation (const DtUUID &entityName, const DtVector &destinationLocation, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'move to location' task to the entity/aggregate specified by 'name'.
virtual void patrolBetweenWaypoints (const DtUUID &uuid, const DtUUID &waypoint1, const DtUUID &waypoint2, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'patrol waypoints' task to the entity/aggregate specified by 'name'.
virtual void patrolAlongRoute (const DtUUID &uuid, const DtUUID &route, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'patrol route' task to the entity/aggregate specified by 'name'.
virtual void followEntity (const DtUUID &uuid, const DtUUID &leader, const DtVector &offset, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'follow' task to the given entity/aggregate.
virtual void wait (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait' task to the entity/aggregate specified by 'name'.
virtual void waitDuration (const DtUUID &uuid, DtTime duration, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait X seconds' task to the entity/aggregate specified by 'name'.
virtual void waitElapsed (const DtUUID &uuid, DtTime elapsed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait until the simulation time has increased by X' task to the entity/aggregate specified by 'name'.
virtual void skipTask (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate to skip the current task.
VII. Plans - A

Entity Plans

virtual void restartPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate corresponding to the given entity to abandon its plan.
virtual void assignPlanByName (const DtUUID &uuid, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Assign a plan to the echelon ID held by the entity/aggregate corresponding to the given entity name.
virtual void assignMultiplePlanByName (const std::vector< DtUUID > &entities, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Same as assignPlanByName, except send DtMultiplePlanSet message.
virtual void requestPlan (const DtUUID &uuid, bool addStmtCallback=true, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a message to all VRF sim engines requesting plan updates messages for the specified entity name.
virtual void subscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 Requests plan messages from the sim engine for a particular entity, and registers a callback to receive the messages.
virtual void receivedPlan (const DtUUID &uuid, bool isGlobal, const std::vector< DtSimStatement * > &statements)
 Internal function invoked when a plan is received.
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, DtMultiplePlanRequestCallbackFcn fcn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 Send a message to the specified backend (or all) to check to see if all locally simulated entities contain the same plan.
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, const DtSimulationAddress &addr=DtSimSendToAll)
virtual void processReceivedMultiPlan (DtIfMultiplePlanResponse *msg)
 processes a multi-plan received callback.
virtual void unsubscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr)
 Removes a plan message callback function registered with subscribePlan.
virtual void unsubscribeAllPlans ()
 Unregisters all plan message callbacks.
virtual void addPlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 Register callback for an entity's or aggregate's current statement.
virtual void removePlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 Unregister callback for an entity's or aggregate's current statement.
virtual void removeAllPlanStatementCallbacks ()
 Unregister current statement callbacks for all entities/aggregates and global plans.
virtual void receivedPlanStmt (const DtUUID &uuid, bool isGlobal, DtPlanStatus planStatus)
 Internal function invoked when we receive a current statement message.
virtual void addPlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 Register callback for an entity's or aggregate's plan completion.
virtual void removePlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 Unregister callback for an entity's or aggregate's plan completion.
virtual void removeAllPlanCompleteCallbacks ()
 Unregister plan completion callbacks for all entities/aggregates and global plans.
virtual void abandonPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate corresponding to the given entity to abandon its plan.
VII. Plans - B

Global Plans

virtual void requestGlobalPlansList (const DtSimulationAddress &addr)
 Requests the list of all global plans.
virtual void assignGlobalPlan (const DtString &name, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Assigns a global plan of the specified name to the sim engine specified in addr.
virtual void deleteGlobalPlan (const DtUUID &name, const DtSimulationAddress &addr=DtSimSendToAll) const
 Deletes any global plan matching the specified name.
virtual void launchGlobalPlan (const DtUUID &, const DtSimulationAddress &addr) const
 Launches the global plan. If already launched then this will have no effect.
VIII. General Communication With Entities
virtual
DtVrfObjectMessageExecutive
objectMessageExecutive ()
 Register callbacks with this message executive to receive messages sent from entities and objects to the GUI.
virtual void sendMessageToObject (DtVrfObjectMessage *objectMessage, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sends the specified message to the entity identified in the message receiver field.
virtual DtRadioMessageListenerradioMessageListener ()
 Returns a pointer to the radio message listener.
IX. Simulation Control and Information Request

These functions control simulation activity and request entity information.

virtual void embarkObject (const DtSimulationAddress &addr, const DtUUID &entity, const DtUUID &ontoEntity, bool loadOverride=false, const DtVector &loadOverridePosition=DtVector::zero())
 These routines will send interface messages to tell the back end to embark or disembark the specified objects.
virtual void disembarkObject (const DtSimulationAddress &addr, const DtUUID &entity)
virtual void disembarkAllObjects (const DtSimulationAddress &addr, const DtUUID &entity)
virtual void requestTasksAndSetsFor (const DtSimulationAddress &addr, const DtUUID &entityName)
 Requests the tasks and sets that are available for this object, using the DtIfCapableTaskAndSetQuery.
virtual void requestTasksAndSetsFor (const std::vector< DtUUID > &names)
 Requests the tasks and sets that are available for the list of named objects.
virtual void requestDIGuyAppearancesAndAnimations (const DtSimulationAddress &addr, const DtUUID &entityName)
 Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with this entity.
virtual void requestDIGuyAppearancesAndAnimations (const std::vector< DtUUID > &names)
 Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with these entities.
virtual void requestIndirectArtilleryInformation (const DtUUID &)
 Request indirect artillery information by environmental name.
virtual void requestResourceNames (const std::vector< DtUUID > &list, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Sends a request to the server to return a list of resource names associated with the entities supplied.
virtual void requestResources (const DtUUID &uuid=DtUUID::nullUUID(), const std::list< DtString > *list=0, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Sends a request the server to send back a PDU which contains the resource values for the specified object and resource values.
virtual void processResourcesProcessedCb (const DtIfServerRequestResponse &rsp)
 processes a resources-processed callback.
X. Object Console Information

Functions to manipulate console messages.

virtual void addObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
 Manage callbacks which will get called each time a object console message is received over the network.
virtual void removeObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
virtual void setObjectNotifyLevel (const DtUUID &objectName, DtNotifyLevelType notifyLevel, const DtSimulationAddress &addr=DtSimSendToAll)
 Sends a request to the sim engine to change the notification level of the specified object.
virtual void logObjectConsoleToFile (const DtUUID &objectName, const DtFilename filename)
 Starts the sim engine logging this object console to the specified file.
virtual void stopLoggingObjectConsoleToFile (const DtUUID &objectName)
 Stops any sim engine which is currently writing a log file for this object.
virtual void addBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
 Manage callbacks that will get called each time a back end console message is received over the network.
virtual void removeBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
virtual void processCommentInteraction (DtCommentInteraction *inter)
 Processes an incoming comment interaction.
XI. Joystick

Functions to configure joysticks

virtual void requestJoystickInformation (const DtUUID &, DtJoystickControlResponseFcn, void *, const DtSimulationAddress &addr=DtSimSendToAll)
 Requests joystick information (supported function groups and functions) for the given entity.
virtual void takeControlOf (const DtUUID &, const std::set< DtString > &functionGroups, const DtSimulationAddress &addr=DtSimSendToAll)
 Takes control of the given entity for the supplied function group(s) for the purposes of joystick control.
virtual void releaseControlOf (const DtUUID &, const std::set< DtString > &functionGroups=std::set< DtString >(), const DtSimulationAddress &addr=DtSimSendToAll)
 Releases control of the given entity for the given function groups.
virtual void sendJoystickControl (const DtUUID &, const DtString &functionGroup, const DtString &function, double value, bool repeat=false, const DtSimulationAddress &addr=DtSimSendToAll)
 Sends a joystick control message to the given entity for the given function group and function using the supplied value.
XII. Factories

Accessors for factories that create the various kinds of interface messages and interface message content objects.

virtual
DtDefaultVrfObjectMessageFactory
vrfObjectMsgFactory ()
virtual DtDefaultCondExprFactorycondExprFactory ()
virtual DtDefaultStatementFactorystmtFactory ()
virtual DtDefaultSimReportFactoryreportFactory ()
virtual DtDefaultSimTaskFactorytaskFactory ()
virtual
DtDefaultSetDataRequestFactory
setDataFactory ()
virtual
DtDefaultSimCommandFactory
simCommandFactory ()
virtual
DtDefaultAdminContentFactory
adminContentFactory ()

Static Public Member Functions

Static Callback Functions
static void doPendingSaveWorkCb (void *usr)
 Invoked periodically while waiting for a save command to complete.
static void doPendingExportWorkCb (void *usr)
 Invoked periodically while waiting for a export command to complete.
static void doPendingLoadWorkCb (void *usr)
 Invoked periodically while waiting for a load command to complete.
static void savedScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has saved and send it scenario information.
static void exportScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has exported and send it scenario information.
static void loadedScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has received and loaded the given scenario information.
static void receiveFileCb (const DtFilename &filename, void *usr)
 Invoked when a file has been received from our dedicated TCP socket.
static void receivedMultiPlanCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a multiple plan response.
static void objectCreatedCb (DtSimMessage *msg, void *usr)
 Invoked when an object we've requested has been created.
static void receivedPlanCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a plan as a result of a plan request.
static void receivedPlanStmtCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a plan statement message.
static void overlayObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Invoked when an overlay object is created.
static void indirectArtilleryObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Invoked when an indirect artillery object is created.
static void resourcesProcessedCb (DtSimMessage *msg, void *usr)
 Invoked when a resource request is called via requestResources.
static void spatialSubdivisionConfigurationCb (DtSimMessage *msg, void *usr)
 Invoked when a query spatial subdivision configuration request is made via querySpatialSubdivisionConfiguration().
static void commentInteractionCallback (DtCommentInteraction *inter, void *usr)
 Invoked when a comment interaction is received from the network.

Protected Types

typedef std::list< PlanCbInfoDtPlanCallbackListType
typedef std::list< StmtCbInfoDtStatementCallbackListType
typedef std::list
< PlanCompleteCbInfo
DtPlanCompleteCallbaclListType
typedef std::list< std::pair
< DtObjectConsoleMessageCallbackFcn,
void * > > 
DtObjectConsoleMessageCallbackListType
 hashed by request id
typedef std::list< std::pair
< DtBackendConsoleMessageCallbackFcn,
void * > > 
DtBackendConsoleMessageCallbackListType
typedef std::map< DtString,
std::pair
< DtJoystickControlResponseFcn,
void * > > 
JoystickResponseCallbackInfo
 Joystick callback information.

Protected Member Functions

virtual void processJoystickControlResponse (DtSimMessage *msg)
virtual void onInit ()
 Initializes myTempDirectory, host inet address, myListener, myRadioMessageListener, myRemoteEnvironmentController.
virtual void resetStateData ()
virtual void emptyLists ()
virtual void sendAggregateAsMsg (const DtSimulationAddress &addr, unsigned int requestId, const DtObjectType &objectType, DtForceType force, const DtVector &position, DtReal heading, DtList *entityNames, DtAggregateState initialAggregateState, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 Fills out and sends an aggregate-as message.
virtual
DtVrfConfigurationFileComposer
createComposer ()
 Initializes the myComposer variable.
virtual DtUUIDNetworkManagercreateUUIDNetworkManager () const
 Creates a new UUID network manager.
virtual void sendQuerySpatialSubdivisionConfigurationRequest (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn, void *usr)
 Sends DtIfQuerySpatialSubdivisionConfiguration request for given spatial subdivision type.
virtual bool arbitrarySimAddress (DtSimulationAddress &address) const
 Chooses an arbitrary simulation address from the current set of registered backends.
virtual bool addStatementsAndSendPlan (const DtPlan &plan, DtIfPlan &planMsg, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=0, DtString *retsStmt=0) const
 Adds the statements from plan to planMsg, and sends planMsg to the specified address.
virtual void processVrfObjectMessage (const DtVrfObjectMessage *objectMsg)
 If the message is addressed to the front end, passes it to the objectMessageExecutive for processing by any registered callbacks.
virtual void processGlobalEnvironmentCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)
virtual void processBackendStatusUpdate (const DtSimulationAddress &)

Static Protected Member Functions

static void joystickControlResponse (DtSimMessage *msg, void *usr)
 Invoked when a resource request is called via requestResources.
static void deliverRadioMessageCallback (DtSimMessage *msg, void *usr)
 Callback registered with the message interface for vrfObjectMessages.
static void vrfObjectMessageCallback (const DtVrfObjectMessage *objMsg, void *usr)
static void globalEnvironmentCreatedCb (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Called when global weather object is created, will then set time of day.
static void backendStatusUpdate (const DtSimulationAddress &, void *)
 Used by rollback, once there are no longer any backends with entities give the actual rollback.

Protected Attributes

DtExerciseConn * myExConn
DtReflectedEnvironmentProcessListmyReflectedEnvironmentProcessList
bool myCreatedReflectedEnvironmentProcessList
DtVrfMessageInterfacemyMsgIf
DtVrfTDLMessageInterfacemyVrfTDLMsgIf
DtVrfBackendListenermyListener
DtCompressedFileTransportermyTransporter
DtList myReceivedFiles
DtList myReceivedSaves
DtU32 myCurrentRequestId
DtTime myLastCommandTime
DtTime myMaxWaitLoadTime
DtTime myMaxWaitSaveTime
DtList myBeList
DtList myScenLoadedCbs
DtList myBeLoadedCbs
DtList myScenSavedOldCbs
DtList myScenSavedCbs
 list of any deprecated old-style save callbacks that have been registered
DtList myScenAboutToBeSavedCbs
 list of any preferred new-style save callbacks that have been registered
DtList myScenExportedCbs
 list of any preferred new-style save callbacks that have been registered
DtList myScenSavedCheckpointCbs
 list of any preferred new-style save callbacks that have been registered
DtList myBeSavedCbs
 list of any preferred new-style save callbacks that have been registered
DtPlanCallbackListType myPlanCbs
DtStatementCallbackListType myStmtCbs
DtPlanCompleteCallbaclListType myPlanCompleteCbs
DtHashlist myObjectCbs
DtObjectConsoleMessageCallbackListType myObjectConsoleMessageCallbackList
DtBackendConsoleMessageCallbackListType myBackendConsoleMessageCallbackList
bool myCreatedMsgIf
bool myCreatedVrfTDLMsgIf
DtFilename mySaveName
double mySimTimeForCheckpointSave
DtFilename myOverlayFilename
DtFilename mySelectionGroupsFilename
DtFilename mySymbolMapFilename
DtFilename myCreateMenuFilename
DtFilename myOpdName
DtFilename myHostilityFilename
DtFilename myScenarioExtrasFilename
DtScenariomySaveScen
DtScenariomyLoadScen
DtVrfConfigurationFileComposermyComposer
bool myRemapped
 true if a DtBackendRemappingFcn was called on the current scenario
bool myPreserveMappings
 false if a DtPreserveMappingsFcn returned false when saving a scenario
bool myDidRemap
 true if at some point during the save of this scenario the user decided to remap the objects to the new back end.
bool myNeedsGlobalEnvironment
 Set to true if needs to create global environment on first load of simulation.
DtChangeWeatherCommandmyInitialEnvironment
 Set to non-null if needing to also set the global environment.
bool myNeedsGlobalDynamicTerrain
 Set to true if needs to create the object to manage global dynamic terrain.
DtDefaultVrfObjectMessageFactory myVrfObjectMsgFact
 These are needed for message callbacks to work.
DtDefaultCondExprFactory myCondExprFact
DtDefaultStatementFactory myStmtFact
DtDefaultSimReportFactory myReportFact
DtDefaultSimTaskFactory myTaskFact
DtDefaultSetDataRequestFactory mySetDataFact
DtDefaultSimCommandFactory mySimCommandFact
DtDefaultAdminContentFactory myAdminContentFact
DtString myGuiTerrainDatabaseFilename
 This member variable will contain the front end database (if different from back end).
DtRwKeyValueList myScenarioData
 Extra data used to be saved with the scenario.
DtFilename myTempDirectory
 Location for temporary files generated by the configuration composer and file transporter.
DtInetAddr myInetAddr
 This is the Internet address to send saved files back to from the server.
unsigned int myRequestIdCounter
 Incremented by generateRequestId() to assign new request id's.
DtVrfObjectMessageExecutive myObjectMessageExecutive
 Used to processes VrfObjectMessages addressed to the Front End.
DtRadioMessageListenermyRadioMessageListener
 Used to spy on radio messages sent between VRF Entities.
DtRemoteEnvironmentControllermyRemoteEnvironmentController
 Used to monitor and change the weather state.
int myStartTimeOfDay
 Only set for a new scenario.
int myScenarioExportRequestId
 Pending export request id.
DtFilename myExportFile
 When received, the file to save the export file to.
bool myReceivedExportFile
 Set to true once export file has been received.
bool myAwaitingExportComplete
 Set to know we've received the export complete message but not the file yet.
bool myUseDayNightModel
DtDefaultSimulationModelSetValidatorManager mySimulationModelSetValidator
DtUUIDNetworkManagermyUUIDNetworkManager
 Class that will manage and work with VR-Forces UUIDs and make sure the mapping is kept up to date.
JoystickResponseCallbackInfo myJoystickResponseCallbackInfo
bool mySaveToZipFile
 Whether or not the pending save is saved to a zip file.
double myRollbackToSimulationTime
 If rolling back, the rollback time.
bool myInRollback
std::set< DtSimulationAddress > myBackendsWithObjects
std::set< DtSimulationAddress > myBackendsLoaded
 Used for loading a scenario if there are any backends opened.
std::vector< DtStringmyLoadingSimulationModelSets
DtScenarioLoadInformationmyScenarioLoadInformation

Detailed Description

The main class for the remote control interface to VR-Forces.

Instantiating this class allows the sending and received of control messages over the network to control one or more vrfSim executables in the same exercise. It allows for all control, such as loading/saving scenarios, creating/deleting entities and objects, tasking entities, and so forth.

All control and response is accomplished by sending encoded messages though data interactions/PDUs over the network. All encoding and decoding is performed by the remote control functions.

The DtVrfRemoteController does not instantiate reflected lists or maintain lists of the objects in the simulation. This should be done directly with the VR-Link API and the DtExerciseConnection. This class requires an active DtExerciseConnection in order to operate. The VR-Link API can also be used to create an initializer that will provide for reading command-line arguments.

Examples

Member Typedef Documentation

hashed by request id

Joystick callback information.

Member Enumeration Documentation

Enumerator:
AttachNone 
AttachFirst 
AttachEven 

Constructor & Destructor Documentation

DtVrfRemoteController::DtVrfRemoteController ( int  receivePort = 9000)

Constructor.

Parameters
receivePortPort used by the file transporter to receive order of battle and plan files from a back end in response to a save scenario request. If the port requested cannot be opened, the next open port will be used.
virtual DtVrfRemoteController::~DtVrfRemoteController ( )
virtual

Destructor.

Member Function Documentation

virtual DtVrfMessageInterface* DtVrfRemoteController::vrfMessageInterface ( ) const
virtual

Accessor for the message interface.

virtual DtVrfTDLMessageInterface* DtVrfRemoteController::vrfTDLMessageInterface ( ) const
virtual

Accessor for the VRF TDL message interface.

virtual DtUUIDNetworkManager* DtVrfRemoteController::uuidNetworkManager ( ) const
virtual

Accessor for the uuidNetworkManager.

DtRemoteEnvironmentController* DtVrfRemoteController::remoteEnvironmentController ( )

Returns myRemoteEnvironmentController.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::composer ( )
virtual

Returns current composer.

virtual void DtVrfRemoteController::setHostInetAddr ( DtInetAddr  )
virtual

Internet address setting.

virtual DtInetAddr DtVrfRemoteController::hostInetAddr ( ) const
virtual
virtual const DtSimulationAddress& DtVrfRemoteController::simulationAddress ( ) const
virtual

Get our simulation address.

virtual int DtVrfRemoteController::sessionId ( ) const
virtual

Return the session ID.

virtual unsigned int DtVrfRemoteController::generateRequestId ( ) const
virtual

Generate a request id.

Used internally in functions that generate and send requests, so the callbacks can look for responses with the same ID.

virtual void DtVrfRemoteController::init ( DtExerciseConn *  exConn,
DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL,
const DtString uuidMarkingForNonVrForces = "entity-identifier",
makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList eaol = 0 
)
virtual

Initialize the remote controller.

One of these init functions must be called before any other member functions are called. If the version with the DtExerciseConn argument is called, the DtVrfRemoteController will create its own DtVrfMessageInterface and DtVrfTDLMessageInterface. If a DtReflectedEnvironmentProcessList is not passed in, the DtVrfRemoteController will create one. If the application which is instantiating the DtVrfRemoteController already has a DtVrfMessageInterface, DtVrfTDLMessageInterface or DtReflectedEnvironmentProcessList, they should be passed into init in order to avoid the overhead of maintaining extra instances of those classes.

Supply all reflected lists if you are creating them in order to populate the DtUUIDNetworkManager to map VR-Forces UUIDs to marking text. If you do not supply those items the UUID Network Manager will create them and manage them itself. Also supply the scheme of the UUID to use for non published VRF objects. The default is entity-identifier. Options are:

  • entity-identifier
  • global-identifier
  • marking-text
virtual void DtVrfRemoteController::init ( DtVrfMessageInterface msgIf,
DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL,
const DtString uuidMarkingForNonVrForces = "entity-identifier",
makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList eaol = 0,
DtVrfTDLMessageInterface vrfTDLMsgIf = 0 
)
virtual
virtual void DtVrfRemoteController::reinitialize ( DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL,
makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObjectList eaol = 0 
)
virtual

If already initialized, reinitialize with new reflected lists.

Call this routine only if the reflected lists are deleted and recreated. If they are already owned by the remote controller then this will replace that ownership.

DtRemoteEnvironmentController* DtVrfRemoteController::createRemoteEnvironmentController ( )

Instantiates a new DtRemoteEnvironmentController.

Override to install a modified controller. Called in init.

virtual const DtList& DtVrfRemoteController::backends ( ) const
virtual

Get a list of known back end simulation addresses.

virtual const DtList& DtVrfRemoteController::pendingBackends ( ) const
virtual

Get a list of back ends which are still processing the current load or save operation (if any).

virtual DtVrfBackendListener* DtVrfRemoteController::backendListener ( ) const
virtual

Get the back end listener.

virtual void DtVrfRemoteController::addBackendDiscoveryCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register backend discovery callbacks.

virtual void DtVrfRemoteController::removeBackendDiscoveryCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addBackendRemovalCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register backend removal callbacks.

virtual void DtVrfRemoteController::removeBackendRemovalCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual int DtVrfRemoteController::backendsControlState ( ) const
virtual

Get remote back ends' control state Returns DtUnknownControlType if no remote backends exist.

Returns either DtPauseControlType or DtRunControlType otherwise.

virtual int DtVrfRemoteController::numberBackendsLoaded ( ) const
virtual

Returns the number of backends loaded with a scenario.

virtual bool DtVrfRemoteController::allBackendsReady ( ) const
virtual

Returns true if all the backends have a scenario loaded and they are ready to simulate.

virtual bool DtVrfRemoteController::backendLoaded ( const DtSimulationAddress &  addr) const
virtual

Returns true if the backend specified is loaded.

virtual void DtVrfRemoteController::modifyBackEndSetting ( const DtSettingsObject setting,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Modify the value of a back end settings object.

The object's name must exist on the back end(s) receiving the modification message.

virtual void DtVrfRemoteController::requestBackEndSetting ( std::string  name,
DtBackEndSettingRequestCompleteCallbackFcn  fcn,
void *  usr = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Request the value of a back end setting from the DtVrfSimSettingsManager.

By default the request is sent to all available back ends, but it can also be targeted to individual back ends. The request is added to myBackendSettingRequestMap and when responses for all the requested back ends have been received the given DtBackEndSettingRequestCompleteCallbackFcn will be called with the given user data to indicate that the back ends can now be interrogated for the setting. NOTE: This function is a pass through to DtVrfBackendListener::requestBackEndSetting

virtual double DtVrfRemoteController::simTime ( const DtSimulationAddress *  a = NULL) const
virtual

Returns the simulation time of the specified back end.

If no back end specified, returns the first back ends simulation time

virtual void DtVrfRemoteController::setSpotReportsGloballyEnabled ( bool  enabled)
virtual

Sets the global state of spot reports - all entities set to use the global setting (which is the default) will obey this value.

virtual void DtVrfRemoteController::setTDLMessagesGloballyEnabled ( bool  enabled)
virtual

Sets the global state of sending of tdl messages - all entities set to use the global setting (which is the default) will obey this value.

virtual void DtVrfRemoteController::setEngagementReportsGloballyEnabled ( bool  enabled)
virtual

Sets the global state of engagement reports - all entities set to use the global setting (which is the default) will obey this value.

virtual void DtVrfRemoteController::setPeriodicSnapshotSettings ( bool  enabled,
double  period,
int  numberOfSnapshotsToKeep 
)
virtual

Sets whether or not period snapshots is enabled and the time period (simulation time in seconds) for marking a checkpoint.

Set period and/or numberOfSnapshotsToKeep to -1 to keep current value

virtual void DtVrfRemoteController::setDRThresholds ( double  translation,
double  rotation 
)
virtual

Set the dead reckoning settings to be used by any entities that allow gui overrides.

Note this does not set the aggregate dimension threshold.

virtual void DtVrfRemoteController::setCommModelSettings ( bool  useExternalComms)
virtual

Set the comm model settings to be used by entities that have radios.

virtual void DtVrfRemoteController::setRoadDrivingSettings ( bool  driveOnLeft)
virtual

Set which side of the road entities drive on.

virtual void DtVrfRemoteController::setAutomaticAggregationDisaggregationEnabled ( bool  enabled)
virtual

Sets whether or not automatic aggregation/disaggregation should be enabled.

Default is false.

virtual void DtVrfRemoteController::setPublishAggregateFormationRoutes ( bool  yesNo)
virtual

Sets whether or not aggregate formation-following routes should be published.

Turning off publishing of these routes can improve performance, if the aggregates are large (individual routes are generated for each member in an aggregate).

virtual void DtVrfRemoteController::setRotationThreshold ( DtReal  thresh)
virtual

Set rotation threshold (in radians) for all back ends.

virtual void DtVrfRemoteController::setTranslationThreshold ( DtReal  thresh)
virtual

Set translation threshold (in meters) for all back ends.

virtual void DtVrfRemoteController::setAggDimensionThreshold ( DtReal  thresh)
virtual

Set the aggregate dimension threshold for all back ends.

Thresh is a number between 0 and 1, indicating the percentage change that an aggregate's dimensions can undergo before causing an update to be generated.

virtual void DtVrfRemoteController::querySpatialSubdivisionConfiguration ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Request spatial subdivision configuration of a given type, from a given back end.

virtual void DtVrfRemoteController::setSpatialSubdivsionConfiguration ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
const int  spatialSubdivisionXResolution,
const int  spatialSubdivisionYResolution,
const int  spatialSubdivisionZResolution 
)
virtual

Set spatial subdivision configuration for given back end.

virtual void DtVrfRemoteController::processSpatialSubdivisionConfigurationCb ( const DtIfServerRequestResponse rsp)
virtual

Processes a spatial-subdivision-configuration callback.

processes this message if the request id is one we generated. This is not used in a normal remote control application, but in a plug in it can be overridden to change or add to processing.

virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const DtFilename &  opdname = DtFilename::nullFilename(),
const DtFilename &  physicalWorldName = DtFilename::nullFilename(),
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
virtual

Create a new scenario.

Note
Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.

If the weather command is specified that will be used as the default environment conditions for the new scenario. If not specified back end defaults will be used.

virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const std::vector< DtString > &  simulationModelSetFiles,
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
virtual

Create a new scenario from a simulation model set files.

virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const DtFilename &  opdname,
const DtFilename &  physicalWorldName,
const std::vector< DtString > &  simulationModelSetFiles,
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
virtual

Create a new scenario from a simulation model set files.

Creates and sends the load scenario message. Creates the environmental weather object on the first available back end by calling createEntity().

Called internally from new scenario methods.

virtual void DtVrfRemoteController::createSimulationObjectGroup ( const DtSimulationAddress &  ,
const DtString simulationObjectGroup,
const DtVector createPosition,
double  offsetRotation,
int  createFlags,
DtForceType  force,
bool  storedInZipFile = false 
)
virtual

Creates the contents of the simulation object group at the given geocentric position and flags.

The simulation object group to create will need to be in the same directory as the files that will be referenced to create this simulation object group on the back end where this group is to be created. If it does not exist the back end will print an error to the console. If there is a simulation object group in the object groups directory with a name <simulationObjectGroup>.sogx use that, else look in sub-directory

virtual bool DtVrfRemoteController::loadScenario ( const DtFilename &  filename,
DtBackendRemappingFcn  fcn = 0,
void *  usrRemapping = 0,
DtLoadBalancingFcn  = 0,
void *  usrBalancing = 0,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
ComponentAttachmentRule  compAttachRule = DtVrfRemoteController::AttachNone,
DtString errorString = 0 
)
virtual

Loads scenario file specified by filename.

Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

Note
Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.
Before loading a scenario you must call closeScenario and wait for all backends to close before loading or creating a new scenario. This is so any scenario data that might exist in the backend is cleaned up. NOT calling closeScenario before a load or a new can leave the backend in an undefined state. This is especially important to do for distributed scenarios.

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

If simulation model set files are not blank, then, if the scenario loaded does not have simulation model set files associated with load, sets them to the values in the vector.

virtual bool DtVrfRemoteController::loadScenario ( const DtScenarioLoadInformation ,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
DtString errorString = 0 
)
virtual
virtual bool DtVrfRemoteController::loadScenario ( const DtScenario scenario,
DtBackendRemappingFcn  fcn = 0,
void *  usrRemapping = 0,
DtLoadBalancingFcn  = 0,
void *  usrBalancing = 0,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
DtString errorString = 0 
)
virtual

Loads scenario specified by DtScenario.

Parses and transfers configuration files to the appro- private backends based on the info in scenario; Then tells backends to load the relevant files. NOTES: Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.

virtual bool DtVrfRemoteController::sendLoadScenarioMessage ( const DtScenario scenario,
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  import = false,
bool  isOrbatEnabled = false,
bool  createGlobalEnv = false,
bool  createGlobalDynamicTerrain = false 
) const
virtual

Send a load scenario message based on the information inside scenario.

Assumes that backends already have the relevant files for loading. If the scenario does not contain an .oob or .pln file, calling this method creates a new scenario.

Set isOrbatEnabled to true if the back-end is enabled to be an orbat server. Only one back-end should be an orbat server during a scenario as, if there are multiple, the front-end could receive redundant messages.

Set createGlobalEnv to true if the back-end should create the global environment. Only one back-end should create a global environment during a scenario as, if there are multiple, the front-end could receive redundant messages.

Set createGlobalDynamicTerrain to true if the back-end should create the global dynamic terrain server. Only one back-end should be a global dynamic terrain server during a scenario as, if there are multiple, the front-end could receive redundant messages.

virtual DtIfLoadScenario* DtVrfRemoteController::createLoadScenarioMessage ( ) const
virtual

Called by sendLoadScenarioMessage to create an instance of DtIfLoadScenario.

The caller is responsible for deleting the returned pointer.

virtual void DtVrfRemoteController::addBackendLoadedCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked whenever a backend has finished loading a scenario.

virtual void DtVrfRemoteController::removeBackendLoadedCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioLoadedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely loaded.

virtual void DtVrfRemoteController::removeScenarioLoadedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual
virtual bool DtVrfRemoteController::rollbackToSnapshot ( double  simTime)
virtual

Rolls back to the current snapshot given the scenario time to roll back to.

If this is a multi-backend simulation, this code will not immediately do the rollback. It will instead issue a message to all the back ends to remove all objects in the simulation, and, when the remote controller is notified that the back ends have processed this message, then it will issue the rollback command. Will return false if already in the process of a rollback

virtual bool DtVrfRemoteController::importScenario ( const DtScenario ,
const DtSimulationAddress &  addr,
DtString errorString = 0 
)
virtual

Imports a scenario into the specified back end.

DtSimSendToAll is not acceptable. A scenario can only be imported onto a single backend.

virtual bool DtVrfRemoteController::importScenario ( const DtFilename &  ,
const DtSimulationAddress &  addr,
DtString errorString = 0 
)
virtual
virtual bool DtVrfRemoteController::importScenarioDescriptionFile ( const DtFilename &  file,
DtSimulationAddress  ,
const DtString format,
const std::map< std::string, std::string > &  importData 
)
virtual

Imports the specified scenario description file into the given back end.

If DtSimSendToAll is given as the back end the routine will return false, as it also will if the scenario description file does not exist. This routine does not check to be sure if the msdl file is a valid file before sending over the tcp socket to the requested back end. It will also send a udp message with the msdl file to import

virtual void DtVrfRemoteController::setMaxWaitLoadTime ( DtTime  t)
virtual

Set the maximum amount of time to wait for backends to respond to a 'load' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual DtTime DtVrfRemoteController::maxWaitLoadTime ( ) const
virtual
virtual bool DtVrfRemoteController::exportScenarioDescriptionFile ( const DtFilename &  file,
DtSimulationAddress  ,
const DtString format,
const std::map< std::string, std::string > &  importData 
)
virtual

Exports the specified scenario description file by requesting the specified back end to create the export file and send that file back to this front-end.

If DtSimulationAddress is DtSimSendToAll false will be returned from this method.

virtual DtString DtVrfRemoteController::guiTerrainDatabaseFilename ( ) const
virtual

Accessor for front end Gui terrain database.

If the myGuiTerrainDatabase is empty and there is a scenario loaded, returns the Gui terrain database of the loaded scenario

virtual void DtVrfRemoteController::setGuiTerrainDatabaseFilename ( DtString  db)
virtual
virtual const DtRwKeyValueList& DtVrfRemoteController::scenarioData ( ) const
virtual

Set the scenario data used to save with the scenario.

virtual void DtVrfRemoteController::setScenarioData ( const DtRwKeyValueList )
virtual
virtual bool DtVrfRemoteController::isSavingScenario ( ) const
virtual

Returns true if a scenario is being saved.

virtual bool DtVrfRemoteController::saveScenario ( const DtFilename &  saveName,
DtPreserveMappingsFcn  fcn = 0,
void *  userData = 0,
DtString error = 0,
bool  saveToZip = false,
bool  deleteExistingZip = true,
double  simTime = -1 
)
virtual

Save a scenario.

Note
Calling this function replaces any previous call to saveScenario. Also, this function does not send a message if no backends are running in our session. If the scenario was remapped during load by a DtBackendRemappingFcn, an optional DtPreserveMappingsFcn is called to determine if the original mappings should be preserved (default), or if the current mappings should be saved. To get notification when the save is complete, call addScenarioSavedCallback. If delete existing zip is false files will be added with the same name to the zip file.

If simTime is not -1 will attempt to save an in memory snapshot at the given sim time (or the closest one to it)

Returns
bool indicates if the save message was sent
Return values
truethe save message was successfully sent to the back end
falseeither a file or directory was not writable or the DtPreserveMappingsFcn returned false.
virtual bool DtVrfRemoteController::save ( DtString sError)
virtual

Write out scenario files.

This function will compose the saved backend data that we have received so far. Ideally, this is only invoked when all backends have responded to a save request. Users generally should never call this function. If there is an error saving, sError will contain an error condition.

virtual bool DtVrfRemoteController::saveScenarioCheckpoint ( const DtFilename &  filename,
double  simTime,
bool  saveToZip = false,
DtString saveError = 0 
)
virtual

Saves a scenario checkpoint.

This call will send a message to all back ends to save the in memory snapshot at the given simulation time. If a checkpoint at the given simulation time does not exist in any of the back ends the checkpoint will still be saved to disk. This method will return false if a checkpoint (or a save) is currently in progress

virtual void DtVrfRemoteController::takeSnapshot ( DtSimulationAddress  addr = DtSimSendToAll)
virtual

Takes a snapshot of the scenario in the various back ends in memory.

This will not return any saved scenario files to the front-end

virtual void DtVrfRemoteController::takeBaseSnapshot ( )
virtual

Takes a snapshot and makes it the base snapshot that can be rewound to by the rewind to scenario start button.

Sent to all back ends. The old base snapshot simply becomes a snapshot

virtual void DtVrfRemoteController::createGlobalDynamicTerrain ( bool  )
virtual

Create/destroy global dynamic terrain (if not already)

virtual void DtVrfRemoteController::createGlobalEnvironment ( bool  )
virtual

Create/destroy global environment (if not already)

virtual void DtVrfRemoteController::sendSaveScenarioMessage ( const DtSimulationAddress &  addr = DtSimSendToAll,
double  simTime = -1,
const DtFilename &  saveScenarioFilename = "" 
) const
virtual

Send a save scenario message.

Use this function to send a save message to a single backend. Will send a save message to save an in memory snapshot if simTime is >= 0 rather than a normal save message

virtual void DtVrfRemoteController::addBackendSavedCallback ( DtBackendSaveCallbackFcn  fcn,
void *  usr 
)
virtual

Register a callback to be invoked whenever a backend has finished saving a scenario.

virtual void DtVrfRemoteController::removeBackendSavedCallback ( DtBackendSaveCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioSavedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely saved.

Deprecated:
starting in VRF 3.12; this does not provide success or failure information about the save to the callback.
virtual void DtVrfRemoteController::removeScenarioSavedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioAboutToBeSavedCallback ( DtScenarioAboutToBeSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario file is about to be saved.

virtual void DtVrfRemoteController::removeScenarioAboutToBeSavedCallback ( DtScenarioAboutToBeSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioExportedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely exported.

virtual void DtVrfRemoteController::removeScenarioExportedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addCheckpointSavedCallback ( DtCheckpointSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely checkpointed.

virtual void DtVrfRemoteController::removeCheckpointSavedCallback ( DtCheckpointSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioSavedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely saved.

This interface is preferred, since the callback interface it exposes allows the calling code to determine whether the save succeeded.

virtual void DtVrfRemoteController::removeScenarioSavedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::setOpdSaveName ( const DtFilename &  f)
virtual

Get/Set the Object Parameters Database filename to be written to the scenario file during a save.

Backends will load their own opd file if a scenario file does not specify one. This value is automatically set by a 'newScenario' or 'loadScenario' call. Users should only set the opd file name if they want to specify a file that is different from the one that was loaded during 'new' or 'load'.

virtual const DtFilename& DtVrfRemoteController::opdSaveName ( ) const
virtual
virtual void DtVrfRemoteController::setMaxWaitSaveTime ( DtTime  t)
virtual

Set the maximum amount of time to wait for backends to respond to a 'save' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual DtTime DtVrfRemoteController::maxWaitSaveTime ( ) const
virtual
virtual void DtVrfRemoteController::setOverlayFilename ( const DtFilename &  overlay)
virtual

If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::overlayFilename ( ) const
virtual
virtual void DtVrfRemoteController::setHostilityFilename ( const DtFilename &  hostilty)
virtual

If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::hostilityFilename ( ) const
virtual
virtual void DtVrfRemoteController::setScenarioExtrasFilename ( const DtFilename &  extras)
virtual
virtual const DtFilename& DtVrfRemoteController::scenarioExtrasFilename ( ) const
virtual
virtual void DtVrfRemoteController::setSelectionGroupsFilename ( const DtFilename &  sel)
virtual

If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::selectionGroupsFilename ( ) const
virtual
virtual void DtVrfRemoteController::setSymbolMapFilename ( const DtFilename &  overlay)
virtual

If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default.

virtual const DtFilename& DtVrfRemoteController::symbolMapFilename ( ) const
virtual
virtual void DtVrfRemoteController::setCreateMenuFilename ( const DtFilename &  overlay)
virtual

If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default.

virtual const DtFilename& DtVrfRemoteController::createMenuFilename ( ) const
virtual
virtual void DtVrfRemoteController::saveParameterDb ( const DtFilename &  filename)
virtual

Save currently loaded parameter database in backend to file.

virtual bool DtVrfRemoteController::saveSimulationObjectGroup ( const DtFilename &  smsDirectory,
const DtString groupName,
const DtString groupDescription,
int  creationFlags,
const DtSimulationAddress &  addr,
const std::map< DtString, DtString > &  additionalInformation = std::map< DtStringDtString >(),
DtString saveError = 0,
bool  saveAsZip = false 
)
virtual

Saves a simulation object group with the contents of the items specified on the given back end (DtSimSendToAll is not valid).

Will save the results in the given simulation model set directory. Will return false if the address is DtSimSendToAll or already in the process of saving or creating a simulation object group. The information will be saved on the back end that this is sent to.

virtual void DtVrfRemoteController::closeScenario ( const DtSimulationAddress &  addr = DtSimSendToAll,
const DtFilename &  databaseToOpen = "",
bool  forceCloseAll = false 
)
virtual

Close the current scenario.

Hint that if the back end has the current database opened keep it open. Normally, if the scenario is closed and there are snapshots and the database to open is the same database opened in the back end the database will stay open. If you want to force a closing of everything in the case of snapshots being present, pass the forceCloseAll flag as true. If the database to open is supplied and the forceCloseAll flag is true, only the snapshots will be removed if the database to open is the same database that is currently opened.

virtual DtTime DtVrfRemoteController::scenarioSimTimeForSave ( )
virtual

This routine will return the simulation time based upon the saved messages that should be saved in the scenario file.

virtual void DtVrfRemoteController::setTerrainDatabaseFilename ( DtScenario scen)
virtual

This routine will set the terrain database filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's terrain database filename.

virtual void DtVrfRemoteController::setParameterDatabaseFilename ( DtScenario scen)
virtual

This routine will set the parameter database filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's parameter database filename.

virtual void DtVrfRemoteController::setPhysicalWorldFilename ( DtScenario scen)
virtual

This routine will set the physical world filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's parameter database filename.

virtual void DtVrfRemoteController::setTimeMultiplier ( DtScenario scen)
virtual

This routine will set the time multiplier into the supplied scenario.

It will warn if any of the backends do not match the first backend's time multiplier.

virtual void DtVrfRemoteController::setAutoReorganize ( DtScenario scen)
virtual

This routine will set the auto reorganize flag into the supplied scenario.

It will warn if any of the backends do not match the first backend's auto reorganize flag.

virtual void DtVrfRemoteController::setRandomNumberSeed ( DtScenario scen)
virtual

This routine will set the random number seed into the supplied scenario.

It will warn if any of the backends do not match the first backend's random number seed.

virtual void DtVrfRemoteController::setFrameRateMode ( DtScenario scen)
virtual

This routine will set the frame rate mode into the supplied scenario.

It will warn if any of the backends do not match the first backend's frame rate mode.

virtual void DtVrfRemoteController::setFrameDeltaTime ( DtScenario scen)
virtual

This routine will set the frame delta time into the supplied scenario.

It will warn if any of the backends do not match the first backend's frame delta time.

virtual void DtVrfRemoteController::setExerciseStartTime ( DtScenario scen)
virtual

This routine will set the exercise start time into the supplied scenario.

It will warn if any of the backends do not match the first backend's exercise start time.

virtual void DtVrfRemoteController::setExerciseStartDateAndTime ( DtScenario scen)
virtual

This routine will set the exercise start day and time into the supplied scenario.

It will warn if any of the backends do not match the first backend's exercise start time.

virtual void DtVrfRemoteController::run ( bool  useStartStopInteraction = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

If useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::pause ( bool  useStartStopInteraction = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual
virtual void DtVrfRemoteController::rewind ( )
virtual

For the rewind, if there is more then one backend with a loaded scenario, will instead close and reload the scenario.

virtual void DtVrfRemoteController::exit ( ) const
virtual
virtual void DtVrfRemoteController::step ( ) const
virtual
virtual void DtVrfRemoteController::setTimeMultiplier ( double  multiplier) const
virtual
virtual void DtVrfRemoteController::loadedScenario ( const DtSimulationAddress &  addr,
unsigned int  requestId,
const DtU32 &  capabilities 
)
virtual

Internal function invoked when a backend notifies us that it has received and loaded the given scenario information.

Users should never need to call this function.

virtual void DtVrfRemoteController::initializeGlobalEnvironment ( const DtSimulationAddress &  environmentSimBackend = DtSimSendToAll)
virtual

Starts the environment simulation on one of the available simulation engines.

Must be called before setting environment state settings in the DtRemoteEnvironmentController. If DtSimSendToAll passed, then an arbitrary sim engine is chosen to simulate the environment. Users should never need to call this function.

virtual void DtVrfRemoteController::initializeGlobalDynamicTerrain ( const DtSimulationAddress &  environmentSimBackend = DtSimSendToAll)
virtual

Starts the global dynamic terrain controller on one of the available simulation engines.

If DtSimSendToAll passed, then an arbitrary sim engine is chosen to simulate the process dynamic terrain changes. Users should never need to call this function.

virtual void DtVrfRemoteController::save ( const DtSimulationAddress &  addr,
DtIfSaveComplete s 
)
virtual

Invoked when a backend notifies us that it has saved and sent its scenario information.

The information in 's' is saved to be processed later. Users generally should never call this function.

virtual void DtVrfRemoteController::processSaveMessages ( )
virtual

Called before the scenario is saved, this routine will go through the saved save interface messages and store scenario data common to all servers.

virtual void DtVrfRemoteController::exported ( const DtSimulationAddress &  addr,
DtIfExportComplete s 
)
virtual

Invoked when a backend notifies us that it has exported and sent its scenario information.

Since only one backend is processing the export, file can be dealt with immediately

virtual void DtVrfRemoteController::completeExport ( )
virtual

Called when everything is available to complete the export process.

virtual void DtVrfRemoteController::savedScenario ( const DtSimulationAddress &  addr,
DtSaveResult  result,
unsigned int  requestId,
bool  isCheckpointSave = false,
double  checkpointSimTime = -1 
)
virtual

Internal function invoked when a backend notifies us that it has saved and sent its scenario information.

Calls user callbacks. Users generally should never call this function.

virtual void DtVrfRemoteController::doPendingSaveWork ( )
virtual

Perform periodic processing that's needed for saving a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::doPendingExportWork ( )
virtual

Perform periodic processing that's needed for exporting a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::doPendingLoadWork ( )
virtual

Perform periodic processing that's needed for loading a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::createWaypoint ( const DtVector geocentricPosition,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new waypoint.

Note that the name must be unique (if specified) and that the position needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createWaypoint ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtVector geocentricPosition,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new waypoint.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyWaypoint ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtVector geocentricPosition = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given waypoint.

virtual void DtVrfRemoteController::createRoute ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new route.

Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createRoute ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new route.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyRoute ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  vertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given route.

virtual void DtVrfRemoteController::createPhaseLine ( const DtVector dbPoint1,
const DtVector dbPoint2,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new phase line.

Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createPhaseLine ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtVector dbPoint1,
const DtVector dbPoint2,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new phase line.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyPhaseLine ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtVector newDbPoint1 = 0,
DtVector newDbPoint2 = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given phase line.

virtual void DtVrfRemoteController::createControlArea ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new control area.

Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. Also, the vertices should form a convex polygon! This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createControlArea ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new control area.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyControlArea ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

modify the given control area

virtual void DtVrfRemoteController::createObstacle ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new obstacle.

Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. Also, the vertices should form a convex polygon! This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createObstacle ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new obstacle.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyObstacle ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

modify the given obstacle

virtual void DtVrfRemoteController::createDisaggregationArea ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).

Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createDisaggregationArea ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyDisaggregationArea ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify given disaggregation area.

virtual void DtVrfRemoteController::createOverlayObject ( const DtEntityType &  type,
const DtList &  vertices,
const DtForceType &  force,
const DtString name,
const DtString label,
int  color,
const DtString parentName,
bool  projection,
bool  closedFigure,
const DtAppearance &  appearance = DtAppearance::nullAppearance(),
const DtUUID attachTo = DtUUID::nullUUID(),
char userData = 0,
int  dataSize = 0,
const std::map< std::string, std::string > &  extendedData = std::map< std::string, std::string >(),
const std::map< int, DtString > &  extendedLabels = std::map< intDtString >(),
DtOverlayCreatedCallbackFcn  fcn = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
unsigned int  rId = 0,
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0,
const DtUUID uuidForCreation = DtUUID::nullUUID() 
)
virtual

Create an overlay object.

Overlay objects are considered objects that both be used in a simulated environment (control objects as listed above) and objects that can be used to annotate a scenario as one might do with an overlay on an overhead projector.

Creating an overlay object is a two step process. The first step is to create the object, and the second is to apply modifications to that created object (color, parent). This call will do both. It will send the create message, wait for the object to be created, and then send the modify message for that object. If rId is non zero will use that generated id rather than a newly created one

virtual void DtVrfRemoteController::processOverlayObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfOverlayObjectModify modifications 
)
virtual

processes a overlay-object-created callback.

processes this message if the request id is one we generated. Override to change or add to processing.

virtual void DtVrfRemoteController::setPhysicalLineWidth ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  w 
)
virtual

Sets the physical line width of the object, if the object can use it.

virtual void DtVrfRemoteController::setPhysicalLineHeight ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  h 
)
virtual

Sets the physical line height of the object, if the object can use it.

virtual void DtVrfRemoteController::setCeiling ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  c 
)
virtual

Sets the ceiling of the object, if the object can use it.

virtual void DtVrfRemoteController::sendVrfOverlayObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
int  color,
const DtString parentName,
const DtUUID attachTo,
bool  keepExistingAttachment = true,
char userData = 0,
int  len = 0 
) const
virtual

This function is only used to modify information that is specific to an overlay object (waypoint, route, overlay objects, etc.)

virtual void DtVrfRemoteController::createIndirectArtillery ( const DtVrfIndirectArtilleryObjectModify params,
const DtSimulationAddress &  addr 
)
virtual

Create an indirect fire object.

virtual void DtVrfRemoteController::processIndirectArtilleryObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfIndirectArtilleryObjectModify modifications 
)
virtual

processes a indirect-artillery-created callback.

processes this message if the request id is one we generated. Override to change or add to processing.

virtual void DtVrfRemoteController::sendVrfIndirectArtilleryObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
const DtVrfIndirectArtilleryObjectModify mod 
) const
virtual
virtual void DtVrfRemoteController::createObject ( const DtEntityType &  type,
DtForceType  force,
DtList *  vertices,
const DtString name,
const DtSimulationAddress &  addr,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Very simple call that will create an object (entity or overlay) with a heading of 0 and the supplied points.

virtual void DtVrfRemoteController::objectCreated ( unsigned int  requestId,
const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid 
)
virtual

Internal function that is called when an object is created.

Users should not need to call this function. Calls any user registered callbacks.

virtual void DtVrfRemoteController::deleteObject ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Delete VR-Force's object by name.

virtual void DtVrfRemoteController::createEntity ( const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  groundClamp = true,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create a new entity.

virtual void DtVrfRemoteController::createEntity ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  groundClamp = true,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create a new entity.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::createAggregate ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName,
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual
virtual void DtVrfRemoteController::createAggregate ( const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
DtList *  entityNames = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated,
unsigned int  requestId = 0,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

Create an aggregate.

virtual void DtVrfRemoteController::createAggregate ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
DtList *  entityNames = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

Create an aggregate.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::addToOrganization ( const DtUUID objectId,
const DtUUID newSuperiorId,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Adds the specified object to as a subordinate to the specified superior.

Object will be detached from any superior it currently belongs to first.

virtual void DtVrfRemoteController::addToForceLevelOrganization ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Adds the specified object as a subordinate to the Force Level aggregate corresponding to the objects force type.

It will be detached from any superior it currently belongs to first.

virtual void DtVrfRemoteController::removeFromOrganization ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Removes the specified object from whatever aggregate it is a part of and leaves it with no superior.

virtual void DtVrfRemoteController::setLabel ( const DtUUID uuid,
const DtString label,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set label of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setOverlayParent ( const DtUUID uuid,
const DtString label,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sets the overlay parent of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. Calls down to sendVrfModifyMessage.

virtual void DtVrfRemoteController::setAltitude ( const DtUUID uuid,
double  altitude,
bool  aboveGroundLevel = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set altitude (in meters) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setLocation ( const DtUUID uuid,
DtVector  coord,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set location (geocentric coordinates) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setAppearance ( const DtUUID uuid,
int  appearance,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set appearance of entity.

virtual void DtVrfRemoteController::setCapabilities ( const DtUUID uuid,
int  capabilities,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set capabilities of entity.

virtual void DtVrfRemoteController::setHeading ( const DtUUID uuid,
double  degrees,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set heading (in degrees) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setForce ( const DtUUID uuid,
DtForceType  force,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set force of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::requestSpotReports ( const DtUUID uuid,
int  onOff,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Spot reports of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. Requests that spot reports for the specified entity be sent or turned off.

virtual void DtVrfRemoteController::requestSendTDLMessages ( const DtUUID uuid,
int  onOff,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

TDL Messaging of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::requestEngagementReports ( const DtUUID uuid,
bool  onOff,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Engagement reports of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. Requests that engagement reports for the specified entity be sent or turned off

virtual void DtVrfRemoteController::setResource ( const DtUUID uuid,
const char resourceType,
double  value,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set resource of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setRulesOfEngagement ( const DtUUID uuid,
const char rulesType,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set rules of engagement of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. See setEngRules.h for a list of pre-defined rules of engagement types that can be passed as the rulesType.

virtual void DtVrfRemoteController::setSectorOfResponsibility ( const DtUUID uuid,
double  center,
double  size,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set sector of responsibility (center and size are in degrees) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setSpeed ( const DtUUID uuid,
double  speed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set ordered speed (in meters per second) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setCurrentSpeed ( const DtUUID uuid,
double  speed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set current speed (in meters per second) of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setTarget ( const DtUUID uuid,
const DtUUID target,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set target of an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setSuperior ( const DtUUID uuid,
const DtUUID superior,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set superior of an existing entity.

If superior is blank will set superior as force of the current item

virtual void DtVrfRemoteController::setTaskedBySuperior ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set tasked by superior of an existing entity.

virtual void DtVrfRemoteController::setConcealed ( const DtUUID uuid,
bool  yes,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set concealed for an existing entity or aggregate.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setEmitter ( const DtUUID uuid,
int  emitterId,
bool  on,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set emitter.

virtual void DtVrfRemoteController::setIff ( const DtUUID uuid,
bool  mode1on,
int  mode1code,
bool  mode2on,
int  mode2code,
bool  mode3on,
int  mode3code,
bool  mode4on,
int  mode4code,
DtIffAtcNavaidsAltParm4  altParm4,
bool  modeCon,
bool  useAltModeC,
bool  modeSon,
bool  emergency,
bool  flash,
bool  sti,
bool  modeSTcasI,
int  pin,
bool  mode5LevelSelection,
unsigned int  messageFormatsPresent,
unsigned int  nationalOrigin,
unsigned int  navigationSource,
unsigned int  figureOfMerit,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set iff.

virtual void DtVrfRemoteController::restore ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Restore to start state.

virtual void DtVrfRemoteController::setDestroyed ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sets the damage state of an existing entity or aggregate to destroyed.

Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

virtual void DtVrfRemoteController::setLifeformWeaponState ( const DtUUID uuid,
DtWeaponState  weapon,
const DtSimulationAddress &  addr 
) const
virtual

Set lifeform weapon.

If 'name' does not correspond to a lifeform entity, making this call has no effect.

virtual void DtVrfRemoteController::setLifeformPosture ( const DtUUID uuid,
DtLifeformState  posture,
const DtSimulationAddress &  addr 
) const
virtual

Set lifeform posture.

If 'name' does not correspond to a lifeform entity, making this call has no effect.

virtual void DtVrfRemoteController::setAggregateFormation ( const DtUUID leader,
const DtString formationName,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set an aggregate formation.

If 'leader' is not an aggregate leader making this call will have no effect.

virtual void DtVrfRemoteController::reorganizeAggregate ( const DtUUID leader,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Reorganize the aggregate.

This function is only useful when automatic reorganization is not enabled. If 'leader' is not an aggregate leader making this call will have no effect.

virtual void DtVrfRemoteController::disaggregateEntity ( const DtUUID entity,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Disaggregate the entity, resulting in its DtAggregateState to become DtDisaggregated, and simulation of its subordinates as distinct entities.

virtual void DtVrfRemoteController::aggregateEntity ( const DtUUID entity,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Aggregate the entity, resulting in its DtAggregateState to become DtAggregated, with subordinates not simulated as distinct entities.

virtual void DtVrfRemoteController::sendSetDataMsg ( const DtUUID recipient,
DtSetDataRequest msg,
const DtSimulationAddress &  addr 
) const
virtual

General set data message.

The recipient is the name of the object to receive the set message.

virtual void DtVrfRemoteController::sendVrfObjectCreateMsg ( const DtSimulationAddress &  addr,
unsigned int  requestId,
const DtString name,
const DtObjectType type,
const DtList &  vertices,
const DtString label,
const DtAppearance &  appearance,
DtForceType  force,
bool  projection,
bool  closedFigure,
DtReal  heading,
bool  createSubObjects,
bool  clampToGroundFlag = true,
const DtString initialFormation = DtString::nullString(),
DtAggregateState  initialAggregateState = DtDisaggregated,
const DtString userData = DtString::nullString(),
const std::map< std::string, std::string > &  extendedData = std::map< std::string, std::string >(),
const std::map< int, DtString > &  extendedLabels = std::map< intDtString >(),
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0,
const DtString overlayParent = "",
const DtUUID uuidForCreation = DtUUID::nullUUID() 
) const
virtual

This function can be used to create vrf objects that cannot be created using the more specific methods above.

In general, users should not need to call this. Note that the userData is only valid for objects that are environmental (control) objects

virtual void DtVrfRemoteController::sendVrfObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
DtString name = 0,
DtList *  vertices = 0,
DtForceType *  force = 0,
DtReal *  heading = 0,
DtString label = 0,
DtAppearance *  appearance = 0,
DtString overlayParent = 0,
DtString userData = 0 
) const
virtual

This function can be used to modify vrf objects that cannot be created using the more specific methods above.

Please note that calling this function for entity values will not work in most cases. Instead, the SetData family of methods should be used. In general, users should not need to call this.

virtual void DtVrfRemoteController::sendTaskMsg ( const DtUUID recipient,
DtSimTask task,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a general task message to the entity/aggregate specified by 'recipient' argument, which is the name of the entity/aggregate to receive the task message.

virtual void DtVrfRemoteController::moveAlongRoute ( const DtUUID entityName,
const DtUUID routeName,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'move along route' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::moveToWaypoint ( const DtUUID entityName,
const DtUUID waypoint,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'move to waypoint' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::moveToLocation ( const DtUUID entityName,
const DtVector destinationLocation,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'move to location' task to the entity/aggregate specified by 'name'.

destinationLocation is specified in geocentric coordinates.

virtual void DtVrfRemoteController::patrolBetweenWaypoints ( const DtUUID uuid,
const DtUUID waypoint1,
const DtUUID waypoint2,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'patrol waypoints' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::patrolAlongRoute ( const DtUUID uuid,
const DtUUID route,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'patrol route' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::followEntity ( const DtUUID uuid,
const DtUUID leader,
const DtVector offset,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'follow' task to the given entity/aggregate.

The vrf object specified by 'name' will follow 'leader' at the given offset . The offset should be specified in meters. To specify an offset in front, to the right, or below, use a negative sign for x, y, or z.

virtual void DtVrfRemoteController::wait ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::waitDuration ( const DtUUID uuid,
DtTime  duration,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait X seconds' task to the entity/aggregate specified by 'name'.

Parameters
addrseconds
virtual void DtVrfRemoteController::waitElapsed ( const DtUUID uuid,
DtTime  elapsed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait until the simulation time has increased by X' task to the entity/aggregate specified by 'name'.

Parameters
addrsimulation time
virtual void DtVrfRemoteController::skipTask ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate to skip the current task.

virtual void DtVrfRemoteController::restartPlan ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate corresponding to the given entity to abandon its plan.

virtual void DtVrfRemoteController::assignPlanByName ( const DtUUID uuid,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Assign a plan to the echelon ID held by the entity/aggregate corresponding to the given entity name.

If plan fails, will contains failure code. Currently if status is 0, it is because an individual statement was too long to add retsStmt will contain the string representation of the statement that to encode.

Note
As of VR-Forces 3.10, assigning plans by echelon ID is no longer supported. Assign all plans by name.
virtual void DtVrfRemoteController::assignMultiplePlanByName ( const std::vector< DtUUID > &  entities,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Same as assignPlanByName, except send DtMultiplePlanSet message.

virtual void DtVrfRemoteController::requestPlan ( const DtUUID uuid,
bool  addStmtCallback = true,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a message to all VRF sim engines requesting plan updates messages for the specified entity name.

You must have a plan callback registered for this entity to receive the plan message from the sim engine.

virtual void DtVrfRemoteController::subscribePlan ( const DtUUID uuid,
DtPlanCallbackFcn  fn,
void *  usr,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Requests plan messages from the sim engine for a particular entity, and registers a callback to receive the messages.

The given callback will be invoked whenever a relevant plan message arrives.

virtual void DtVrfRemoteController::receivedPlan ( const DtUUID uuid,
bool  isGlobal,
const std::vector< DtSimStatement * > &  statements 
)
virtual

Internal function invoked when a plan is received.

This calls functions registered in the subscribePlan function. Users should not need to call this function.

virtual void DtVrfRemoteController::requestMultiplePlan ( const std::vector< DtUUID > &  entities,
DtMultiplePlanRequestCallbackFcn  fcn,
void *  usr,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Send a message to the specified backend (or all) to check to see if all locally simulated entities contain the same plan.

If they do, a response is sent back with the plan. If they do not, a response is sent back with a flag stating that the plans are not common (rather than an empty plan

virtual void DtVrfRemoteController::requestMultiplePlan ( const std::vector< DtUUID > &  entities,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual
virtual void DtVrfRemoteController::processReceivedMultiPlan ( DtIfMultiplePlanResponse msg)
virtual

processes a multi-plan received callback.

processes this message if the request id is one we generated. Override to change or add to processing.

virtual void DtVrfRemoteController::unsubscribePlan ( const DtUUID uuid,
DtPlanCallbackFcn  fn,
void *  usr 
)
virtual

Removes a plan message callback function registered with subscribePlan.

virtual void DtVrfRemoteController::unsubscribeAllPlans ( )
virtual

Unregisters all plan message callbacks.

Both entity/aggregate as well as global plan subscriptions are removed.

virtual void DtVrfRemoteController::addPlanStatementCallback ( const DtUUID uuid,
DtPlanStatementCallbackFcn  callback,
void *  usrData 
)
virtual

Register callback for an entity's or aggregate's current statement.

requestPlan() or subscribePlan() must be called for the same entity for the callback to be invoked.

virtual void DtVrfRemoteController::removePlanStatementCallback ( const DtUUID uuid,
DtPlanStatementCallbackFcn  callback,
void *  usrData 
)
virtual

Unregister callback for an entity's or aggregate's current statement.

virtual void DtVrfRemoteController::removeAllPlanStatementCallbacks ( )
virtual

Unregister current statement callbacks for all entities/aggregates and global plans.

virtual void DtVrfRemoteController::receivedPlanStmt ( const DtUUID uuid,
bool  isGlobal,
DtPlanStatus  planStatus 
)
virtual

Internal function invoked when we receive a current statement message.

This message also contains information about whether or not the plan has been completed. This method invokes either current statement callbacks or plan complete callbacks. Users should not have to call this function.

virtual void DtVrfRemoteController::addPlanCompleteCallback ( const DtUUID uuid,
DtPlanCompleteCallbackFcn  callback,
void *  usrData 
)
virtual

Register callback for an entity's or aggregate's plan completion.

requestPlan() or subscribePlan() must be called for the same entity for the callback to be invoked.

virtual void DtVrfRemoteController::removePlanCompleteCallback ( const DtUUID uuid,
DtPlanCompleteCallbackFcn  callback,
void *  usrData 
)
virtual

Unregister callback for an entity's or aggregate's plan completion.

virtual void DtVrfRemoteController::removeAllPlanCompleteCallbacks ( )
virtual

Unregister plan completion callbacks for all entities/aggregates and global plans.

virtual void DtVrfRemoteController::abandonPlan ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate corresponding to the given entity to abandon its plan.

virtual void DtVrfRemoteController::requestGlobalPlansList ( const DtSimulationAddress &  addr)
virtual

Requests the list of all global plans.

virtual void DtVrfRemoteController::assignGlobalPlan ( const DtString name,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Assigns a global plan of the specified name to the sim engine specified in addr.

If addr is DtSimSendToAll, the first sim engine is chosen. If plan fails, will contains failure code. Currently if status is 0, it is because an individual statement was too long to add retsStmt will contain the string representation of the statement that to encode.

Note
As of VR-Forces 3.10, assigning plans by echelon ID is no longer supported. Assign all plans by name.
virtual void DtVrfRemoteController::deleteGlobalPlan ( const DtUUID name,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Deletes any global plan matching the specified name.

virtual void DtVrfRemoteController::launchGlobalPlan ( const DtUUID ,
const DtSimulationAddress &  addr 
) const
virtual

Launches the global plan. If already launched then this will have no effect.

virtual DtVrfObjectMessageExecutive* DtVrfRemoteController::objectMessageExecutive ( )
virtual

Register callbacks with this message executive to receive messages sent from entities and objects to the GUI.

Only messages addressed to DtVrfMessageFrontEndAddress will be received in these callbacks.

virtual void DtVrfRemoteController::sendMessageToObject ( DtVrfObjectMessage objectMessage,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sends the specified message to the entity identified in the message receiver field.

The transmitter field of the message is filled in by this class to be DtVrfObjectMessageFrontEndAddress. Normally, the default simulation address of DtSimSendToAll should be used.

virtual DtRadioMessageListener* DtVrfRemoteController::radioMessageListener ( )
virtual

Returns a pointer to the radio message listener.

Callbacks can be registered with this listener to pick up radio messages that are send by VR-Forces objects.

Note
Callbacks are invoked on sending of the radios messages, which does not necessarily mean the message was received.
virtual void DtVrfRemoteController::embarkObject ( const DtSimulationAddress &  addr,
const DtUUID entity,
const DtUUID ontoEntity,
bool  loadOverride = false,
const DtVector loadOverridePosition = DtVector::zero() 
)
virtual

These routines will send interface messages to tell the back end to embark or disembark the specified objects.

All information sent is by object name. If loadOverride is false, then the system will use to occupancy director to determine where to embark the entity, else it will use the offset (in body coordinates) supplied by the user

virtual void DtVrfRemoteController::disembarkObject ( const DtSimulationAddress &  addr,
const DtUUID entity 
)
virtual
virtual void DtVrfRemoteController::disembarkAllObjects ( const DtSimulationAddress &  addr,
const DtUUID entity 
)
virtual
virtual void DtVrfRemoteController::requestTasksAndSetsFor ( const DtSimulationAddress &  addr,
const DtUUID entityName 
)
virtual

Requests the tasks and sets that are available for this object, using the DtIfCapableTaskAndSetQuery.

The response to this message will be a DtIfCapableTaskAndSetResponse message

virtual void DtVrfRemoteController::requestTasksAndSetsFor ( const std::vector< DtUUID > &  names)
virtual

Requests the tasks and sets that are available for the list of named objects.

virtual void DtVrfRemoteController::requestDIGuyAppearancesAndAnimations ( const DtSimulationAddress &  addr,
const DtUUID entityName 
)
virtual

Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with this entity.

virtual void DtVrfRemoteController::requestDIGuyAppearancesAndAnimations ( const std::vector< DtUUID > &  names)
virtual

Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with these entities.

virtual void DtVrfRemoteController::requestIndirectArtilleryInformation ( const DtUUID )
virtual

Request indirect artillery information by environmental name.

virtual void DtVrfRemoteController::requestResourceNames ( const std::vector< DtUUID > &  list,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Sends a request to the server to return a list of resource names associated with the entities supplied.

The response will only contain a list of resources. It will not associate the resource with the entity has that has

virtual void DtVrfRemoteController::requestResources ( const DtUUID uuid = DtUUID::nullUUID(),
const std::list< DtString > *  list = 0,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Sends a request the server to send back a PDU which contains the resource values for the specified object and resource values.

Parameters
nameThe name of the entity for which resources are being requested. If NULL, information for all entities will be returned.
listA list of resource names to be queried and returned. If NULL, all resources will be returned.
fcnThe static function that will be called with the result when it arrives.
usrA pointer that will be passed to the static callback function with the result.
virtual void DtVrfRemoteController::processResourcesProcessedCb ( const DtIfServerRequestResponse rsp)
virtual

processes a resources-processed callback.

processes this message if the request id is one we generated. Override to change or add to processing.

virtual void DtVrfRemoteController::addObjectConsoleMessageCallback ( DtObjectConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Manage callbacks which will get called each time a object console message is received over the network.

virtual void DtVrfRemoteController::removeObjectConsoleMessageCallback ( DtObjectConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual
virtual void DtVrfRemoteController::setObjectNotifyLevel ( const DtUUID objectName,
DtNotifyLevelType  notifyLevel,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Sends a request to the sim engine to change the notification level of the specified object.

virtual void DtVrfRemoteController::logObjectConsoleToFile ( const DtUUID objectName,
const DtFilename  filename 
)
virtual

Starts the sim engine logging this object console to the specified file.

This file will be written by the sim engine that is simulating this object.

virtual void DtVrfRemoteController::stopLoggingObjectConsoleToFile ( const DtUUID objectName)
virtual

Stops any sim engine which is currently writing a log file for this object.

virtual void DtVrfRemoteController::addBackendConsoleMessageCallback ( DtBackendConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Manage callbacks that will get called each time a back end console message is received over the network.

virtual void DtVrfRemoteController::removeBackendConsoleMessageCallback ( DtBackendConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual
virtual void DtVrfRemoteController::processCommentInteraction ( DtCommentInteraction *  inter)
virtual

Processes an incoming comment interaction.

Object console messages are sent via comment interactions.

virtual void DtVrfRemoteController::requestJoystickInformation ( const DtUUID ,
DtJoystickControlResponseFcn  ,
void *  ,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Requests joystick information (supported function groups and functions) for the given entity.

Supplied function will be called (with user data) when information is retrieved

virtual void DtVrfRemoteController::takeControlOf ( const DtUUID ,
const std::set< DtString > &  functionGroups,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Takes control of the given entity for the supplied function group(s) for the purposes of joystick control.

virtual void DtVrfRemoteController::releaseControlOf ( const DtUUID ,
const std::set< DtString > &  functionGroups = std::set< DtString >(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Releases control of the given entity for the given function groups.

No function groups means release control of all

virtual void DtVrfRemoteController::sendJoystickControl ( const DtUUID ,
const DtString functionGroup,
const DtString function,
double  value,
bool  repeat = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Sends a joystick control message to the given entity for the given function group and function using the supplied value.

virtual DtDefaultVrfObjectMessageFactory* DtVrfRemoteController::vrfObjectMsgFactory ( )
virtual
virtual DtDefaultCondExprFactory* DtVrfRemoteController::condExprFactory ( )
virtual
virtual DtDefaultStatementFactory* DtVrfRemoteController::stmtFactory ( )
virtual
virtual DtDefaultSimReportFactory* DtVrfRemoteController::reportFactory ( )
virtual
virtual DtDefaultSimTaskFactory* DtVrfRemoteController::taskFactory ( )
virtual
virtual DtDefaultSetDataRequestFactory* DtVrfRemoteController::setDataFactory ( )
virtual
virtual DtDefaultSimCommandFactory* DtVrfRemoteController::simCommandFactory ( )
virtual
virtual DtDefaultAdminContentFactory* DtVrfRemoteController::adminContentFactory ( )
virtual
static void DtVrfRemoteController::doPendingSaveWorkCb ( void *  usr)
static

Invoked periodically while waiting for a save command to complete.

static void DtVrfRemoteController::doPendingExportWorkCb ( void *  usr)
static

Invoked periodically while waiting for a export command to complete.

static void DtVrfRemoteController::doPendingLoadWorkCb ( void *  usr)
static

Invoked periodically while waiting for a load command to complete.

static void DtVrfRemoteController::savedScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has saved and send it scenario information.

static void DtVrfRemoteController::exportScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has exported and send it scenario information.

static void DtVrfRemoteController::loadedScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has received and loaded the given scenario information.

static void DtVrfRemoteController::receiveFileCb ( const DtFilename &  filename,
void *  usr 
)
static

Invoked when a file has been received from our dedicated TCP socket.

static void DtVrfRemoteController::receivedMultiPlanCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a multiple plan response.

static void DtVrfRemoteController::objectCreatedCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when an object we've requested has been created.

static void DtVrfRemoteController::receivedPlanCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a plan as a result of a plan request.

static void DtVrfRemoteController::receivedPlanStmtCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a plan statement message.

static void DtVrfRemoteController::overlayObjectCreatedCallback ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
static

Invoked when an overlay object is created.

Will call the processOverlayObjectCreated() method.

static void DtVrfRemoteController::indirectArtilleryObjectCreatedCallback ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
static

Invoked when an indirect artillery object is created.

Will call the processOverlayObjectCreated() method.

static void DtVrfRemoteController::resourcesProcessedCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a resource request is called via requestResources.

static void DtVrfRemoteController::spatialSubdivisionConfigurationCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a query spatial subdivision configuration request is made via querySpatialSubdivisionConfiguration().

Calls process

static void DtVrfRemoteController::commentInteractionCallback ( DtCommentInteraction *  inter,
void *  usr 
)
static

Invoked when a comment interaction is received from the network.

Calls processCommentInteraction().

static void DtVrfRemoteController::joystickControlResponse ( DtSimMessage msg,
void *  usr 
)
staticprotected

Invoked when a resource request is called via requestResources.

virtual void DtVrfRemoteController::processJoystickControlResponse ( DtSimMessage msg)
protectedvirtual
virtual void DtVrfRemoteController::onInit ( )
protectedvirtual

Initializes myTempDirectory, host inet address, myListener, myRadioMessageListener, myRemoteEnvironmentController.

Registers all callbacks and factories.

virtual void DtVrfRemoteController::resetStateData ( )
protectedvirtual
virtual void DtVrfRemoteController::emptyLists ( )
protectedvirtual
virtual void DtVrfRemoteController::sendAggregateAsMsg ( const DtSimulationAddress &  addr,
unsigned int  requestId,
const DtObjectType objectType,
DtForceType  force,
const DtVector position,
DtReal  heading,
DtList *  entityNames,
DtAggregateState  initialAggregateState,
const DtUUID startingUUID = DtUUID::nullUUID() 
) const
protectedvirtual

Fills out and sends an aggregate-as message.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::createComposer ( )
protectedvirtual

Initializes the myComposer variable.

virtual DtUUIDNetworkManager* DtVrfRemoteController::createUUIDNetworkManager ( ) const
protectedvirtual

Creates a new UUID network manager.

virtual void DtVrfRemoteController::sendQuerySpatialSubdivisionConfigurationRequest ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
DtServerRequestResponseCallbackFcn  fcn,
void *  usr 
)
protectedvirtual

Sends DtIfQuerySpatialSubdivisionConfiguration request for given spatial subdivision type.

virtual bool DtVrfRemoteController::arbitrarySimAddress ( DtSimulationAddress &  address) const
protectedvirtual

Chooses an arbitrary simulation address from the current set of registered backends.

This is used for commands that must be sent to only one sim engine, but have DtSimSendToAll specified. Chooses the first address on the list.

Returns
True if filled in a valid address. False if there were no registered sim engines.
virtual bool DtVrfRemoteController::addStatementsAndSendPlan ( const DtPlan plan,
DtIfPlan planMsg,
const DtSimulationAddress &  addr = DtSimSendToAll,
int retiStatus = 0,
DtString retsStmt = 0 
) const
protectedvirtual

Adds the statements from plan to planMsg, and sends planMsg to the specified address.

If the plan gets too long, multiple plan messages are sent, to be appended on the sim engine side. If any of the statements are too large to be encoded into the planMsg, an error code and the text of the invalid statement are returned in retiStatus and retsStmt.

Returns
True if successful.
static void DtVrfRemoteController::deliverRadioMessageCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback registered with the message interface for vrfObjectMessages.

Calls processVrfObjectMessage().

static void DtVrfRemoteController::vrfObjectMessageCallback ( const DtVrfObjectMessage objMsg,
void *  usr 
)
staticprotected
virtual void DtVrfRemoteController::processVrfObjectMessage ( const DtVrfObjectMessage objectMsg)
protectedvirtual

If the message is addressed to the front end, passes it to the objectMessageExecutive for processing by any registered callbacks.

static void DtVrfRemoteController::globalEnvironmentCreatedCb ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
staticprotected

Called when global weather object is created, will then set time of day.

This will only be called during new scenario creation

virtual void DtVrfRemoteController::processGlobalEnvironmentCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid 
)
protectedvirtual
static void DtVrfRemoteController::backendStatusUpdate ( const DtSimulationAddress &  ,
void *   
)
staticprotected

Used by rollback, once there are no longer any backends with entities give the actual rollback.

virtual void DtVrfRemoteController::processBackendStatusUpdate ( const DtSimulationAddress &  )
protectedvirtual

Member Data Documentation

DtExerciseConn* DtVrfRemoteController::myExConn
protected
DtReflectedEnvironmentProcessList* DtVrfRemoteController::myReflectedEnvironmentProcessList
protected
bool DtVrfRemoteController::myCreatedReflectedEnvironmentProcessList
protected
DtVrfMessageInterface* DtVrfRemoteController::myMsgIf
protected
DtVrfTDLMessageInterface* DtVrfRemoteController::myVrfTDLMsgIf
protected
DtVrfBackendListener* DtVrfRemoteController::myListener
protected
DtCompressedFileTransporter* DtVrfRemoteController::myTransporter
protected
DtList DtVrfRemoteController::myReceivedFiles
protected
DtList DtVrfRemoteController::myReceivedSaves
protected
DtU32 DtVrfRemoteController::myCurrentRequestId
protected
DtTime DtVrfRemoteController::myLastCommandTime
protected
DtTime DtVrfRemoteController::myMaxWaitLoadTime
protected
DtTime DtVrfRemoteController::myMaxWaitSaveTime
protected
DtList DtVrfRemoteController::myBeList
protected
DtList DtVrfRemoteController::myScenLoadedCbs
protected
DtList DtVrfRemoteController::myBeLoadedCbs
protected
DtList DtVrfRemoteController::myScenSavedOldCbs
protected
DtList DtVrfRemoteController::myScenSavedCbs
protected

list of any deprecated old-style save callbacks that have been registered

DtList DtVrfRemoteController::myScenAboutToBeSavedCbs
protected

list of any preferred new-style save callbacks that have been registered

DtList DtVrfRemoteController::myScenExportedCbs
protected

list of any preferred new-style save callbacks that have been registered

DtList DtVrfRemoteController::myScenSavedCheckpointCbs
protected

list of any preferred new-style save callbacks that have been registered

DtList DtVrfRemoteController::myBeSavedCbs
protected

list of any preferred new-style save callbacks that have been registered

DtPlanCallbackListType DtVrfRemoteController::myPlanCbs
protected
DtStatementCallbackListType DtVrfRemoteController::myStmtCbs
protected
DtPlanCompleteCallbaclListType DtVrfRemoteController::myPlanCompleteCbs
protected
DtHashlist DtVrfRemoteController::myObjectCbs
protected
DtObjectConsoleMessageCallbackListType DtVrfRemoteController::myObjectConsoleMessageCallbackList
protected
DtBackendConsoleMessageCallbackListType DtVrfRemoteController::myBackendConsoleMessageCallbackList
protected
bool DtVrfRemoteController::myCreatedMsgIf
protected
bool DtVrfRemoteController::myCreatedVrfTDLMsgIf
protected
DtFilename DtVrfRemoteController::mySaveName
protected
double DtVrfRemoteController::mySimTimeForCheckpointSave
protected
DtFilename DtVrfRemoteController::myOverlayFilename
protected
DtFilename DtVrfRemoteController::mySelectionGroupsFilename
protected
DtFilename DtVrfRemoteController::mySymbolMapFilename
protected
DtFilename DtVrfRemoteController::myCreateMenuFilename
protected
DtFilename DtVrfRemoteController::myOpdName
protected
DtFilename DtVrfRemoteController::myHostilityFilename
protected
DtFilename DtVrfRemoteController::myScenarioExtrasFilename
protected
DtScenario* DtVrfRemoteController::mySaveScen
protected
DtScenario* DtVrfRemoteController::myLoadScen
protected
DtVrfConfigurationFileComposer* DtVrfRemoteController::myComposer
protected
bool DtVrfRemoteController::myRemapped
protected

true if a DtBackendRemappingFcn was called on the current scenario

bool DtVrfRemoteController::myPreserveMappings
protected

false if a DtPreserveMappingsFcn returned false when saving a scenario

bool DtVrfRemoteController::myDidRemap
protected

true if at some point during the save of this scenario the user decided to remap the objects to the new back end.

If true, the user will no longer be prompted to preserve mappings

bool DtVrfRemoteController::myNeedsGlobalEnvironment
protected

Set to true if needs to create global environment on first load of simulation.

DtChangeWeatherCommand* DtVrfRemoteController::myInitialEnvironment
protected

Set to non-null if needing to also set the global environment.

bool DtVrfRemoteController::myNeedsGlobalDynamicTerrain
protected

Set to true if needs to create the object to manage global dynamic terrain.

DtDefaultVrfObjectMessageFactory DtVrfRemoteController::myVrfObjectMsgFact
protected

These are needed for message callbacks to work.

DtDefaultCondExprFactory DtVrfRemoteController::myCondExprFact
protected
DtDefaultStatementFactory DtVrfRemoteController::myStmtFact
protected
DtDefaultSimReportFactory DtVrfRemoteController::myReportFact
protected
DtDefaultSimTaskFactory DtVrfRemoteController::myTaskFact
protected
DtDefaultSetDataRequestFactory DtVrfRemoteController::mySetDataFact
protected
DtDefaultSimCommandFactory DtVrfRemoteController::mySimCommandFact
protected
DtDefaultAdminContentFactory DtVrfRemoteController::myAdminContentFact
protected
DtString DtVrfRemoteController::myGuiTerrainDatabaseFilename
protected

This member variable will contain the front end database (if different from back end).

It is set on new scenario, load scenario or by accessor function

DtRwKeyValueList DtVrfRemoteController::myScenarioData
protected

Extra data used to be saved with the scenario.

DtFilename DtVrfRemoteController::myTempDirectory
protected

Location for temporary files generated by the configuration composer and file transporter.

DtInetAddr DtVrfRemoteController::myInetAddr
protected

This is the Internet address to send saved files back to from the server.

If this program is run on a machine that has multiple Internet cards, call the setHostInetAddr method to the Internet address to use

unsigned int DtVrfRemoteController::myRequestIdCounter
mutableprotected

Incremented by generateRequestId() to assign new request id's.

This value should only be changed by generateRequestId(). It's declared as mutable so that generateRequestId() and all the functions that call it can be const functions.

DtVrfObjectMessageExecutive DtVrfRemoteController::myObjectMessageExecutive
protected

Used to processes VrfObjectMessages addressed to the Front End.

DtRadioMessageListener* DtVrfRemoteController::myRadioMessageListener
protected

Used to spy on radio messages sent between VRF Entities.

DtRemoteEnvironmentController* DtVrfRemoteController::myRemoteEnvironmentController
protected

Used to monitor and change the weather state.

int DtVrfRemoteController::myStartTimeOfDay
protected

Only set for a new scenario.

int DtVrfRemoteController::myScenarioExportRequestId
protected

Pending export request id.

DtFilename DtVrfRemoteController::myExportFile
protected

When received, the file to save the export file to.

bool DtVrfRemoteController::myReceivedExportFile
protected

Set to true once export file has been received.

bool DtVrfRemoteController::myAwaitingExportComplete
protected

Set to know we've received the export complete message but not the file yet.

bool DtVrfRemoteController::myUseDayNightModel
protected
DtDefaultSimulationModelSetValidatorManager DtVrfRemoteController::mySimulationModelSetValidator
protected
DtUUIDNetworkManager* DtVrfRemoteController::myUUIDNetworkManager
protected

Class that will manage and work with VR-Forces UUIDs and make sure the mapping is kept up to date.

Created during init process

JoystickResponseCallbackInfo DtVrfRemoteController::myJoystickResponseCallbackInfo
protected
bool DtVrfRemoteController::mySaveToZipFile
protected

Whether or not the pending save is saved to a zip file.

double DtVrfRemoteController::myRollbackToSimulationTime
protected

If rolling back, the rollback time.

bool DtVrfRemoteController::myInRollback
protected
std::set<DtSimulationAddress> DtVrfRemoteController::myBackendsWithObjects
protected
std::set<DtSimulationAddress> DtVrfRemoteController::myBackendsLoaded
protected

Used for loading a scenario if there are any backends opened.

std::vector<DtString> DtVrfRemoteController::myLoadingSimulationModelSets
protected
DtScenarioLoadInformation* DtVrfRemoteController::myScenarioLoadInformation
protected

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

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)