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

class DtVrfObjectManager: More...

Inheritance diagram for DtVrfObjectManager:
Inheritance graph
[legend]

Classes

struct  ObjectCallbackListCmp

Public Types

enum  DtAggregateCreationMode { DtUseParameterDatabaseAggregateState = 0, DtCreateAggregatedEntity, DtCreateDisaggregatedEntity }
 Defines how the initial DtAggregateState should be set upon creation of an aggregate entity. More...
typedef DtCallbackList< const
DtOrganizationManagerReadyCallbackInfo & > 
DtOrganizationReadyCallbackList
typedef std::list
< DtReflectedActiveSonar * > 
ReflectedActiveSonars

Public Member Functions

 DtVrfObjectManager (DtSimManager *simManager, int entityAdvisory=100)
 constructor
virtual ~DtVrfObjectManager ()
 destructor DMSO RTI Compatibility note: Because objects must send out DtIfVrfObjectDeleted messages before being deleted, calling this destructor from within a message callback may cause a concurrent access exception with the DMSO RTI.
virtual bool create ()
 Virtual construction - must be called before any other member functions are called.
virtual bool init ()
 Initialization - must be called after create() and before any other member functions are called.
virtual bool createDIGuyCharacterManager (const DtFilename &diGuyAnimationsFile)
 If Using DI-Guy Need to create the character manager.
virtual bool add (DtVrfObject *simObject)
 Creates a DtEntityIdentifierHashKey for the object and then adds it to mySimObjectList.
virtual void completeObjectAddition (DtVrfObject *simObject)
 Called when the object is ready to simulate and add as part of the simulation.
virtual bool loadingScenarioInformation () const
 Return true if order of battle for scenario load, import or simulation object group creation is happening.
virtual void setParameterDatabase (DtVrfParameterDb *parameterDatabase)
 Parameter database used in creation and initialization of DtVrfObjects.
virtual DtVrfParameterDbparameterDatabase ()
virtual DtManagedObjectListConstPtr getList (const DtVrfObjectPredicate &predicate, bool reevaluateFlag=false, DtTime evaluationPeriod=0)
 Wraps DtManagedObjectListManager::getList().
virtual void setImportingScenario (bool)
 Will be true if currently importing scenario.
virtual bool importingScenario () const
virtual void setImportScenarioData (const DtImportScenarioData &)
 Data used for import.
virtual const
DtImportScenarioData
importScenarioData () const
virtual const
DtVrfObjectFilterIterator
vrfIterator (const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false) const
virtual const
DtVrfObjectFilterIterator
vrfIterator (const DtVrfObjectPredicate &predicate) const
virtual const
DtVrfObjectFilterIterator
vrfIterator (DtFilterFcn filter, bool invertFilter=false, void *usrData=0) const
 typedef bool (DtFilterFcn)(const DtVrfObject object, void* usr); ACTUAL DEFINITION IN fltrFcnInf.h, provided here for readability.
virtual void removeAndDelete (const DtUUID &objectName)
 Calls queueObjectForRemoval to schedule object for removal from object manager and deletion.
virtual void removeAndDelete (DtSharedVrfObjectReference simObject)
virtual void removeAndDelete (const DtEntityIdentifier &key)
virtual void removeAndDelete (DtVrfObject *object)
std::set
< DtGlobalObjectDesignator
remoteObjectGlobalIds (bool onlyVrfSimulated=true) const
 Returns a set of global object ids for all remote objects.
virtual void removeAndDeleteAllLocals ()
 Queues all locally simulated objects for removal.
virtual void removeAndDeleteAll ()
 Calls invokeAllObjectManagerRemoveAllCallbacks() and then queues all simulated objects for removal.
virtual void setExerciseConnection (DtExerciseConn *connection)
 Calls createRemoteEntitiesList(), createRemoteAggregatesList(), and createRemoteEnvironmentalsList().
virtual void createRemoteEnvironmentalsList (DtExerciseConn *exConn)
virtual void setPublishZeroVelocityWhenPaused (bool)
 Sets whether or not to publish zero velocity (and acceleration) when paused.
virtual bool publishZeroVelocityWhenPaused () const
virtual void setSetDeadReckoningAlgorithmToStaticOnPause (bool)
 When the simulation is paused set the dead reckoning algorithm for aggregates and entities to static.
virtual bool setDeadReckoningAlgorithmToStaticOnPause () const
virtual void setTaskVisualizationPublicationMode (DtTaskVisualizationPublicationMode mode)
 If and when task visualizations should be published to the network.
virtual
DtTaskVisualizationPublicationMode 
taskVisualizationPublicationMode () const
virtual void setUseDrawControlForTaskVisualizations (bool)
 Publish task visualizations as VRV draw control objects rather than their standard, VR-Forces specific format.
virtual bool useDrawControlForTaskVisualizations () const
virtual
DtReflectedControlObjectList
reflectedEnvironmentProcessList () const
 Get the reflected environment process list.
virtual
DtReflectedControlObjectList
createReflectedControlObjectList (DtExerciseConn *exConn)
 Called to create the reflected environmental list.
virtual void registerInterfaceCallbacks ()
 Registers callbacks on the sim manager's interface message executive for create-entity, remove-entity, request-entity-name and order-of-battle op messages (like read and write).
virtual const DtSimManagersimManager () const
 Get a const pointer to the simulation manager.
virtual DtSimManagersimManager ()
 Get a pointer to the simulation manager.
virtual void processCreateVrfObject (DtSimMessage *msg)
 Registered with the message executive to handle the CreateVrfObject message.
virtual void processCreateVrfObject (DtIfCreateVrfObject ifCreateVrfObject)
 The ifCreateVrfObject is passed to createAndInitVrfObject and if the create is successful, DtVrfObjectStateRepository::place is called to give the entity its initial position and orientation.
virtual void processModifyVrfObject (DtSimMessage *msg)
 Registered with the message executive to handle the ModifyVrfObject message.
virtual void processModifyVrfObject (DtIfModifyVrfObject modObj)
 The object identifier in the DtIfModifyVrfObject is used to look up a DtVrfObject.
virtual void processModifyVrfOverlay (DtSimMessage *msg)
 Registered with the message executive to handle the ModifyVrfOverlay message.
virtual void processDeleteVrfObject (DtSimMessage *msg)
 Registered with the message executive to handle the DeleteVrfObject message.
virtual void processDeleteVrfObjectById (DtSimMessage *msg)
 Registered with the message executive to handle the DeleteVrfObjectById message.
virtual void processVrfObjectDeleted (DtSimMessage *msg)
 Registered with the message executive to handle the VrfObjectDeleted message.
virtual void processAutoReorganize (DtSimMessage *msg)
 Registered with the message executive to handle the AutoReorganize message.
virtual void processAggregateAs (DtSimMessage *msg)
 Registered with the message executive to handle the AggregateAs message.
virtual void processSkipTask (DtSimMessage *msg)
 Registered with the message executive to handle the SkipTask message.
virtual void processSetThresholds (DtSimMessage *msg)
 Called by setThresholdsCallback.
virtual void processEntityAddedCallback (DtReflectedExtEntity *entity)
 These functions override the base class versions to check to see if reflected object being added is from one of our own locally simulated objects.
virtual void processAggregateAddedCallback (DtReflectedExtAggregate *aggregate)
virtual void processEntityRemovedCallback (DtReflectedExtEntity *entity)
 Override the base class version to schedule object for removal, rather than removing right away.
virtual void processAggregateRemovedCallback (DtReflectedExtAggregate *aggregate)
virtual void processDesignatorAddedCallback (DtReflectedDesignator *des)
virtual void processDesignatorRemovedCallback (DtReflectedDesignator *des)
virtual void processDesignatorChangedCallback (DtReflectedDesignator *des)
DtBoolean processDesignatorDiscoveryCriteria (DtReflectedDesignator *des)
virtual void processActiveSonarAddedCallback (DtReflectedActiveSonar *des)
virtual void processActiveSonarRemovedCallback (DtReflectedActiveSonar *des)
virtual void processActiveSonarChangedCallback (DtReflectedActiveSonar *des)
DtBoolean processActiveSonarDiscoveryCriteria (DtReflectedActiveSonar *des)
virtual ReflectedActiveSonars findActiveSonarsForHostEntity (const DtVrfObject *host) const
virtual void processPropulsionNoiseAddedCallback (DtReflectedPropulsionNoise *des)
virtual void processPropulsionNoiseRemovedCallback (DtReflectedPropulsionNoise *des)
virtual void processPropulsionNoiseChangedCallback (DtReflectedPropulsionNoise *des)
DtBoolean processPropulsionNoiseDiscoveryCriteria (DtReflectedPropulsionNoise *des)
virtual bool hasEnabledActiveSonar (const DtVrfObject *host) const
virtual
DtReflectedPropulsionNoise * 
propulsionNoiseForHost (const DtVrfObject *host) const
virtual void processAggregateChanged (DtReflectedExtAggregate *aggregate)
 Override the base class version to make a call to DtOrganizationManager.
virtual void processEnvProcessAddedCallback (DtReflectedEnvironmentProcess *envProcess)
virtual void processEnvProcessRemovedCallback (DtReflectedEnvironmentProcess *envProcess)
virtual bool processEnvProcessDiscoveryCriteria (DtReflectedEnvironmentProcess *envProcess)
virtual void removeObjectSubordinates (DtVrfObject *object)
 Queues all the subordinates of this object for removal, or sends deleteObject messages for any of the remote subordinates.
virtual void queueObjectForRemoval (const DtEntityIdentifier &key)
 Schedule a given vrf object to be removed.
virtual void queueObjectForRemoval (const DtUUID &key)
virtual void removeObjectsQueuedForRemoval ()
 Removes all vrf objects on the list at the end of each tick.
virtual void tick ()
 Processes all pending object creations on the myObjectsToCreateQueue by checking DtCreateQueueEntry::isReadyForCreation which if true causes the create message to be passed on to processCreateVrfObject.
virtual DtVrfObjectcreateAndInitVrfObject (DtIfCreateVrfObject *creationInfo)
 Create a new local vrf object from an interface message.
virtual DtVrfObjectcreateAndInitVrfObject (DtIfAggregateAs *aggInfo)
virtual DtVrfObjectcreateAndInitVrfObject (DtReflectedEntity *entity)
 Create a new remote vrf object from a network packet.
virtual DtVrfObjectcreateAndInitVrfObject (DtReflectedAggregate *aggregate, int superType=DtObjectTypeAggregate)
virtual DtVrfObjectcreateAndInitVrfObject (DtReflectedEnvironmentProcess *envProcess)
virtual DtVrfObjectcreateAndInitVrfObject (const DtObjectType &objectType, bool publishLocalObject=true, const DtString &objectName=DtString::nullString(), const DtString &objectLabel=DtString::nullString(), DtForceType forceType=DtForceOther, const DtList *vertices=0, const DtTaitBryan *orientation=0, bool projection=false, bool closedFigure=false, const DtAppearance &appearance=DtAppearance::nullAppearance(), const DtString &readerWriterName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0, bool createSubObjects=false, DtVrfObjectUserInitFcn userInit=0, void *userInitData=0, bool organize=true, const DtString &startingFormation=DtDefaultFormationString, DtVrfObjectManager::DtAggregateCreationMode initialAggregateState=DtVrfObjectManager::DtUseParameterDatabaseAggregateState, unsigned long requestId=0, const DtString &overlayParent="")
 Creates a new local vrf object and adds it to our list of managed vrf objects.
virtual DtVrfObjectcreateAndInitVrfObject (const DtObjectType &objectType, bool publishLocalObject=true, const DtString &objectName=DtString::nullString(), const DtString &objectLabel=DtString::nullString(), DtForceType forceType=DtForceOther, const DtVector &position=DtVector::zero(), const DtTaitBryan *orientation=0, bool projection=false, bool closedFigure=false, const DtAppearance &appearance=DtAppearance::nullAppearance(), const DtString &readerWriterName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0, bool createSubObjects=false, DtVrfObjectUserInitFcn userInitFcn=0, void *userInitData=0, bool organize=true, const DtString &startingFormation=DtDefaultFormationString, DtVrfObjectManager::DtAggregateCreationMode initialAggregateState=DtVrfObjectManager::DtUseParameterDatabaseAggregateState, unsigned long requestId=0, const DtString &overlayParent="")
 Creates a new local vrf object and adds it to our list of managed vrf objects.
virtual void createSubObjectsFromParameters (DtVrfObject *parent, bool publishSubobjects, unsigned long requestId, const DtString &overlayParent)
 Iterates through list of DtVrfSubObjectParameterEntry*s in the parent object's parameter entry (DtVrfObjectParameters::subordinateObjects()).
virtual DtVrfObjectcreateSubObjectFromParameterEntry (const DtVrfSubObjectParameterEntry &entry, const DtVector &positionOffsetFromParent, const DtVrfObject &parent, const DtString &formationName, bool publishSubObject, unsigned long requestId=0, const DtString &overlayParent="")
 Returns a newly created DtVrfObject, given the information passed in through the entry parameter.
virtual bool readOrderOfBattleFile (const DtFilename &filename)
 Read/write order of battle file.
virtual bool readOrderOfBattleFile (const std::vector< std::string * > &oob)
virtual bool readOrderOfBattleFile (DtlInputStream *)
 Saves OOB file to the named file.
virtual bool readOrderOfBattleFileFromZipFile (const DtFilename &zipFile, const DtString &filename)
virtual bool writeOrderOfBattleFile (const DtString &filename)
virtual bool writeOrderOfBattleFile (std::string &stream)
 Writes the OOB file contents into the supplied stream.
virtual bool writeOrderOfBattleFile (std::vector< std::string * > &vecOfStreams)
virtual bool writeSimulationObjectGroupOrderOfBattleFile (const DtString &filename, int flags, boost::unordered_set< DtUUID > &uuidsSaved)
 Like the writeOrderOfBattleFile, except will save out an offset from the center of mass with altitude above sea level or above terrain (on object recreation).
virtual std::vector
< DtVrfObject * > 
readSimulationObjectGroupOrderOfBattleFile (const DtString &filename, int flags, DtForceType force, DtlObjPtr *retArgs=0, bool *errorLoading=0)
 Like readOrderOfBattleFile, read in the file with the notion of offsetting all positions of objects by the supplied geometric center.
virtual std::vector
< DtVrfObject * > 
readSimulationObjectGroupOrderOfBattleFileFromZipFile (const DtFilename &scenarioZipFile, const DtString &filename, int flags, DtForceType force, DtlObjPtr *retArgs=0, bool *errorLoading=0)
virtual std::vector
< DtVrfObject * > 
readSimulationObjectGroupOrderOfBattleFile (int flags, DtForceType force, DtlObjPtr &args)
virtual std::vector
< DtVrfObject * > 
readSimulationObjectGroupOrderOfBattleFile (DtlInputStream *fStream, int flags, DtForceType force, DtlObjPtr *retArgs=0, bool *errorLoading=0)
virtual bool objectShouldBeSavedToOrderOfBattle (const DtVrfObject *vrfObject) const
 Called by writeOrderOfBattleFile to determine if an entity should be saved to the order of battle file by making sure it is a local object with a VR-Forces globalId.
virtual bool objectShouldBeSavedToSimulationObjectGroup (const DtVrfObject *vrfObject) const
virtual DtVrfObjectcreateObjectFromMemoryBuffer (const std::string &buffer)
virtual DtlObjPtr getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 This method must be overridden by a subclass.
virtual void addVrfObjectAboutToBeAddedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtVrfObject is about to be added.
virtual void addVrfObjectAddedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtVrfObject is added.
virtual void addVrfObjectAboutToBeLoadedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtVrfObject is about to be load from the order of battle file.
virtual void addVrfObjectAboutToBeRemovedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a DtVrfObject going to be removed.
virtual void removeVrfObjectAboutToBeAddedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtVrfObject is about to load from the order of battle file.
virtual void removeVrfObjectAboutToBeLoadedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtVrfObject is about to load from the order of battle file.
virtual void removeVrfObjectAddedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtVrfObject is added.
virtual void removeVrfObjectAboutToBeRemovedCallback (DtVrfObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a DtVrfObject is removed.
virtual void addObjectManagerAboutToRemoveAllCallback (DtVrfObjectManagerCallbackFcn fcn, void *usrData)
 Add a callback to be invoked whenever all objects are about to be removed from the the object manager.
virtual void removeObjectManagerAboutToRemoveAllCallback (DtVrfObjectManagerCallbackFcn fcn, void *usrData)
 Remove a callback to be invoked whenever all objects are about to be removed from the the object manager.
virtual void addOrganizationManagerReadyCallback (DtOrganizationManagerReadyCallbackFcn fcn, void *usrData)
 Add callback to be invoked when the organization manager readiness changes.
virtual void removeOrganizationManagerReadyCallback (DtOrganizationManagerReadyCallbackFcn fcn, void *usrData)
 Removes callback to be invoked when the organization manager readiness changes.
virtual void enableAutoReorganization ()
 Enables/disables auto reorganization of pseudo-aggregates.
virtual void disableAutoReorganization ()
virtual bool autoReorganizeEnabled () const
 Returns true if auto-reorganization is enabled, false if not.
virtual DtEntityIdentifier mapUUIDToEntityIdentifier (const DtUUID &) const
 Looks up the entity identifier for the given object unique identifier.
virtual DtGlobalObjectDesignator mapUUIDToGlobalId (const DtUUID &) const
virtual DtUUID mapGlobalIdToUUID (const DtGlobalObjectDesignator &) const
virtual bool objectNameExists (const DtString &) const
 Checks to see if the name exists.
virtual DtSharedVrfObjectReference lookupTopLevelVrfObject (DtForceType forceType)
 Look up top-level superior, given the force type.
virtual DtString nextNameWithPrefix (const DtObjectType &objectType, const DtString &potentialPrefix)
 Returns a new unique name given the prefix (stripped of numbers, if there are some at the end)
virtual DtString nextNameWithPrefix (int maxLength, const DtString &potentialPrefix)
 Returns a new unique name given the prefix (stripped of numbers, if there are some at the end) that conforms to the maximum length.
virtual DtVrfObjectcreateAndInitTopLevelVrfObject (DtForceType forceType)
 Creates and adds a top-level superior of a given force type.
virtual DtVrfObjectcreateAndInitTopLevelVrfObject (DtForceType forceType, const DtString &name)
 Creates and adds a top-level superior of a given name (should be of the form "1 Force", "2 Force", etc.)
virtual DtString topLevelName (DtForceType forceType)
 returns the name string for a top-level object of a given force type.
virtual DtString nextName (const DtObjectType &objectType)
 Returns an unused name appropriate for the specified object type.
virtual DtString nextUnorganizedName ()
 Returns the next unorganized unique name string.
virtual DtString uniquifyName (const DtString &name, const DtObjectType &objectType)
 Checks to see if the provided name is unique.
virtual unsigned int maxNameLengthForType (const DtObjectType &objectType)
virtual DtReflectedObjectlookupReflectedObject (const DtGlobalObjectDesignator &globalId) const
 Look up the reflected object for a given global Id.
virtual void rediscoverObjects (const std::set< DtGlobalObjectDesignator > &ignore=std::set< DtGlobalObjectDesignator >())
 run through the lists of known objects and perform discoveries. Ignore the list of global object designators passed in
virtual void requestUpdatesForRemoteNonVrfObjects () const
 Walk through list of reflected objects and request updates on non-VR-Forces simulated objects.
virtual void objectNameChanged (DtVrfObject *, const DtString &oldName, const DtString &newName)
 This is called by a DtVrfObject when it's named changes.
virtual void objectUUIDChanged (const DtUUID &oldUUID, const DtUUID &newUUID)
 This is called by a DtVrfObject when it's UUID changes.
virtual DtVrfObjectaggregateAs (const DtObjectType &aggregateType, DtForceType force, const DtVector &dbPosition, DtReal heading, const std::vector< DtUUID > &subordinates=std::vector< DtUUID >(), const DtString &aggregateName=DtString::nullString())
 Creates a new aggregate.
virtual double timeOfDay () const
 Gets the current time of day from the environment manager.
virtual double dateAndTimeOfDay () const
 Gets the current date and time of day from the environment manager.
virtual void setSimulationDateTimeBasedOnLocation (const DtVector &geocentricLocation, int timeOfDay)
 Given the objects geocentric location, set the simulation date/time based on the running computers current date and the supplied UTC time.
virtual bool addSubordinatesToAggregate (DtVrfObject *object, const std::vector< DtUUID > &subordinates, DtAggregateState desiredState=DtFullyDisaggregated)
 Called by aggregateAs and createAndInitVrfObject(DtIfAggregateAs*).
virtual DtOrganizationManagerorganizationManager ()
virtual const
DtOrganizationManager
organizationManager () const
virtual
DtDiGuyCharacterDataManager
diGuyCharacterManager ()
 DI-Guy character Manager.
virtual const
DtDiGuyCharacterDataManager
diGuyCharacterManager () const
virtual void setCoordinateSystem (const Coordinate_System *coordinateSystem)
 Set the coordinate system on all vrf objects.
virtual unsigned objectCount () const
 Returns the number of DtVrfObject* items in the list.
virtual DtSharedVrfObjectReference lookupVrfObjectByEntityIdentifier (const DtEntityIdentifier &key) const
 Looks up a DtVrfObject*, given a DtEntityIdentifier.
virtual DtSharedVrfObjectReference lookupVrfObjectByGlobalId (const DtGlobalObjectDesignator &globalId) const
 Looks up an object for a given global Id.
virtual DtSharedVrfObjectReference lookupVrfObjectByUUID (const DtUUID &) const
 Replacement for looking up object by name.
virtual bool uuidExists (const DtUUID &) const
 Returns true if the given uuid exists.
virtual bool addNameAlias (const DtString &aliasName, DtVrfObject *object)
 Adds an additional name to reference the specified object other than its actual name.
virtual void removeNameAlias (const DtString &alias)
virtual DtSharedVrfObjectReference lookupVrfObjectByMarkingText (const DtString &) const
 Looks up the object by the object name (marking text).
virtual bool markingTextExists (const DtString &) const
 Returns true if the given marking text exists.
virtual const DtSimulationAddress & simulationAddress () const
 Get the DIS/RPR simulation address from our exercise connection.
const DtSimObjectIteratoriterator () const
 Returns an iterator for the list.
virtual bool createSimObjectList ()
 Called by create().
virtual DtHashlist * hashlist () const
 Hashlist of all vrf objects maintained by the vrf object manager.
virtual void createRemoteEntitiesList (DtExerciseConn *exConn)
 Called by setExerciseConnection().
virtual void createRemoteAggregatesList (DtExerciseConn *exConn)
virtual void processEntityChanged (DtReflectedExtEntity *entity)
 Callback handlers for VR-Link entity and aggregate reflected list events.
virtual bool processEntityDiscoveryCriteria (DtReflectedEntity *entity)
 Callback handler for processing discovery criteria of reflected objects.
virtual bool processAggregateDiscoveryCriteria (DtReflectedAggregate *aggregate)
 Callback handler for processing discovery criteria of reflected objects.
virtual DtReflectedDesignator * lookupLasedTargetByGlobalId (const DtGlobalObjectDesignator &tgtGlobalId)
 Look up a target Global id to if it is being lased.
virtual DtReflectedDesignator * lookupLasedTargetByDesignatorCode (const int code)
 Looks up a PRF code to see if there are any targets being lased by it Nothing fancy just return first match Returns null if no target being lased by this PRF code.
virtual void createRemoteDesignatorsList (DtExerciseConn *exConn)
 Called by setExerciseConnection().
virtual void createRemoteActiveSonarList (DtExerciseConn *exConn)
virtual void createRemotePropulsionNoiseList (DtExerciseConn *exConn)
DtReflectedDesignatorListreflectedDesignatorList () const
DtReflectedActiveSonarList * reflectedActiveSonarList () const
DtReflectedPropulsionNoiseList * reflectedPropulsionNoiseList () const
virtual DtVrfParameterDbobjectParametersDB () const
virtual void addSimObjectAboutToBeAddedCallback (DtSimObjectListActivityCallbackInfo *cbInfo)
 Adds DtSimObjectListActivityCallbackFcn objects to their respective lists.
virtual void addSimObjectAddedCallback (DtSimObjectListActivityCallbackInfo *cbInfo)
virtual void addSimObjectAboutToBeRemovedCallback (DtSimObjectListActivityCallbackInfo *cbInfo)
virtual void addSimObjectAboutToBeLoadedCallback (DtSimObjectListActivityCallbackInfo *cbInfo)
virtual void addSimObjectAboutToBeAddedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtSimObject is about to be added.
virtual void addSimObjectAddedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtSimObject is added.
virtual void addSimObjectAboutToBeRemovedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtSimObject is added.
virtual void addSimObjectAboutToBeLoadedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Registers a callback for notification when a new DtSimObject is about to be loaded from an order of battle file.
virtual void removeSimObjectAboutToBeAddedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtSimObject is about to be added.
virtual void removeSimObjectAboutToBeRemovedCallback (const DtSimObjectListActivityCallbackInfo &cbInfo)
virtual void removeSimObjectAddedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtSimObject is added.
virtual void removeSimObjectAboutToBeLoadedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a new DtSimObject is about to be loaded from the order of battle file.
virtual void removeSimObjectAboutToBeAddedCallback (const DtSimObjectListActivityCallbackInfo &cbInfo)
 Removes DtSimObjectListActivityCallbackFcn objects from their respective lists.
virtual void removeSimObjectAddedCallback (const DtSimObjectListActivityCallbackInfo &cbInfo)
virtual void removeSimObjectAboutToBeLoadedCallback (const DtSimObjectListActivityCallbackInfo &cbInfo)
virtual void removeSimObjectAboutToBeRemovedCallback (DtSimObjectListActivityCallbackFcn fcn, void *usrData, const DtObjectType &filter=DtObjectType::anyType(), bool invertFilter=false)
 Remove a previously register callback for notification when a DtSimObject is removed.
virtual void invokeSimObjectAboutToBeAddedCallbacks (DtVrfObject *simObject) const
 Called by add().
virtual void invokeSimObjectAddedCallbacks (DtVrfObject *simObject) const
 Called by add().
virtual void invokeSimObjectAboutToBeRemovedCallbacks (DtVrfObject *simObject) const
 Called by remove().
virtual void invokeSimObjectAboutToBeLoadedCallbacks (DtVrfObject *simObject) const
 Called by createAndInit in the DtVrfObject.
virtual DtReflectedExtEntityListreflectedEntityList () const
 Get the reflected entity list.
virtual
DtReflectedExtAggregateList
reflectedAggregateList () const
 Get the reflected aggregate list.
virtual bool addUUIDMappingForObject (DtVrfObject *vrfObject)
 Used by the object during initialization will add a pointer to this object before the full add in case it needs to be referenced during initialization by uuid.
virtual void removeUUIDMappingForObject (DtVrfObject *vrfObject)
 Called only when there is a failure to add during initialization of object.
virtual DtEntityIdentifier nextId (DtVrfObject *o=NULL)
virtual DtString generateUniqueName (int maxLength, const DtString &root="Object") const
 Generates a name string which does not belong to any other object in the simulation, and does not exceed the maxLength.
virtual void setRollUpRules (const DtAssembliesReaderWriter::RwRootNode &)
 Sets the roll up rules to be used when organizing state and parameter data.
virtual const
DtAssembliesReaderWriter::RwRootNode
rollUpRules () const
 Roll up rules.
virtual void setActivities (const DtRwActivities &)
 Set the activities that are available to controllers.
virtual const DtRwActivitiesactivities () const
 Return the activities available.
virtual bool isLocal (const DtBaseEntityStateRepository &stateRep)
virtual void objectsEmbarkedOn (DtVrfObjectStateRepository *vrfObjSR, std::vector< DtSharedVrfObjectReference > &list, bool includePseudoAggregates=true) const
 Fills in the supplied std:list with names of all entities that are embarked on the supplied object.
virtual bool canSimulate () const
 Returns true if this simulation is ready to be simulated.
virtual void setCanSimulate (bool)
 Sets whether or not this object manager can simulate.
virtual void printReflectedObjectCounts () const
 Prints counts of different types of reflected objects.
virtual void addStealthType (const DtEntityType &)
 Since the stealth type might be able to be configured in the future, use this call to maintain a list of valid stealth types.
virtual void removeStealthType (const DtEntityType &)
virtual bool isStealthType (const DtEntityType &) const
std::vector< DtEntityType > & stealthTypes ()
const std::vector< DtEntityType > & stealthTypes () const
DtObjectGeometricModelsManagerobjectModelsManager () const
DtVrfEntityIdentifierFactoryvrfEntityIdentifierFactory () const
virtual
DtVrfObjectPlanAdministrator
planAdministrator ()
virtual
DtSimInternalCommunicationManager
simInternalCommunicationManager ()
virtual void clearRemoteComponentAttachmentSystem ()
 Empty any attachment info that's waiting to be applied to entities.
virtual bool reuseEntityIdentifiersOnScenarioLoad () const
 Set to true in order to reuse object identifiers that might be part of the scenario.
virtual void setReuseEntityIdentifiersOnScenarioLoad (bool)
virtual DtEntityIdentifier nextEntityIdentifier (DtVrfObject *, const DtEntityIdentifier &)
 Returns the next usable entity identifier for publication for the given object.
virtual void addVrfObjectAboutToBePublishedCallback (DtVrfObjectAboutToBePublishedCallbackFcn fcn, void *usrData)
virtual void removeVrfObjectAboutToBePublishedCallback (DtVrfObjectAboutToBePublishedCallbackFcn fcn, void *usrData)
virtual void createRemoteComponentAttachmentManager ()
 Creates the DtRemoteComponentAttachmentManager.
virtual bool isRemoteComponentAttachment (const DtUUID &) const
 Returns true if the object is a remote component that is attached.
virtual bool initializeRemoteComponentAttachmentSystem (const DtFilename &fromFile)
 Purge the remote component attachment system, then reinitialize from the file.
DtRemoteComponentAttachmentManagerremoteComponentAttachmentManager ()
 Returns the remote component attachment manager.
const
DtRemoteComponentAttachmentManager
remoteComponentAttachmentManager () const
virtual void addObjectNameChangedCallback (DtVrfObjectNameChangedCallbackFcn fcn, void *usr)
 Callback that is invoked whenever an object is renamed.
virtual void removeObjectNameChangedCallback (DtVrfObjectNameChangedCallbackFcn fcn, void *usr)
virtual void addObjectUUIDChangedCallback (DtVrfObjectUUIDChangedCallbackFcn fcn, void *usr)
 Callback that is invoked whenever an object uuid is changed.
virtual void removeObjectUUIDChangedCallback (DtVrfObjectUUIDChangedCallbackFcn fcn, void *usr)
virtual void setSimObjectType (const DtString &type)
 The type of DtVrfObjects to create.
virtual const DtStringsimObjectType () const
- Public Member Functions inherited from DtRwList
 DtRwList ()
 default constructor
 DtRwList (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
 real constructor
 DtRwList (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
virtual ~DtRwList ()
const DtRwListoperator= (const DtRwList &orig)
 Calls down to DtReaderWriter::operator=(). List elements are not copied.
virtual DtListItem * add (DtReaderWriter *data)
 Add element to the end of the list.
virtual DtListItem * addWithAlternateName (DtReaderWriter *data, const DtString &name)
 Add element to the end of the list, but use the provided name in place of the object name on the data object.
virtual DtListItem * addToStart (DtReaderWriter *data)
 Add element to the beginning of the list.
virtual DtListItem * addToEnd (DtReaderWriter *data)
 Add element to the end of the list.
virtual void * remove (DtReaderWriter *data, DtListItem *item)
 Remove an element from the list.
virtual DtlObjPtr getLocalData (DtlObjPtr args)
 Since getData is usually used for local data, and we're overloading it here to get the list data, use this if you want any data before your lists.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
virtual DtListItem * addBefore (DtReaderWriter *data, DtReaderWriter *before)
 Add element to the list just before the indicated item.
virtual DtListItem * addAfter (DtReaderWriter *data, DtReaderWriter *after)
 Add element to the list just after the indicated item.
virtual void removeAll ()
 Removes all the items in the list.
virtual void reset ()
 Calls removeAndDeleteAll.
virtual const charreaderWriterType () const
 Used to supply a string type that this reader writer type is.
bool operator== (const DtRwList &rhs) const
 Iterates over all items and calls the factory to compare.
bool operator!= (const DtRwList &rhs) const
virtual void populateList (boost::function< void(DtReaderWriter *)> addFunction, DtEnvironmentSP env, DtEnvValueSP node, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &bindings)
virtual void populateListByType (boost::function< void(DtReaderWriter *)> addFunction, DtEnvironmentSP env, DtEnvValueSP node, const DtString &bindingType, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &bindings)
 DtRwList (const DtString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 Invokes DtReaderWriter copy constructor.
 DtRwList (const DtSymbolString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
virtual DtListItem * addBefore (DtReaderWriter *data, const DtString &before)
 Add element to the list just before the indicated item.
virtual DtListItem * addBefore (DtReaderWriter *data, const DtSymbolString &before)
virtual DtListItem * addAfter (DtReaderWriter *data, const DtString &after)
 Add element to the list just after the indicated item.
virtual DtListItem * addAfter (DtReaderWriter *data, const DtSymbolString &after)
virtual void putData (DtEnvironmentSP, DtEnvValueSP parent) const
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP value, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
virtual const charxmlType () const
virtual std::set< DtStringsupportedXmlTypes () const
 Returns the list of xml types supported by this list. Default is all.
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 default constructor
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 real constructor Setting the readonly flag prevents object from writing itself to the stream.
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 pseudo-copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 assignment operator
bool operator== (const DtReaderWriter &) const
 Equivalence operator.
bool operator!= (const DtReaderWriter &rhs)
virtual ~DtReaderWriter ()
 destructor
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Top level call to write itself to file.
virtual void postPutSelf ()
 Called after either version of put self (file or environment). Default is no-op.
virtual void prePutSelf ()
 Called before either version of put self (file or environment). Default is no-op.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void postGetSelf ()
 Called after either version of getSelf (mtl or environment). Default is no-op.
virtual void preGetSelf ()
 Called before either version of get self (file or environment). Default is no-op.
virtual void writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry.
virtual DtSymbolString name () const
 Accessor for name of this readable/writable object.
virtual void addAlias (const DtSymbolString &alias)
 Add an alias as an alternative name for this object.
virtual void addAlias (const DtString &alias)
virtual bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
bool isReadonly () const
virtual int alignment () const
 For those items that are sent over the network via HLA, this will give the network alignment.
virtual bool variableIsBound () const
virtual void unbindVariable ()
 Sets the myVariableIsBound flag to false.
virtual void setName (const DtString &)
 Set the name of the object.
virtual DtString prettyPrint () const
 Routine to return a human readable form of the reader/writer variable.
std::string debugText () const
virtual void bindVariables (DtVariableBindingsList variableBindings)
 Runs a variable binding pass on this reader writer and any of its children.
virtual std::list
< DtVariableNameType
unboundVariables () const
bool invalid () const
virtual bool hasChild (const DtReaderWriter *p) const
 Returns true if this variable has a child p in it's chain.
virtual bool hasVariableReference () const
 Returns true if this item or any item in the registry (recursive) is a variable reference.
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 Checks to see if this RW object is a variable reference that can be bound using the provided bindings.
virtual void recordUpdateTime () const
 Can be implemented in subclasses to stamp the time when updated.
virtual bool wasUpdatedSince (DtTime t) const
 Can be implemented in subclasses to return true if an update occurred after the specified time.
virtual void putData (std::string &fp, int indentLevel=0)
 Deriving class overrides these to get/put class specific data.
virtual DtlObjPtr getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
virtual void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
virtual bool isVariableReference () const
 Specifies whether or not this reader writer is really a variable that is specified elsewhere.
virtual void setIsVariableReference (bool value)
virtual void clearAllVariableReferenceFlags ()
 Clears out all variable reference flags from all readerwriter items in registry recursively.
virtual DtSymbolString variableName () const
 The variable name, if this object is a variable reference.
virtual void setVariableName (const DtSymbolString variableName)
virtual const DtReaderWriterdefaultRWValue () const
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual DtReaderWriterdefaultRWValue ()
virtual void setDefaultRWValue (DtReaderWriter *)
 Previous default value, if exists, will be removed and replaced with a clone of the supplied variable.
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Give the stream, if the stream contains a default value then set it here.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
virtual DtPropertyInterfaceproperty ()
virtual const DtPropertyInterfaceproperty () const
virtual DtString toXml () const
virtual bool toXml (const DtFilename &) const
 Writes contents of xml result to the given filename.
virtual bool fromXml (const DtString &)
 Restores object from given xml string. Returns true if valid.
virtual bool fromXmlFile (const DtFilename &)
 Restires object from given xml file.
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 Called when the item is a variable reference.
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 Gets data from the environment value.
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 Called when the xml reader tries to parse an unknown reader/writer item. Default is a no-op.
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 Called when the item is a variable reference.

Static Public Member Functions

static void tickCallback (void *args)
 This callback is registered on the sim manager's tick list.
static void addSubordinatesToAggregateCompleteCallback (void *usr)
 If the aggregate's desired initial state is DtAggregated, this callback is registered with the change set that is created and given to the org manager.
static void entityAddedCallback (DtReflectedExtEntity *entity, void *userData)
 Called by reflected entity list when a new entity appears.
static void entityRemovedCallback (DtReflectedExtEntity *entity, void *userData)
 Called by reflected entity list when an entity goes away.
static void aggregateAddedCallback (DtReflectedExtAggregate *entity, void *userData)
 Called by reflected aggregate list when a new aggregate appears.
static void aggregateRemovedCallback (DtReflectedExtAggregate *entity, void *userData)
 Called by reflected aggregate list when an aggregate goes away.
static void entityChangedCallback (DtReflectedExtEntity *entity, void *userData)
 Called by reflected entity list when new state data for an entity has arrived.
static void aggregateChangedCallback (DtReflectedExtAggregate *aggregate, void *userData)
 Called by reflected aggregate list when new state data for an aggregate has arrived.
static bool entityDiscoveryCriteriaCallback (DtReflectedObject *entity, void *userData)
 Callback used to delay discovery of remote entity.
static bool aggregateDiscoveryCriteriaCallback (DtReflectedObject *aggregate, void *userData)
 Callback used to delay discovery of remote aggregate.
static int aggregateSuperType (DtAggregateStateRepository *aggregate)
static void designatorAddedCallback (DtReflectedDesignator *des, void *userData)
 Called by reflected designator list when a new designator appears.
static void designatorRemovedCallback (DtReflectedDesignator *des, void *userData)
 Called by reflected designator list when a designator goes away.
static void designatorChangedCallback (DtReflectedDesignator *des, void *userData)
 Called by reflected designator list when new state data for a designator has arrived.
static DtBoolean designatorDiscoveryCriteriaCallback (DtReflectedObject *des, void *userData)
 Callback used to delay discovery of remote designator.
static void activeSonarAddedCallback (DtReflectedActiveSonar *activeSonar, void *userData)
static void activeSonarRemovedCallback (DtReflectedActiveSonar *activeSonar, void *userData)
static void activeSonarChangedCallback (DtReflectedActiveSonar *activeSonar, void *userData)
static DtBoolean activeSonarDiscoveryCriteriaCallback (DtReflectedObject *activeSonar, void *userData)
static void propulsionNoiseAddedCallback (DtReflectedPropulsionNoise *propNoise, void *userData)
static void propulsionNoiseRemovedCallback (DtReflectedPropulsionNoise *propNoise, void *userData)
static void propulsionNoiseChangedCallback (DtReflectedPropulsionNoise *propNoise, void *userData)
static DtBoolean propulsionNoiseDiscoveryCriteriaCallback (DtReflectedObject *propNoise, void *userData)
- Static Public Member Functions inherited from DtRwList
static const chartheXmlType ()
 The type that is used when archiving to an XML stream.

Protected Types

typedef std::pair< DtVrfObject
*, DtVrfSimulationObjectGroupGeometry * > 
PendingObjectInformation
 Simulation object groups that are awaiting to be "discovered".
typedef std::vector
< PendingObjectInformation
PendingObjectsInformation
typedef std::vector
< PendingObjectsInformation
ObjectsAwaitingDiscovery
typedef std::set
< DtSimObjectListActivityCallbackInfo
*, ObjectCallbackListCmp
AddedList
 List of DtSimObjectListActivityCallbackFcn*s.
typedef std::set
< DtSimObjectListActivityCallbackInfo
*, ObjectCallbackListCmp
ToBeRemovedList
 List of DtSimObjectListActivityCallbackFcn*s.
typedef DtBoost::shared_ptr
< DtCreateQueueEntry
DtCreateQueueEntryPtr
 Object creation queue; objects are only created once the terrain at the requested location has been paged in.
typedef std::list
< DtCreateQueueEntryPtr
DtVrfObjectCreateQueue
typedef DtBoost::shared_ptr
< DtModifyQueueEntry
DtModifyQueueEntryPtr
 Object modification queue; objects which are ground clamped are only moved once the terrain at the requested location has been paged in.
typedef std::list
< DtModifyQueueEntryPtr
DtVrfObjectModifyQueue
typedef boost::unordered_map
< DtString,
DtSharedVrfObjectReference
GlobalIdToObjectMap
typedef DtCallbackList< const
DtVrfObjectNameChangedCallbackInfo & > 
DtNameChangedCallbackList
typedef DtCallbackList< const
DtVrfObjectUUIDChangedCallbackInfo & > 
DtUUIDChangedCallbackList
typedef DtCallbackList< const
DtVrfObjectAboutToBePublishedCallbackInfo & > 
VrfObjectAboutToBePublishedCallbackList
typedef boost::unordered_map
< DtUUID,
DtSharedVrfObjectReference
UUIDToObjectMap
typedef boost::unordered_map
< DtString,
DtSharedVrfObjectReference
NameToObjectMap
typedef boost::unordered_map
< DtVrfObject
*, DtSharedVrfObjectReference
ObjectToObjectMap

Protected Member Functions

virtual void processOrganizationManagerReady (const DtOrganizationManagerReadyCallbackInfo &)
 Called when organization manager ready state has changed.
virtual void invokeOrganizationManagerReadyCallbacks (const DtOrganizationManagerReadyCallbackInfo &)
virtual DtObjectType potentialRandomObjectTypeFrom (const DtObjectType &original)
 Called when creating a VRF object. If this is a randomized object type, then pick a random object to create from it.
virtual void rediscoverNonVRFEntities ()
 Walks through the reflected entity list and rediscovers entities which don't have VRF global id's.
virtual void remove (DtVrfObject *simObject)
 Protected here because callers should be calling removeAndDelete to safely get their object queued for removal and deletion.
virtual void remove (DtSharedVrfObjectReference simObject)
virtual DtVrfObjectremove (const DtEntityIdentifier &key)
virtual void invokeObjectManagerAboutToRemoveAllCallbacks () const
 Call all of the DtVrfObjectManagerCallbackFcn functions registered with the object manager.
virtual void onQueueObjectForRemoval (DtVrfObject *vrfObject)
 Hook function called from queueObjectForRemoval().
virtual const Coordinate_SystemcoordinateSystem () const
virtual Coordinate_SystemcoordinateSystem ()
virtual void modifyInterfaceContentForNewObject (DtSimInterfaceContent *, DtVrfObject *, bool &isLocal) const
 Given a list of interface content messages from a create message, inspect and modify as need be for information obtained from the newly created object (such as object name)
virtual std::list< DtVectorcalculateFormationOffsetsBasedOnFootprints (const DtList &) const
 Given the potential list of subordinates, iterate over list and look up parameter data for potential footprint sizes.
virtual std::vector
< Dt3dBoundingVolume > 
boundingVolumesOfChildren (const DtList &subObjects, int &totalLeafNodes) const
 Return a list of the bounding volumes of all the children.
virtual void checkPendingNameRemoval (const DtString &markingText)
 Before adding an object, if there is an object with the same name scheduled for removal, do that now.
virtual void removeVrfObject (const DtUUID &)
 Removes the vrf object from internal lists.
virtual
DtObjectGeometricModelsManager
createObjectModelsManager () const
 Creates new object model manager.
virtual
DtVrfEntityIdentifierFactory
createVrfEntityIdentifierFactory ()
 Creates new entity identifier factory.
virtual
DtVrfObjectPlanAdministrator
createPlanAdministrator ()
 Creates new DtVrfObjectPlanAdministrator.
virtual bool finalizeObjectRead (DtVrfObject *)
virtual DtEntityIdentifier findEntityIdentifier (DtlObjPtr)
virtual
DtSimInternalCommunicationManager
createSimInternalCommunicationManager (DtSimManager *simMgr) const
virtual bool addObjectsReadyForSimulation (PendingObjectsInformation &)
 Returns true if all the objects from this pending object information are ready to simulate (basically their geometry is placable)
virtual void processExtendedLabelsOperation (DtSimMessage *)
virtual void processRequestActivities (DtSimMessage *)
virtual void processRequestJoystickControls (DtSimMessage *)
virtual bool acceptRemoteEnvironmental (const DtEntityType &et) const
 Return true/false to accept a remove environmental.
 DtVrfObjectManager ()
 default constructor
 DtVrfObjectManager (const DtVrfObjectManager &orig)
 copy constructor - not implemented - do not call
DtVrfObjectManageroperator= (const DtVrfObjectManager &orig)
 assignment operator - not implemented - do not call
virtual DtCreateQueueEntrycreateQueueEntryCreator (DtIfCreateVrfObject msg)
 Creates a new DtCreateQueueEntry*, override this function to use a subclassed type.
virtual DtModifyQueueEntrymodifyQueueEntryCreator (DtIfModifyVrfObject msg)
 Creates a new DtModifyQueueEntry*, override this function to use a subclassed type.
- Protected Member Functions inherited from DtRwList
virtual DtListItem * addBefore (DtReaderWriter *data, DtListItem *before)
 Add element to the list just before the indicated item.
virtual DtListItem * addAfter (DtReaderWriter *data, DtListItem *after)
 Add element to the list just after the indicated item.
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 Copies values from the specified DtReaderWriter.
- Protected Member Functions inherited from DtObjectDebugger< DtReaderWriter >
 DtObjectDebugger ()
 DtObjectDebugger (const DtObjectDebugger &)
 ~DtObjectDebugger ()

Static Protected Member Functions

static void modifyVrfObjectCallback (DtSimMessage *msg, void *usr)
 These callbacks are registered on the simManagers Message executive.
static void modifyVrfOverlayCallback (DtSimMessage *msg, void *usr)
static void autoReorganizeCallback (DtSimMessage *msg, void *usr)
static void skipTaskCallback (DtSimMessage *msg, void *usr)
static void setThresholdsCallback (DtSimMessage *msg, void *usr)
static void createVrfObjectCallback (DtSimMessage *msg, void *usr)
 These callbacks are registered on the simManagers Message executive.
static void deleteVrfObjectCallback (DtSimMessage *msg, void *usr)
static void deleteVrfObjectByIdCallback (DtSimMessage *msg, void *usr)
static void vrfObjectDeletedCallback (DtSimMessage *msg, void *usr)
static void orderOfBattleOpCallback (DtSimMessage *msg, void *usr)
static void aggregateAsCallback (DtSimMessage *msg, void *usr)
static void extendedLabelsOperationCallback (DtSimMessage *msg, void *usr)
 Callback to set/retrieve status of extended labels.
static void requestActivitiesCallback (DtSimMessage *msg, void *usr)
 Callback to retrieve all activities.
static void requestJoystickControlsCallback (DtSimMessage *msg, void *usr)
 Callback to retrieve current joystick controls.
static void createVrfObjectPostDrainCallback (void *usr)
 These call a corresponding virtual (overrideable) function to do the actual work of handling the message (see the above functions starting with the word 'process', e.g.
static void deleteVrfObjectPostDrainCallback (void *usr)
static void deleteVrfObjectByIdPostDrainCallback (void *usr)
static void vrfObjectDeletedPostDrainCallback (void *usr)
static void aggregateAsPostDrainCallback (void *usr)
static void envProcessAddedCallback (DtReflectedEnvironmentProcess *envProcess, void *userData)
static void envProcessRemovedCallback (DtReflectedEnvironmentProcess *envProcess, void *userData)
static bool envProcessDiscoveryCriteria (DtReflectedObject *envProcess, void *userData)
static void organizationManagerReadyCallback (const DtOrganizationManagerReadyCallbackInfo &info, void *usr)
static void postInitFromParamsCallback (DtVrfObject *vrfObject, void *usr)
 Callback function used to possibly override a newly created entity's parameter values.

Protected Attributes

DtRemoteComponentAttachmentManagermyRemoteComponentAttachmentManager
 List of components to attach to remote, non-vrf entities.
DtHashlist * mySimObjectList
 Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.
DtReflectedExtEntityListmyRemoteEntitiesList
 VR-Link reflected entity list.
DtReflectedExtAggregateListmyRemoteAggregateEntitiesList
 VR-Link reflected aggregate list.
DtReflectedDesignatorListmyRemoteDesignatorsList
 VR-Link reflected designator list.
DtReflectedActiveSonarList * myRemoteActiveSonarList
DtReflectedPropulsionNoiseList * myRemotePropulsionNoiseList
DtVrfParameterDbmyParameterDatabase
 Parameter database used in creation and initialization of DtVrfObjects.
DtList myAboutToBePublisheddSimObjectCallbackList
 List of DtVrfObjectAboutToBePublishedCallbackFcn.
DtList myAboutToBeLoadedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
DtList myAboutToBeAddedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
AddedList myAddedSimObjectCallbackList
tbb::spin_rw_mutex myAddedSimObjectCallbackListMutex
ToBeRemovedList myAboutToBeRemovedSimObjectCallbackList
tbb::spin_rw_mutex myAboutToBeRemovedSimObjectCallbackListMutex
std::set
< DtSimObjectListActivityCallbackInfo * > 
myRemovalCallbacksRemoved
DtString mySimObjectType
 Type of DtSimObject to create. Types are defined in simObjectTypes.h.
DtSimObjectIteratormyIterator
DtExerciseConn * myExerciseConn
int myIndexSize
 All hash indices for our objects should be created this size.
DtManagedObjectListManagermyFilteredObjectListManager
DtVrfObjectFilterIteratormyVrfIterator
DtSimManagermySimManager
std::set< DtUUIDmyObjectsToRemoveQueue
 Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval.
std::map< DtString, std::set
< DtUUID > > 
myObjectsToRemoveByNameQueue
DtVrfObjectCreateQueue myObjectsToCreateQueue
DtVrfObjectModifyQueue myObjectsToModifyQueue
bool myAutoReorganizeFlag
 Automatic reorganization flag for pseudo-aggregate entities.
DtReflectedControlObjectListmyRemoteEnvironmentalsList
int myNameCounter
GlobalIdToObjectMap myGlobalIdToObjectMap
DtOrganizationManagermyOrganizationManager
DtEchelonIdTablemyEchelonIdTable
DtDiGuyCharacterDataManagermyCharacterMgr
const Coordinate_SystemmyCoordinateSystemPtr
double myTimeToPublishNextStateUpdate
DtObjectGeometricModelsManagermyObjectModelsManager
DtSimInternalCommunicationManagermySimInternalCommunicationManager
DtVrfObjectPlanAdministratormyPlanAdministrator
DtNameChangedCallbackList myObjectNameChangedCallbackList
DtUUIDChangedCallbackList myObjectUUIDChangedCallbackList
VrfObjectAboutToBePublishedCallbackList myVrfObjectAboutToBePublishedCallbackList
DtOrganizationReadyCallbackList myOrganizationManagerReadyCallbackList
DtConsoleCommandOwnermyConsoleCommands
DtRwActivities myActivities
bool myImportingScenario
bool myCreatedCharacterManager
DtAssembliesReaderWriter::RwRootNode myRollUpRules
bool myPublishZeroVelocityWhenPaused
bool mySetDeadReckoningAlgorithmToStaticOnPause
DtTaskVisualizationPublicationMode myTaskVisualizationPublicationMode
bool myUseDrawControlForTaskVisualizations
UUIDToObjectMap myUUIDToObjectMap
NameToObjectMap myNameToObjectMap
NameToObjectMap myAwaitingToBeCreatedMap
ObjectToObjectMap myObjectToObjectMap
DtImportScenarioData myImportScenarioData
unsigned myInvokingSimObjectAddedCallbacks
unsigned myInvokingSimObjectAboutToBeAddedCallbacks
unsigned myInvokingSimObjectAboutToBeLoadedCallbacks
unsigned myInvokingSimObjectAboutToBeRemovedCallbacks
std::vector< DtVrfObject * > myJustAdded
std::map< int, DtlObjPtr > mySortedByEntityId
ObjectsAwaitingDiscovery myObjectsAwaitingDiscovery
DtVrfEntityIdentifierFactorymyEntityIdentifierFactory
bool myReuseEntityIdentifiersOnScenarioLoad
bool myLoadingScenarioInformation
bool myCanSimulate
std::vector< DtEntityType > myStealthTypes
std::vector
< DtVrfObjectManagerCallbackInfo
myAboutToRemoveAllCallbackList

Additional Inherited Members

- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
static DtGetSelfCallbackInfo thePostGetSelfCallback
static DtPutSelfCallbackInfo thePrePutSelfCallback
static const DtVariableBindingsList theEmptyVariableBindingsList
static bool theCreatorFcnSet
static DtReaderWriterFactorytheFactory
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
static bool thePutIndent

Detailed Description

class DtVrfObjectManager:

Instances of DtVrfObjectManager are responsible for the creation, maintainance, and removal of all vrf objects in a simulation.

Related examples
Other uses in examples

Member Typedef Documentation

typedef std::list<DtReflectedActiveSonar*> DtVrfObjectManager::ReflectedActiveSonars

Simulation object groups that are awaiting to be "discovered".

List of DtSimObjectListActivityCallbackFcn*s.

Clients register callback functions on this list for notification of when a new DtSimObject has been added.

List of DtSimObjectListActivityCallbackFcn*s.

Clients register callback functions on this list for notification of when a DtSimObject is about to be removed.

typedef DtBoost::shared_ptr<DtCreateQueueEntry> DtVrfObjectManager::DtCreateQueueEntryPtr
protected

Object creation queue; objects are only created once the terrain at the requested location has been paged in.

typedef DtBoost::shared_ptr<DtModifyQueueEntry> DtVrfObjectManager::DtModifyQueueEntryPtr
protected

Object modification queue; objects which are ground clamped are only moved once the terrain at the requested location has been paged in.

typedef boost::unordered_map<DtUUID, DtSharedVrfObjectReference> DtVrfObjectManager::UUIDToObjectMap
protected

Member Enumeration Documentation

Defines how the initial DtAggregateState should be set upon creation of an aggregate entity.

Options are to either specify rely on the value specified in the parameter database entry, or set the state explicitly.

Enumerator:
DtUseParameterDatabaseAggregateState 
DtCreateAggregatedEntity 
DtCreateDisaggregatedEntity 

Constructor & Destructor Documentation

DtVrfObjectManager::DtVrfObjectManager ( DtSimManager simManager,
int  entityAdvisory = 100 
)

constructor

virtual DtVrfObjectManager::~DtVrfObjectManager ( )
virtual

destructor DMSO RTI Compatibility note: Because objects must send out DtIfVrfObjectDeleted messages before being deleted, calling this destructor from within a message callback may cause a concurrent access exception with the DMSO RTI.

DtVrfObjectManager::DtVrfObjectManager ( )
protected

default constructor

DtVrfObjectManager::DtVrfObjectManager ( const DtVrfObjectManager orig)
protected

copy constructor - not implemented - do not call

Member Function Documentation

virtual void DtVrfObjectManager::clearRemoteComponentAttachmentSystem ( )
virtual

Empty any attachment info that's waiting to be applied to entities.

Component Attachment to remote objects.

virtual bool DtVrfObjectManager::reuseEntityIdentifiersOnScenarioLoad ( ) const
virtual

Set to true in order to reuse object identifiers that might be part of the scenario.

If the object identifier saved in the order of battle does not currently match the site/app of the back-end loading that object, then the user will be warned and the object will be assigned a new entity identifier that is compliant with that site/app. This will not apply to simulation object groups or scenario import. They will always get new entity identifiers

virtual void DtVrfObjectManager::setReuseEntityIdentifiersOnScenarioLoad ( bool  )
virtual
virtual DtEntityIdentifier DtVrfObjectManager::nextEntityIdentifier ( DtVrfObject ,
const DtEntityIdentifier &   
)
virtual

Returns the next usable entity identifier for publication for the given object.

Calls down to the entity identifier manager for this using the object and the proposed entity identifier

virtual void DtVrfObjectManager::addVrfObjectAboutToBePublishedCallback ( DtVrfObjectAboutToBePublishedCallbackFcn  fcn,
void *  usrData 
)
virtual
virtual void DtVrfObjectManager::removeVrfObjectAboutToBePublishedCallback ( DtVrfObjectAboutToBePublishedCallbackFcn  fcn,
void *  usrData 
)
virtual
virtual void DtVrfObjectManager::createRemoteComponentAttachmentManager ( )
virtual

Creates the DtRemoteComponentAttachmentManager.

Called from create(); Override to return customized type.

virtual bool DtVrfObjectManager::isRemoteComponentAttachment ( const DtUUID ) const
virtual

Returns true if the object is a remote component that is attached.

virtual bool DtVrfObjectManager::initializeRemoteComponentAttachmentSystem ( const DtFilename &  fromFile)
virtual

Purge the remote component attachment system, then reinitialize from the file.

DtRemoteComponentAttachmentManager * DtVrfObjectManager::remoteComponentAttachmentManager ( )
inline

Returns the remote component attachment manager.

References myRemoteComponentAttachmentManager.

const DtRemoteComponentAttachmentManager * DtVrfObjectManager::remoteComponentAttachmentManager ( ) const
inline
virtual bool DtVrfObjectManager::create ( )
virtual

Virtual construction - must be called before any other member functions are called.

virtual bool DtVrfObjectManager::init ( )
virtual

Initialization - must be called after create() and before any other member functions are called.

Sets the type of objects to create to DtVrfObjectType.

Reimplemented in MyObjectManager.

virtual bool DtVrfObjectManager::createDIGuyCharacterManager ( const DtFilename &  diGuyAnimationsFile)
virtual

If Using DI-Guy Need to create the character manager.

virtual bool DtVrfObjectManager::add ( DtVrfObject simObject)
virtual

Creates a DtEntityIdentifierHashKey for the object and then adds it to mySimObjectList.

If simObject has a 0 entity identifier, a new identifier will be assigned to it. Only the DtVrfObjectManager can add objects to itself. To add a new local sim object, call createAndInitSimObject() to add a newly created sim object. Sends out a vrf object created message. NOTE - Only this class (DtVrfObjectManager) should typically be the one to invoke this call. Included as part of the public interface for testing purposes only.

virtual void DtVrfObjectManager::completeObjectAddition ( DtVrfObject simObject)
virtual

Called when the object is ready to simulate and add as part of the simulation.

virtual bool DtVrfObjectManager::loadingScenarioInformation ( ) const
virtual

Return true if order of battle for scenario load, import or simulation object group creation is happening.

virtual void DtVrfObjectManager::setParameterDatabase ( DtVrfParameterDb parameterDatabase)
virtual

Parameter database used in creation and initialization of DtVrfObjects.

virtual DtVrfParameterDb* DtVrfObjectManager::parameterDatabase ( )
virtual
virtual DtManagedObjectListConstPtr DtVrfObjectManager::getList ( const DtVrfObjectPredicate predicate,
bool  reevaluateFlag = false,
DtTime  evaluationPeriod = 0 
)
virtual
virtual void DtVrfObjectManager::setImportingScenario ( bool  )
virtual

Will be true if currently importing scenario.

virtual bool DtVrfObjectManager::importingScenario ( ) const
virtual
virtual void DtVrfObjectManager::setImportScenarioData ( const DtImportScenarioData )
virtual

Data used for import.

virtual const DtImportScenarioData& DtVrfObjectManager::importScenarioData ( ) const
virtual
virtual const DtVrfObjectFilterIterator& DtVrfObjectManager::vrfIterator ( const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
) const
virtual
virtual const DtVrfObjectFilterIterator& DtVrfObjectManager::vrfIterator ( const DtVrfObjectPredicate predicate) const
virtual
virtual const DtVrfObjectFilterIterator& DtVrfObjectManager::vrfIterator ( DtFilterFcn  filter,
bool  invertFilter = false,
void *  usrData = 0 
) const
virtual

typedef bool (DtFilterFcn)(const DtVrfObject object, void* usr); ACTUAL DEFINITION IN fltrFcnInf.h, provided here for readability.

virtual void DtVrfObjectManager::removeAndDelete ( const DtUUID objectName)
virtual

Calls queueObjectForRemoval to schedule object for removal from object manager and deletion.

virtual void DtVrfObjectManager::removeAndDelete ( DtSharedVrfObjectReference  simObject)
virtual
virtual void DtVrfObjectManager::removeAndDelete ( const DtEntityIdentifier &  key)
virtual
virtual void DtVrfObjectManager::removeAndDelete ( DtVrfObject object)
virtual
std::set<DtGlobalObjectDesignator> DtVrfObjectManager::remoteObjectGlobalIds ( bool  onlyVrfSimulated = true) const

Returns a set of global object ids for all remote objects.

virtual void DtVrfObjectManager::removeAndDeleteAllLocals ( )
virtual

Queues all locally simulated objects for removal.

virtual void DtVrfObjectManager::removeAndDeleteAll ( )
virtual

Calls invokeAllObjectManagerRemoveAllCallbacks() and then queues all simulated objects for removal.

Reimplemented from DtRwList.

virtual void DtVrfObjectManager::setExerciseConnection ( DtExerciseConn *  connection)
virtual

Calls createRemoteEntitiesList(), createRemoteAggregatesList(), and createRemoteEnvironmentalsList().

Sets the site:app to be used in generating entity identifiers for unique keys (DIS only).

virtual void DtVrfObjectManager::createRemoteEnvironmentalsList ( DtExerciseConn *  exConn)
virtual
virtual void DtVrfObjectManager::setPublishZeroVelocityWhenPaused ( bool  )
virtual

Sets whether or not to publish zero velocity (and acceleration) when paused.

Default is true

virtual bool DtVrfObjectManager::publishZeroVelocityWhenPaused ( ) const
virtual
virtual void DtVrfObjectManager::setSetDeadReckoningAlgorithmToStaticOnPause ( bool  )
virtual

When the simulation is paused set the dead reckoning algorithm for aggregates and entities to static.

This turned on in conjunction with publishZeroVelocityWhenPaused turn off will pause the objects in a VR-Forces run simulation and still show current values for velocity, speed, acceleration, etc.

virtual bool DtVrfObjectManager::setDeadReckoningAlgorithmToStaticOnPause ( ) const
virtual
virtual void DtVrfObjectManager::setTaskVisualizationPublicationMode ( DtTaskVisualizationPublicationMode  mode)
virtual

If and when task visualizations should be published to the network.

virtual DtTaskVisualizationPublicationMode DtVrfObjectManager::taskVisualizationPublicationMode ( ) const
virtual
virtual void DtVrfObjectManager::setUseDrawControlForTaskVisualizations ( bool  )
virtual

Publish task visualizations as VRV draw control objects rather than their standard, VR-Forces specific format.

virtual bool DtVrfObjectManager::useDrawControlForTaskVisualizations ( ) const
virtual
virtual DtReflectedControlObjectList* DtVrfObjectManager::reflectedEnvironmentProcessList ( ) const
virtual

Get the reflected environment process list.

virtual DtReflectedControlObjectList* DtVrfObjectManager::createReflectedControlObjectList ( DtExerciseConn *  exConn)
virtual

Called to create the reflected environmental list.

Override this to return your subclass of the DtReflectedControlObjectList to extend that lists functionality

virtual void DtVrfObjectManager::registerInterfaceCallbacks ( )
virtual

Registers callbacks on the sim manager's interface message executive for create-entity, remove-entity, request-entity-name and order-of-battle op messages (like read and write).

If you override this make sure you call the base function, or the entity manager will stop responding to those messages. Called by init().

virtual const DtSimManager* DtVrfObjectManager::simManager ( ) const
virtual

Get a const pointer to the simulation manager.

virtual DtSimManager* DtVrfObjectManager::simManager ( )
virtual

Get a pointer to the simulation manager.

virtual void DtVrfObjectManager::processCreateVrfObject ( DtSimMessage msg)
virtual

Registered with the message executive to handle the CreateVrfObject message.

Checks to make sure the content type is DtIfCreateVrfObject and that the message was addressed to the back-end which owns this object manager. If so the DtIfCreateVrfObject is passed to createQueueEntryCreator to create a DtCreateQueueEntry, and then isReadyForExecution is called on it to see if all the required terrain has been paged in. If the data is not available, the DtCreateQueueEntry is added to the myObjectsToCreateQueue and will eventually be handled by tick.

virtual void DtVrfObjectManager::processCreateVrfObject ( DtIfCreateVrfObject  ifCreateVrfObject)
virtual

The ifCreateVrfObject is passed to createAndInitVrfObject and if the create is successful, DtVrfObjectStateRepository::place is called to give the entity its initial position and orientation.

The non-blocking place call is made with the expectation that DtCreateQueueEntry has queued the create until the terrain is available. If place() returns the dataAvailable parameter as false a warning will be printed.

virtual void DtVrfObjectManager::processModifyVrfObject ( DtSimMessage msg)
virtual

Registered with the message executive to handle the ModifyVrfObject message.

Checks to make sure the content type is DtIfCreateVrfObject and if so the DtIfModifyVrfObject is passed to modifyQueueEntryCreator to create a DtModifyQueueEntry, and then isReadyForExecution is called on it to see if all the required terrain has been paged in. If the data is not available, the DtModifyQueueEntry is added to the myObjectsToModifyQueue and will eventually be handled by tick.

virtual void DtVrfObjectManager::processModifyVrfObject ( DtIfModifyVrfObject  modObj)
virtual

The object identifier in the DtIfModifyVrfObject is used to look up a DtVrfObject.

If it doesn't exist or if it exists but is remote, the message is ignored. If it is a valid local object, setFromMessageContent is called on the object. If the object has a state repository of type DtVrfOverlayObjectStateRepository and isOverlayParentSpecified is true in the DtIfModifyVrfObject, setParentName is called on the object.

virtual void DtVrfObjectManager::processModifyVrfOverlay ( DtSimMessage msg)
virtual

Registered with the message executive to handle the ModifyVrfOverlay message.

virtual void DtVrfObjectManager::processDeleteVrfObject ( DtSimMessage msg)
virtual

Registered with the message executive to handle the DeleteVrfObject message.

virtual void DtVrfObjectManager::processDeleteVrfObjectById ( DtSimMessage msg)
virtual

Registered with the message executive to handle the DeleteVrfObjectById message.

virtual void DtVrfObjectManager::processVrfObjectDeleted ( DtSimMessage msg)
virtual

Registered with the message executive to handle the VrfObjectDeleted message.

virtual void DtVrfObjectManager::processAutoReorganize ( DtSimMessage msg)
virtual

Registered with the message executive to handle the AutoReorganize message.

virtual void DtVrfObjectManager::processAggregateAs ( DtSimMessage msg)
virtual

Registered with the message executive to handle the AggregateAs message.

virtual void DtVrfObjectManager::processSkipTask ( DtSimMessage msg)
virtual

Registered with the message executive to handle the SkipTask message.

virtual void DtVrfObjectManager::processSetThresholds ( DtSimMessage msg)
virtual

Called by setThresholdsCallback.

Iterates over the object manager setting the threshold values for all entities to -1 (to force them to pick up the new defaults) and then makes the static DtThresholder calls to change the defaults.

virtual void DtVrfObjectManager::processEntityAddedCallback ( DtReflectedExtEntity entity)
virtual

These functions override the base class versions to check to see if reflected object being added is from one of our own locally simulated objects.

If it is, it returns immediately. If not, it calls down to the base class version.

virtual void DtVrfObjectManager::processAggregateAddedCallback ( DtReflectedExtAggregate aggregate)
virtual
virtual void DtVrfObjectManager::processEntityRemovedCallback ( DtReflectedExtEntity entity)
virtual

Override the base class version to schedule object for removal, rather than removing right away.

virtual void DtVrfObjectManager::processAggregateRemovedCallback ( DtReflectedExtAggregate aggregate)
virtual
virtual void DtVrfObjectManager::processDesignatorAddedCallback ( DtReflectedDesignator *  des)
virtual
virtual void DtVrfObjectManager::processDesignatorRemovedCallback ( DtReflectedDesignator *  des)
virtual
virtual void DtVrfObjectManager::processDesignatorChangedCallback ( DtReflectedDesignator *  des)
virtual
DtBoolean DtVrfObjectManager::processDesignatorDiscoveryCriteria ( DtReflectedDesignator *  des)
virtual void DtVrfObjectManager::processActiveSonarAddedCallback ( DtReflectedActiveSonar *  des)
virtual
virtual void DtVrfObjectManager::processActiveSonarRemovedCallback ( DtReflectedActiveSonar *  des)
virtual
virtual void DtVrfObjectManager::processActiveSonarChangedCallback ( DtReflectedActiveSonar *  des)
virtual
DtBoolean DtVrfObjectManager::processActiveSonarDiscoveryCriteria ( DtReflectedActiveSonar *  des)
virtual ReflectedActiveSonars DtVrfObjectManager::findActiveSonarsForHostEntity ( const DtVrfObject host) const
virtual
virtual void DtVrfObjectManager::processPropulsionNoiseAddedCallback ( DtReflectedPropulsionNoise *  des)
virtual
virtual void DtVrfObjectManager::processPropulsionNoiseRemovedCallback ( DtReflectedPropulsionNoise *  des)
virtual
virtual void DtVrfObjectManager::processPropulsionNoiseChangedCallback ( DtReflectedPropulsionNoise *  des)
virtual
DtBoolean DtVrfObjectManager::processPropulsionNoiseDiscoveryCriteria ( DtReflectedPropulsionNoise *  des)
virtual bool DtVrfObjectManager::hasEnabledActiveSonar ( const DtVrfObject host) const
virtual
virtual DtReflectedPropulsionNoise* DtVrfObjectManager::propulsionNoiseForHost ( const DtVrfObject host) const
virtual
virtual void DtVrfObjectManager::processAggregateChanged ( DtReflectedExtAggregate aggregate)
virtual

Override the base class version to make a call to DtOrganizationManager.

virtual void DtVrfObjectManager::processEnvProcessAddedCallback ( DtReflectedEnvironmentProcess envProcess)
virtual
virtual void DtVrfObjectManager::processEnvProcessRemovedCallback ( DtReflectedEnvironmentProcess envProcess)
virtual
virtual bool DtVrfObjectManager::processEnvProcessDiscoveryCriteria ( DtReflectedEnvironmentProcess envProcess)
virtual
virtual void DtVrfObjectManager::removeObjectSubordinates ( DtVrfObject object)
virtual

Queues all the subordinates of this object for removal, or sends deleteObject messages for any of the remote subordinates.

virtual void DtVrfObjectManager::queueObjectForRemoval ( const DtEntityIdentifier &  key)
virtual

Schedule a given vrf object to be removed.

Object will be removed at at the end of this tick. Calls onQueueObjectForRemoval().

virtual void DtVrfObjectManager::queueObjectForRemoval ( const DtUUID key)
virtual
virtual void DtVrfObjectManager::removeObjectsQueuedForRemoval ( )
virtual

Removes all vrf objects on the list at the end of each tick.

virtual void DtVrfObjectManager::tick ( )
virtual

Processes all pending object creations on the myObjectsToCreateQueue by checking DtCreateQueueEntry::isReadyForCreation which if true causes the create message to be passed on to processCreateVrfObject.

Calls the tick() function on all of the DtVrfObject objects. Ticks the vrf object manager. Calls removeObjectQueuedForRemoval() at the end of this function. If you override the tick(), make sure that you call down to the base class version. Make sure that the call to the base class version occurs at the end of your derived tick().

Reimplemented in MyObjectManager.

virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( DtIfCreateVrfObject creationInfo)
virtual

Create a new local vrf object from an interface message.

virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( DtIfAggregateAs aggInfo)
virtual
virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( DtReflectedEntity *  entity)
virtual

Create a new remote vrf object from a network packet.

virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( DtReflectedAggregate *  aggregate,
int  superType = DtObjectTypeAggregate 
)
virtual
virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( DtReflectedEnvironmentProcess envProcess)
virtual
virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( const DtObjectType objectType,
bool  publishLocalObject = true,
const DtString objectName = DtString::nullString(),
const DtString objectLabel = DtString::nullString(),
DtForceType  forceType = DtForceOther,
const DtList *  vertices = 0,
const DtTaitBryan *  orientation = 0,
bool  projection = false,
bool  closedFigure = false,
const DtAppearance &  appearance = DtAppearance::nullAppearance(),
const DtString readerWriterName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0,
bool  createSubObjects = false,
DtVrfObjectUserInitFcn  userInit = 0,
void *  userInitData = 0,
bool  organize = true,
const DtString startingFormation = DtDefaultFormationString,
DtVrfObjectManager::DtAggregateCreationMode  initialAggregateState = DtVrfObjectManager::DtUseParameterDatabaseAggregateState,
unsigned long  requestId = 0,
const DtString overlayParent = "" 
)
virtual

Creates a new local vrf object and adds it to our list of managed vrf objects.

The vertices argument is a list of DtVectors, specifying the object geometry in geocentric coordinates. Use this form of createAndInitVrfObject() to create control objects whose object geometry is made up of multiple vertices, such as routes, control areas, and minefields).

Parameters
startingFormationThe name of the starting formation, if this new entity is an aggregate. Defaults to DtDefaultFormationString.
virtual DtVrfObject* DtVrfObjectManager::createAndInitVrfObject ( const DtObjectType objectType,
bool  publishLocalObject = true,
const DtString objectName = DtString::nullString(),
const DtString objectLabel = DtString::nullString(),
DtForceType  forceType = DtForceOther,
const DtVector position = DtVector::zero(),
const DtTaitBryan *  orientation = 0,
bool  projection = false,
bool  closedFigure = false,
const DtAppearance &  appearance = DtAppearance::nullAppearance(),
const DtString readerWriterName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0,
bool  createSubObjects = false,
DtVrfObjectUserInitFcn  userInitFcn = 0,
void *  userInitData = 0,
bool  organize = true,
const DtString startingFormation = DtDefaultFormationString,
DtVrfObjectManager::DtAggregateCreationMode  initialAggregateState = DtVrfObjectManager::DtUseParameterDatabaseAggregateState,
unsigned long  requestId = 0,
const DtString overlayParent = "" 
)
virtual

Creates a new local vrf object and adds it to our list of managed vrf objects.

The position argument is the location of the object in geocentric coordinates. Use this form of createAndInitVrfObject() to create objects with simple object geometry (single vertex defining object geometry), such as entities and waypoints.

Parameters
startingFormationThe name of the starting formation, if this new entity is an aggregate. Defaults to DtDefaultFormationString.
virtual void DtVrfObjectManager::createSubObjectsFromParameters ( DtVrfObject parent,
bool  publishSubobjects,
unsigned long  requestId,
const DtString overlayParent 
)
virtual

Iterates through list of DtVrfSubObjectParameterEntry*s in the parent object's parameter entry (DtVrfObjectParameters::subordinateObjects()).

Calls createSubObjectFromParameterEntry() for each item in the subordinateObjects() list to create the subordinate, and then calls myOrganizationManager->queueSetSuperior() to arrange for new subordinate to set of parent's subordinates.

virtual DtVrfObject* DtVrfObjectManager::createSubObjectFromParameterEntry ( const DtVrfSubObjectParameterEntry entry,
const DtVector positionOffsetFromParent,
const DtVrfObject parent,
const DtString formationName,
bool  publishSubObject,
unsigned long  requestId = 0,
const DtString overlayParent = "" 
)
virtual

Returns a newly created DtVrfObject, given the information passed in through the entry parameter.

Calls the non-blocking form of place() on the state repository of each object created with the expectation that processCreateVrfObject has queued the create until the terrain is available. If place() returns the dataAvailable parameter as false a warning will be printed to the console.

virtual bool DtVrfObjectManager::readOrderOfBattleFile ( const DtFilename &  filename)
virtual

Read/write order of battle file.

virtual bool DtVrfObjectManager::readOrderOfBattleFile ( const std::vector< std::string * > &  oob)
virtual
virtual bool DtVrfObjectManager::readOrderOfBattleFile ( DtlInputStream *  )
virtual

Saves OOB file to the named file.

virtual bool DtVrfObjectManager::readOrderOfBattleFileFromZipFile ( const DtFilename &  zipFile,
const DtString filename 
)
virtual
virtual bool DtVrfObjectManager::writeOrderOfBattleFile ( const DtString filename)
virtual
virtual bool DtVrfObjectManager::writeOrderOfBattleFile ( std::string &  stream)
virtual

Writes the OOB file contents into the supplied stream.

virtual bool DtVrfObjectManager::writeOrderOfBattleFile ( std::vector< std::string * > &  vecOfStreams)
virtual
virtual bool DtVrfObjectManager::writeSimulationObjectGroupOrderOfBattleFile ( const DtString filename,
int  flags,
boost::unordered_set< DtUUID > &  uuidsSaved 
)
virtual

Like the writeOrderOfBattleFile, except will save out an offset from the center of mass with altitude above sea level or above terrain (on object recreation).

See scenario.h DtGroupCreationFlags for flags

virtual std::vector<DtVrfObject*> DtVrfObjectManager::readSimulationObjectGroupOrderOfBattleFile ( const DtString filename,
int  flags,
DtForceType  force,
DtlObjPtr *  retArgs = 0,
bool errorLoading = 0 
)
virtual

Like readOrderOfBattleFile, read in the file with the notion of offsetting all positions of objects by the supplied geometric center.

For flags see scenario.h for simulation object creation. If retArgs is specified returns arguments read in pointer

virtual std::vector<DtVrfObject*> DtVrfObjectManager::readSimulationObjectGroupOrderOfBattleFileFromZipFile ( const DtFilename &  scenarioZipFile,
const DtString filename,
int  flags,
DtForceType  force,
DtlObjPtr *  retArgs = 0,
bool errorLoading = 0 
)
virtual
virtual std::vector<DtVrfObject*> DtVrfObjectManager::readSimulationObjectGroupOrderOfBattleFile ( int  flags,
DtForceType  force,
DtlObjPtr &  args 
)
virtual
virtual std::vector<DtVrfObject*> DtVrfObjectManager::readSimulationObjectGroupOrderOfBattleFile ( DtlInputStream *  fStream,
int  flags,
DtForceType  force,
DtlObjPtr *  retArgs = 0,
bool errorLoading = 0 
)
virtual
virtual bool DtVrfObjectManager::objectShouldBeSavedToOrderOfBattle ( const DtVrfObject vrfObject) const
virtual

Called by writeOrderOfBattleFile to determine if an entity should be saved to the order of battle file by making sure it is a local object with a VR-Forces globalId.

virtual bool DtVrfObjectManager::objectShouldBeSavedToSimulationObjectGroup ( const DtVrfObject vrfObject) const
virtual
virtual DtVrfObject* DtVrfObjectManager::createObjectFromMemoryBuffer ( const std::string &  buffer)
virtual
virtual DtlObjPtr DtVrfObjectManager::getData ( DtlObjPtr  args,
const DtReaderWriter::SearchPaths searchPaths,
const DtVariableBindingsList variableBindings 
)
virtual

This method must be overridden by a subclass.

  Within this method, new instances of the DtReaderWriter subclass
  that is being handled by this list must be created, and then retrieved
  from the mtl stream, using the getSelf member of that item.
  \par
  Here is some sample code that could be used to implement a 
  override of this class:  (This is used in the DtRwIntegerList::getData() method)
  @code 

DtlObjPtr nameObj = DtcCar(args); DtRwInt* value = new DtRwInt(nameObj->pname()); value->getSelf(args, searchPaths, variableBindings); this->add(value); return DtcCdr(DtcCdr(args));

Implements DtRwList.

static void DtVrfObjectManager::tickCallback ( void *  args)
static

This callback is registered on the sim manager's tick list.

The sim manager calls this function when it is ticked.

virtual void DtVrfObjectManager::addVrfObjectAboutToBeAddedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtVrfObject is about to be added.

Specify a DtObjectType filter to restrict notification to particular types of DtVrfObjects.

virtual void DtVrfObjectManager::addVrfObjectAddedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtVrfObject is added.

Specify a DtObjectType filter to restrict notification to particular types of DtVrfObjects.

virtual void DtVrfObjectManager::addVrfObjectAboutToBeLoadedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtVrfObject is about to be load from the order of battle file.

Specify a DtObjectType filter to restrict notification to particular types of DtVrfObjects.

virtual void DtVrfObjectManager::addVrfObjectAboutToBeRemovedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a DtVrfObject going to be removed.

Specify a DtObjectType filter to restrict notification to particular types of DtVrfObjects.

virtual void DtVrfObjectManager::removeVrfObjectAboutToBeAddedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtVrfObject is about to load from the order of battle file.

virtual void DtVrfObjectManager::removeVrfObjectAboutToBeLoadedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtVrfObject is about to load from the order of battle file.

virtual void DtVrfObjectManager::removeVrfObjectAddedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtVrfObject is added.

virtual void DtVrfObjectManager::removeVrfObjectAboutToBeRemovedCallback ( DtVrfObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a DtVrfObject is removed.

virtual void DtVrfObjectManager::addObjectManagerAboutToRemoveAllCallback ( DtVrfObjectManagerCallbackFcn  fcn,
void *  usrData 
)
virtual

Add a callback to be invoked whenever all objects are about to be removed from the the object manager.

virtual void DtVrfObjectManager::removeObjectManagerAboutToRemoveAllCallback ( DtVrfObjectManagerCallbackFcn  fcn,
void *  usrData 
)
virtual

Remove a callback to be invoked whenever all objects are about to be removed from the the object manager.

virtual void DtVrfObjectManager::addOrganizationManagerReadyCallback ( DtOrganizationManagerReadyCallbackFcn  fcn,
void *  usrData 
)
virtual

Add callback to be invoked when the organization manager readiness changes.

virtual void DtVrfObjectManager::removeOrganizationManagerReadyCallback ( DtOrganizationManagerReadyCallbackFcn  fcn,
void *  usrData 
)
virtual

Removes callback to be invoked when the organization manager readiness changes.

virtual void DtVrfObjectManager::enableAutoReorganization ( )
virtual

Enables/disables auto reorganization of pseudo-aggregates.

virtual void DtVrfObjectManager::disableAutoReorganization ( )
virtual
virtual bool DtVrfObjectManager::autoReorganizeEnabled ( ) const
virtual

Returns true if auto-reorganization is enabled, false if not.

virtual DtEntityIdentifier DtVrfObjectManager::mapUUIDToEntityIdentifier ( const DtUUID ) const
virtual

Looks up the entity identifier for the given object unique identifier.

virtual DtGlobalObjectDesignator DtVrfObjectManager::mapUUIDToGlobalId ( const DtUUID ) const
virtual
virtual DtUUID DtVrfObjectManager::mapGlobalIdToUUID ( const DtGlobalObjectDesignator ) const
virtual
virtual bool DtVrfObjectManager::objectNameExists ( const DtString ) const
virtual

Checks to see if the name exists.

Use this call if you do not want to create a temporary node that will be returned for awaiting the appearance of that named object

virtual DtSharedVrfObjectReference DtVrfObjectManager::lookupTopLevelVrfObject ( DtForceType  forceType)
virtual

Look up top-level superior, given the force type.

virtual DtString DtVrfObjectManager::nextNameWithPrefix ( const DtObjectType objectType,
const DtString potentialPrefix 
)
virtual

Returns a new unique name given the prefix (stripped of numbers, if there are some at the end)

virtual DtString DtVrfObjectManager::nextNameWithPrefix ( int  maxLength,
const DtString potentialPrefix 
)
virtual

Returns a new unique name given the prefix (stripped of numbers, if there are some at the end) that conforms to the maximum length.

virtual DtVrfObject* DtVrfObjectManager::createAndInitTopLevelVrfObject ( DtForceType  forceType)
virtual

Creates and adds a top-level superior of a given force type.

virtual DtVrfObject* DtVrfObjectManager::createAndInitTopLevelVrfObject ( DtForceType  forceType,
const DtString name 
)
virtual

Creates and adds a top-level superior of a given name (should be of the form "1 Force", "2 Force", etc.)

virtual DtString DtVrfObjectManager::topLevelName ( DtForceType  forceType)
virtual

returns the name string for a top-level object of a given force type.

virtual DtString DtVrfObjectManager::nextName ( const DtObjectType objectType)
virtual

Returns an unused name appropriate for the specified object type.

Constructs a base for the name from the echelon and catagory strings specified in the parameters for the object type, and calls generateUniqueName(). If there are no parameters, or catagory and echelon are both unspecified, returns generateUniqueName() with the default prefix.

Note
maxNameLengthForType() will be called to determine the max size of the name.
virtual DtString DtVrfObjectManager::nextUnorganizedName ( )
virtual

Returns the next unorganized unique name string.

virtual DtString DtVrfObjectManager::uniquifyName ( const DtString name,
const DtObjectType objectType 
)
virtual

Checks to see if the provided name is unique.

If not, provides an alternate name that is unique.

Returns
Either the same string as name, or a modified version of it that is currently unused in the exercise.
virtual unsigned int DtVrfObjectManager::maxNameLengthForType ( const DtObjectType objectType)
virtual
Returns
The max allowable length for a object of the specified type. This method looks up the parameters for the object type and returns a value based on the type of network interface specified in the parameters.
virtual DtReflectedObject* DtVrfObjectManager::lookupReflectedObject ( const DtGlobalObjectDesignator globalId) const
virtual

Look up the reflected object for a given global Id.

Looks for object in entity, aggregate, and environmental reflected object lists.

virtual void DtVrfObjectManager::rediscoverObjects ( const std::set< DtGlobalObjectDesignator > &  ignore = std::set< DtGlobalObjectDesignator >())
virtual

run through the lists of known objects and perform discoveries. Ignore the list of global object designators passed in

virtual void DtVrfObjectManager::requestUpdatesForRemoteNonVrfObjects ( ) const
virtual

Walk through list of reflected objects and request updates on non-VR-Forces simulated objects.

virtual void DtVrfObjectManager::objectNameChanged ( DtVrfObject ,
const DtString oldName,
const DtString newName 
)
virtual

This is called by a DtVrfObject when it's named changes.

This should not be called by the user under normal circumstances.

virtual void DtVrfObjectManager::objectUUIDChanged ( const DtUUID oldUUID,
const DtUUID newUUID 
)
virtual

This is called by a DtVrfObject when it's UUID changes.

This should not be called by the user under normal circumstances.

virtual void DtVrfObjectManager::addObjectNameChangedCallback ( DtVrfObjectNameChangedCallbackFcn  fcn,
void *  usr 
)
virtual

Callback that is invoked whenever an object is renamed.

virtual void DtVrfObjectManager::removeObjectNameChangedCallback ( DtVrfObjectNameChangedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfObjectManager::addObjectUUIDChangedCallback ( DtVrfObjectUUIDChangedCallbackFcn  fcn,
void *  usr 
)
virtual

Callback that is invoked whenever an object uuid is changed.

This will happen when an object is loaded from an oob. If you are registering uuids for an object before the get self you will need to register this to capture the change from the initial to the new UUID.

virtual void DtVrfObjectManager::removeObjectUUIDChangedCallback ( DtVrfObjectUUIDChangedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual DtVrfObject* DtVrfObjectManager::aggregateAs ( const DtObjectType aggregateType,
DtForceType  force,
const DtVector dbPosition,
DtReal  heading,
const std::vector< DtUUID > &  subordinates = std::vector< DtUUID >(),
const DtString aggregateName = DtString::nullString() 
)
virtual

Creates a new aggregate.

aggregateType is the extended DIS/RPR entity type enumeration (defined in objTypeEnums.h) object type of the new aggregate. force is the DIS/RPR enumerated force type (extended to allow up to 255 force types. dbPosition is the position of the new aggregate, in database coordinates (in meters). heading is the heading of the new aggregate, measured clockwise from north (in degrees). subordinateNames is an optional list of object names of existing entities and/or aggregates to be organized under the new aggregate. This list is an ordered list (from most significant to least) list of object names of entities/aggregates to be added to the new aggregate. When the aggregateAs call returns, the process has been set in motion but it's not complete. Aggregation requires the organization managers and controllers to be actively ticked in order to work.

virtual double DtVrfObjectManager::timeOfDay ( ) const
virtual

Gets the current time of day from the environment manager.

virtual double DtVrfObjectManager::dateAndTimeOfDay ( ) const
virtual

Gets the current date and time of day from the environment manager.

virtual void DtVrfObjectManager::setSimulationDateTimeBasedOnLocation ( const DtVector geocentricLocation,
int  timeOfDay 
)
virtual

Given the objects geocentric location, set the simulation date/time based on the running computers current date and the supplied UTC time.

The time will be calculated as local to the geodetic coordinates of the supplied location. The time setting will be a rough approximation as daylight savings times and other time zone nuances will not be taken into account

virtual bool DtVrfObjectManager::addSubordinatesToAggregate ( DtVrfObject object,
const std::vector< DtUUID > &  subordinates,
DtAggregateState  desiredState = DtFullyDisaggregated 
)
virtual

Called by aggregateAs and createAndInitVrfObject(DtIfAggregateAs*).

Adds the given list of subordinates to the given object. Returns false if object does not have supertype 'DtObjectTypePseudoAggregate'.

static void DtVrfObjectManager::addSubordinatesToAggregateCompleteCallback ( void *  usr)
static

If the aggregate's desired initial state is DtAggregated, this callback is registered with the change set that is created and given to the org manager.

Once the change set has been completed, this callback aggregates the aggregate entity.

Parameters
usrusr is a std::pair<DtVrfObjectManager*, DtString>
virtual DtOrganizationManager* DtVrfObjectManager::organizationManager ( )
virtual
virtual const DtOrganizationManager* DtVrfObjectManager::organizationManager ( ) const
virtual
virtual DtDiGuyCharacterDataManager* DtVrfObjectManager::diGuyCharacterManager ( )
virtual

DI-Guy character Manager.

Used to configure an entity with a DI-Guy representation

virtual const DtDiGuyCharacterDataManager* DtVrfObjectManager::diGuyCharacterManager ( ) const
virtual
virtual void DtVrfObjectManager::setCoordinateSystem ( const Coordinate_System coordinateSystem)
virtual

Set the coordinate system on all vrf objects.

virtual unsigned DtVrfObjectManager::objectCount ( ) const
virtual

Returns the number of DtVrfObject* items in the list.

virtual DtSharedVrfObjectReference DtVrfObjectManager::lookupVrfObjectByEntityIdentifier ( const DtEntityIdentifier &  key) const
virtual

Looks up a DtVrfObject*, given a DtEntityIdentifier.

Be sure to check isValid of the returned member to make sure it is a valid object

Referenced by DtBaseSimObjectIterator< DtVrfObject >::dataToObject().

virtual DtSharedVrfObjectReference DtVrfObjectManager::lookupVrfObjectByGlobalId ( const DtGlobalObjectDesignator globalId) const
virtual

Looks up an object for a given global Id.

Be sure to check isValid of the returned member to make sure it is a valid object

virtual DtSharedVrfObjectReference DtVrfObjectManager::lookupVrfObjectByUUID ( const DtUUID ) const
virtual

Replacement for looking up object by name.

Looks up object by the given UUID of the object. Returns the objects shared UUID pointer. This pointer can be used for access to the object itself. If the object in the pointer is 0 then the object has been deleted. If object does not exist will return an object ready to be filled in when the object shows up. Be sure to check isValid of the returned member to make sure it is a valid object.

virtual bool DtVrfObjectManager::uuidExists ( const DtUUID ) const
virtual

Returns true if the given uuid exists.

Call this if you do not want to create a shared reference object with a non-existant marking text

virtual bool DtVrfObjectManager::addNameAlias ( const DtString aliasName,
DtVrfObject object 
)
virtual

Adds an additional name to reference the specified object other than its actual name.

virtual void DtVrfObjectManager::removeNameAlias ( const DtString alias)
virtual
virtual DtSharedVrfObjectReference DtVrfObjectManager::lookupVrfObjectByMarkingText ( const DtString ) const
virtual

Looks up the object by the object name (marking text).

This should only be used for backwards compatability. If object does not exist will be created and will wait for it to be created. Be sure to check isValid of the returned member to make sure it is a valid object.

virtual bool DtVrfObjectManager::markingTextExists ( const DtString ) const
virtual

Returns true if the given marking text exists.

Call this if you do not want to create a shared reference object with a non-existant marking text

virtual const DtSimulationAddress& DtVrfObjectManager::simulationAddress ( ) const
virtual

Get the DIS/RPR simulation address from our exercise connection.

const DtSimObjectIterator& DtVrfObjectManager::iterator ( ) const

Returns an iterator for the list.

You can pass in a DtObjectType to filter the iteration of sim objects based on DtObjectType. By default, there is no filter (the filter type matches any object in the list). If invertFilter is set to true, the iterator will iterate over all object which do NOT match the filter.

virtual bool DtVrfObjectManager::createSimObjectList ( )
virtual

Called by create().

virtual DtHashlist* DtVrfObjectManager::hashlist ( ) const
virtual

Hashlist of all vrf objects maintained by the vrf object manager.

Only iterators should need to access this.

virtual void DtVrfObjectManager::createRemoteEntitiesList ( DtExerciseConn *  exConn)
virtual

Called by setExerciseConnection().

Registers callbacks for when reflected objects are added or removed from their respective reflected object lists.

virtual void DtVrfObjectManager::createRemoteAggregatesList ( DtExerciseConn *  exConn)
virtual
static void DtVrfObjectManager::entityAddedCallback ( DtReflectedExtEntity entity,
void *  userData 
)
static

Called by reflected entity list when a new entity appears.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processEntityAddedCallback to actually handle the event.

static void DtVrfObjectManager::entityRemovedCallback ( DtReflectedExtEntity entity,
void *  userData 
)
static

Called by reflected entity list when an entity goes away.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processEntityRemovedCallback to actually handle the event.

static void DtVrfObjectManager::aggregateAddedCallback ( DtReflectedExtAggregate entity,
void *  userData 
)
static

Called by reflected aggregate list when a new aggregate appears.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processAggregateAddedCallback to actually handle the event.

static void DtVrfObjectManager::aggregateRemovedCallback ( DtReflectedExtAggregate entity,
void *  userData 
)
static

Called by reflected aggregate list when an aggregate goes away.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processAggregateRemovedCallback to actually handle the event.

static void DtVrfObjectManager::entityChangedCallback ( DtReflectedExtEntity entity,
void *  userData 
)
static

Called by reflected entity list when new state data for an entity has arrived.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processEntityAddedCallback to actually handle the event.

static void DtVrfObjectManager::aggregateChangedCallback ( DtReflectedExtAggregate aggregate,
void *  userData 
)
static

Called by reflected aggregate list when new state data for an aggregate has arrived.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processAggregateAddedCallback to actually handle the event.

virtual void DtVrfObjectManager::processEntityChanged ( DtReflectedExtEntity entity)
virtual

Callback handlers for VR-Link entity and aggregate reflected list events.

static bool DtVrfObjectManager::entityDiscoveryCriteriaCallback ( DtReflectedObject entity,
void *  userData 
)
static

Callback used to delay discovery of remote entity.

Called by reflected entity list when a new remote entity is detected. If this function returns true, the reflected entity gets added to the reflected entity list. The userData is a pointer to the DtVrfObjectManager. Calls virtual processEntityDiscoveryCriteria() to do the actual work.

static bool DtVrfObjectManager::aggregateDiscoveryCriteriaCallback ( DtReflectedObject aggregate,
void *  userData 
)
static

Callback used to delay discovery of remote aggregate.

Called by reflected aggregate list when a new remote aggregate is detected. If this function returns true, the reflected aggregate gets added to the reflected aggregate list. The userData is a pointer to the DtVrfObjectManager. Calls virtual processEntityDiscoveryCriteria() to do the actual work.

virtual bool DtVrfObjectManager::processEntityDiscoveryCriteria ( DtReflectedEntity *  entity)
virtual

Callback handler for processing discovery criteria of reflected objects.

VR-Link will not add the reflected object to the respective reflected object list unless this function return true. This base class version tests for a non-zero location and entity type. Override to apply different criteria for discovery.

virtual bool DtVrfObjectManager::processAggregateDiscoveryCriteria ( DtReflectedAggregate *  aggregate)
virtual

Callback handler for processing discovery criteria of reflected objects.

VR-Link will not add the reflected object to the respective reflected object list unless this function return true. This base class version tests for a non-zero location and entity type. Override to apply different criteria for discovery.

virtual DtReflectedDesignator* DtVrfObjectManager::lookupLasedTargetByGlobalId ( const DtGlobalObjectDesignator tgtGlobalId)
virtual

Look up a target Global id to if it is being lased.

Returns null if the target is not being lased

virtual DtReflectedDesignator* DtVrfObjectManager::lookupLasedTargetByDesignatorCode ( const int  code)
virtual

Looks up a PRF code to see if there are any targets being lased by it Nothing fancy just return first match Returns null if no target being lased by this PRF code.

virtual void DtVrfObjectManager::createRemoteDesignatorsList ( DtExerciseConn *  exConn)
virtual

Called by setExerciseConnection().

Registers callbacks for when reflected objects are added or removed from their respective reflected object lists.

virtual void DtVrfObjectManager::createRemoteActiveSonarList ( DtExerciseConn *  exConn)
virtual
virtual void DtVrfObjectManager::createRemotePropulsionNoiseList ( DtExerciseConn *  exConn)
virtual
DtReflectedDesignatorList* DtVrfObjectManager::reflectedDesignatorList ( ) const
DtReflectedActiveSonarList* DtVrfObjectManager::reflectedActiveSonarList ( ) const
DtReflectedPropulsionNoiseList* DtVrfObjectManager::reflectedPropulsionNoiseList ( ) const
virtual DtVrfParameterDb* DtVrfObjectManager::objectParametersDB ( ) const
virtual
Deprecated:
To be removed after VR-Forces version 3.11
virtual void DtVrfObjectManager::addSimObjectAboutToBeAddedCallback ( DtSimObjectListActivityCallbackInfo cbInfo)
virtual

Adds DtSimObjectListActivityCallbackFcn objects to their respective lists.

virtual void DtVrfObjectManager::addSimObjectAddedCallback ( DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::addSimObjectAboutToBeRemovedCallback ( DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::addSimObjectAboutToBeLoadedCallback ( DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::addSimObjectAboutToBeAddedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtSimObject is about to be added.

Specify a DtObjectType filter to restrict notification to particular types of DtSimObjects.

virtual void DtVrfObjectManager::addSimObjectAddedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtSimObject is added.

Specify a DtObjectType filter to restrict notification to particular types of DtSimObjects.

virtual void DtVrfObjectManager::addSimObjectAboutToBeRemovedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtSimObject is added.

Specify a DtObjectType filter to restrict notification to particular types of DtSimObjects.

virtual void DtVrfObjectManager::addSimObjectAboutToBeLoadedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Registers a callback for notification when a new DtSimObject is about to be loaded from an order of battle file.

Specify a DtObjectType filter to restrict notification to particular types of DtSimObjects.

virtual void DtVrfObjectManager::removeSimObjectAboutToBeAddedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtSimObject is about to be added.

virtual void DtVrfObjectManager::removeSimObjectAboutToBeRemovedCallback ( const DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::removeSimObjectAddedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtSimObject is added.

virtual void DtVrfObjectManager::removeSimObjectAboutToBeLoadedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a new DtSimObject is about to be loaded from the order of battle file.

virtual void DtVrfObjectManager::removeSimObjectAboutToBeAddedCallback ( const DtSimObjectListActivityCallbackInfo cbInfo)
virtual

Removes DtSimObjectListActivityCallbackFcn objects from their respective lists.

virtual void DtVrfObjectManager::removeSimObjectAddedCallback ( const DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::removeSimObjectAboutToBeLoadedCallback ( const DtSimObjectListActivityCallbackInfo cbInfo)
virtual
virtual void DtVrfObjectManager::removeSimObjectAboutToBeRemovedCallback ( DtSimObjectListActivityCallbackFcn  fcn,
void *  usrData,
const DtObjectType filter = DtObjectType::anyType(),
bool  invertFilter = false 
)
virtual

Remove a previously register callback for notification when a DtSimObject is removed.

virtual void DtVrfObjectManager::invokeSimObjectAboutToBeAddedCallbacks ( DtVrfObject simObject) const
virtual

Called by add().

Calls appropriate registered callback function. (those callback function whose filters match the object type of the entity being added).

virtual void DtVrfObjectManager::invokeSimObjectAddedCallbacks ( DtVrfObject simObject) const
virtual

Called by add().

Calls appropriate registered callback function. (those callback function whose filters match the object type of the entity being added).

virtual void DtVrfObjectManager::invokeSimObjectAboutToBeRemovedCallbacks ( DtVrfObject simObject) const
virtual

Called by remove().

Calls appropriate registered callback function. (those callback function whose filters match the object type of the entity being removed).

virtual void DtVrfObjectManager::invokeSimObjectAboutToBeLoadedCallbacks ( DtVrfObject simObject) const
virtual

Called by createAndInit in the DtVrfObject.

Calls appropriate registered callback function. (those callback function whose filters match the object type of the entity being loaded from the order of battle file).

virtual DtReflectedExtEntityList* DtVrfObjectManager::reflectedEntityList ( ) const
virtual

Get the reflected entity list.

virtual DtReflectedExtAggregateList* DtVrfObjectManager::reflectedAggregateList ( ) const
virtual

Get the reflected aggregate list.

virtual void DtVrfObjectManager::setSimObjectType ( const DtString type)
virtual

The type of DtVrfObjects to create.

By default, the type to create is DtVrfObjectType. Types are defined in vrfObjTypes.h.

virtual const DtString& DtVrfObjectManager::simObjectType ( ) const
virtual
virtual bool DtVrfObjectManager::addUUIDMappingForObject ( DtVrfObject vrfObject)
virtual

Used by the object during initialization will add a pointer to this object before the full add in case it needs to be referenced during initialization by uuid.

virtual void DtVrfObjectManager::removeUUIDMappingForObject ( DtVrfObject vrfObject)
virtual

Called only when there is a failure to add during initialization of object.

virtual DtEntityIdentifier DtVrfObjectManager::nextId ( DtVrfObject o = NULL)
virtual
Returns
The next unique id generated by the entity id factory
virtual DtString DtVrfObjectManager::generateUniqueName ( int  maxLength,
const DtString root = "Object" 
) const
virtual

Generates a name string which does not belong to any other object in the simulation, and does not exceed the maxLength.

The optional root argument will be used as a starting point for the generated name.

virtual void DtVrfObjectManager::setRollUpRules ( const DtAssembliesReaderWriter::RwRootNode )
virtual

Sets the roll up rules to be used when organizing state and parameter data.

virtual const DtAssembliesReaderWriter::RwRootNode& DtVrfObjectManager::rollUpRules ( ) const
virtual

Roll up rules.

virtual void DtVrfObjectManager::setActivities ( const DtRwActivities )
virtual

Set the activities that are available to controllers.

virtual const DtRwActivities& DtVrfObjectManager::activities ( ) const
virtual

Return the activities available.

virtual bool DtVrfObjectManager::isLocal ( const DtBaseEntityStateRepository &  stateRep)
virtual
Returns
True only if the entity ID of this state repository has matching address to our local simulation address.
static int DtVrfObjectManager::aggregateSuperType ( DtAggregateStateRepository aggregate)
static
Returns
The supertype which is transmitted as variable datum in aggregate PDUs by VRF aggregates, and -1 if no supertype information is found in this aggregate state rep.
virtual void DtVrfObjectManager::objectsEmbarkedOn ( DtVrfObjectStateRepository vrfObjSR,
std::vector< DtSharedVrfObjectReference > &  list,
bool  includePseudoAggregates = true 
) const
virtual

Fills in the supplied std:list with names of all entities that are embarked on the supplied object.

If includePseudoAggregates is false, those objects that are specifically representative of a pseudo aggregate will not be included in this list

static void DtVrfObjectManager::designatorAddedCallback ( DtReflectedDesignator *  des,
void *  userData 
)
static

Called by reflected designator list when a new designator appears.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processDesignatorAddedCallback to actually handle the event.

static void DtVrfObjectManager::designatorRemovedCallback ( DtReflectedDesignator *  des,
void *  userData 
)
static

Called by reflected designator list when a designator goes away.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processDesignatorRemovedCallback to actually handle the event.

static void DtVrfObjectManager::designatorChangedCallback ( DtReflectedDesignator *  des,
void *  userData 
)
static

Called by reflected designator list when new state data for a designator has arrived.

User data will be a pointer to the instance of the manager that installs the callback. Calls virtual processDesignatorAddedCallback to actually handle the event.

static DtBoolean DtVrfObjectManager::designatorDiscoveryCriteriaCallback ( DtReflectedObject des,
void *  userData 
)
static

Callback used to delay discovery of remote designator.

Called by reflected designator list when a new remote designator is detected. If this function returns DtTrue, the reflected designator gets added to the reflected designator list. The userData is a pointer to the DtVrfObjectManager. Calls virtual processDesignatorDiscoveryCriteria() to do the actual work.

static void DtVrfObjectManager::activeSonarAddedCallback ( DtReflectedActiveSonar *  activeSonar,
void *  userData 
)
static
static void DtVrfObjectManager::activeSonarRemovedCallback ( DtReflectedActiveSonar *  activeSonar,
void *  userData 
)
static
static void DtVrfObjectManager::activeSonarChangedCallback ( DtReflectedActiveSonar *  activeSonar,
void *  userData 
)
static
static DtBoolean DtVrfObjectManager::activeSonarDiscoveryCriteriaCallback ( DtReflectedObject activeSonar,
void *  userData 
)
static
static void DtVrfObjectManager::propulsionNoiseAddedCallback ( DtReflectedPropulsionNoise *  propNoise,
void *  userData 
)
static
static void DtVrfObjectManager::propulsionNoiseRemovedCallback ( DtReflectedPropulsionNoise *  propNoise,
void *  userData 
)
static
static void DtVrfObjectManager::propulsionNoiseChangedCallback ( DtReflectedPropulsionNoise *  propNoise,
void *  userData 
)
static
static DtBoolean DtVrfObjectManager::propulsionNoiseDiscoveryCriteriaCallback ( DtReflectedObject propNoise,
void *  userData 
)
static
virtual bool DtVrfObjectManager::canSimulate ( ) const
virtual

Returns true if this simulation is ready to be simulated.

This will be the case when the organization manager has processed all pending operations

virtual void DtVrfObjectManager::setCanSimulate ( bool  )
virtual

Sets whether or not this object manager can simulate.

If it cannot simulate will not tick nor will it allow anything to be created

virtual void DtVrfObjectManager::printReflectedObjectCounts ( ) const
virtual

Prints counts of different types of reflected objects.

virtual void DtVrfObjectManager::addStealthType ( const DtEntityType &  )
virtual

Since the stealth type might be able to be configured in the future, use this call to maintain a list of valid stealth types.

Default is 12, 0, 0, 0, 0, 0, 0

virtual void DtVrfObjectManager::removeStealthType ( const DtEntityType &  )
virtual
virtual bool DtVrfObjectManager::isStealthType ( const DtEntityType &  ) const
virtual
std::vector<DtEntityType>& DtVrfObjectManager::stealthTypes ( )
inline
const std::vector<DtEntityType>& DtVrfObjectManager::stealthTypes ( ) const
inline
virtual void DtVrfObjectManager::processOrganizationManagerReady ( const DtOrganizationManagerReadyCallbackInfo )
protectedvirtual

Called when organization manager ready state has changed.

virtual void DtVrfObjectManager::invokeOrganizationManagerReadyCallbacks ( const DtOrganizationManagerReadyCallbackInfo )
protectedvirtual
virtual DtObjectType DtVrfObjectManager::potentialRandomObjectTypeFrom ( const DtObjectType original)
protectedvirtual

Called when creating a VRF object. If this is a randomized object type, then pick a random object to create from it.

virtual void DtVrfObjectManager::rediscoverNonVRFEntities ( )
protectedvirtual

Walks through the reflected entity list and rediscovers entities which don't have VRF global id's.

virtual void DtVrfObjectManager::remove ( DtVrfObject simObject)
protectedvirtual

Protected here because callers should be calling removeAndDelete to safely get their object queued for removal and deletion.

virtual void DtVrfObjectManager::remove ( DtSharedVrfObjectReference  simObject)
protectedvirtual
virtual DtVrfObject* DtVrfObjectManager::remove ( const DtEntityIdentifier &  key)
protectedvirtual
virtual void DtVrfObjectManager::invokeObjectManagerAboutToRemoveAllCallbacks ( ) const
protectedvirtual

Call all of the DtVrfObjectManagerCallbackFcn functions registered with the object manager.

virtual void DtVrfObjectManager::onQueueObjectForRemoval ( DtVrfObject vrfObject)
protectedvirtual

Hook function called from queueObjectForRemoval().

Calls vrfObject's

virtual const Coordinate_System* DtVrfObjectManager::coordinateSystem ( ) const
protectedvirtual
virtual Coordinate_System* DtVrfObjectManager::coordinateSystem ( )
protectedvirtual
virtual void DtVrfObjectManager::modifyInterfaceContentForNewObject ( DtSimInterfaceContent ,
DtVrfObject ,
bool isLocal 
) const
protectedvirtual

Given a list of interface content messages from a create message, inspect and modify as need be for information obtained from the newly created object (such as object name)

virtual std::list<DtVector> DtVrfObjectManager::calculateFormationOffsetsBasedOnFootprints ( const DtList &  ) const
protectedvirtual

Given the potential list of subordinates, iterate over list and look up parameter data for potential footprint sizes.

Results are the body offsets of the immediate subordinates based on potential leaf node footprint sizes

virtual std::vector<Dt3dBoundingVolume> DtVrfObjectManager::boundingVolumesOfChildren ( const DtList &  subObjects,
int totalLeafNodes 
) const
protectedvirtual

Return a list of the bounding volumes of all the children.

virtual void DtVrfObjectManager::checkPendingNameRemoval ( const DtString markingText)
protectedvirtual

Before adding an object, if there is an object with the same name scheduled for removal, do that now.

virtual void DtVrfObjectManager::removeVrfObject ( const DtUUID )
protectedvirtual

Removes the vrf object from internal lists.

virtual DtObjectGeometricModelsManager* DtVrfObjectManager::createObjectModelsManager ( ) const
protectedvirtual

Creates new object model manager.

virtual DtVrfEntityIdentifierFactory* DtVrfObjectManager::createVrfEntityIdentifierFactory ( )
protectedvirtual

Creates new entity identifier factory.

virtual DtVrfObjectPlanAdministrator* DtVrfObjectManager::createPlanAdministrator ( )
protectedvirtual
virtual bool DtVrfObjectManager::finalizeObjectRead ( DtVrfObject )
protectedvirtual
virtual DtEntityIdentifier DtVrfObjectManager::findEntityIdentifier ( DtlObjPtr  )
protectedvirtual
DtObjectGeometricModelsManager* DtVrfObjectManager::objectModelsManager ( ) const
DtVrfEntityIdentifierFactory* DtVrfObjectManager::vrfEntityIdentifierFactory ( ) const
virtual DtVrfObjectPlanAdministrator* DtVrfObjectManager::planAdministrator ( )
virtual
virtual DtSimInternalCommunicationManager* DtVrfObjectManager::simInternalCommunicationManager ( )
virtual
virtual DtSimInternalCommunicationManager* DtVrfObjectManager::createSimInternalCommunicationManager ( DtSimManager simMgr) const
protectedvirtual
Returns
A newly created instance of DtObjectCommunicationManager.
virtual bool DtVrfObjectManager::addObjectsReadyForSimulation ( PendingObjectsInformation )
protectedvirtual

Returns true if all the objects from this pending object information are ready to simulate (basically their geometry is placable)

static void DtVrfObjectManager::modifyVrfObjectCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

These callbacks are registered on the simManagers Message executive.

They call a corresponding virtual function to do the actual work, e.g. processCreateVrfObject().

static void DtVrfObjectManager::modifyVrfOverlayCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::autoReorganizeCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::skipTaskCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::setThresholdsCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::createVrfObjectCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

These callbacks are registered on the simManagers Message executive.

Each registers a corresponding post-drain callback to actually carry out the work to be done. Those callbacks get placed on the exercise connection's post drain input callback list. This ensures that no RTI services get invoked from within a given RTI service call (we can't make RTI calls from within the above message callbacks directly, such as creating or deleting publishers associated with objects).

static void DtVrfObjectManager::deleteVrfObjectCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::deleteVrfObjectByIdCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::vrfObjectDeletedCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::orderOfBattleOpCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::aggregateAsCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected
static void DtVrfObjectManager::extendedLabelsOperationCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback to set/retrieve status of extended labels.

virtual void DtVrfObjectManager::processExtendedLabelsOperation ( DtSimMessage )
protectedvirtual
static void DtVrfObjectManager::requestActivitiesCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback to retrieve all activities.

virtual void DtVrfObjectManager::processRequestActivities ( DtSimMessage )
protectedvirtual
static void DtVrfObjectManager::requestJoystickControlsCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback to retrieve current joystick controls.

virtual void DtVrfObjectManager::processRequestJoystickControls ( DtSimMessage )
protectedvirtual
virtual bool DtVrfObjectManager::acceptRemoteEnvironmental ( const DtEntityType &  et) const
protectedvirtual

Return true/false to accept a remove environmental.

Currently used to filter out accepting of task visualization objects

static void DtVrfObjectManager::createVrfObjectPostDrainCallback ( void *  usr)
staticprotected

These call a corresponding virtual (overrideable) function to do the actual work of handling the message (see the above functions starting with the word 'process', e.g.

processCreateVrfObject()). The void* usr argument should be an object of type DtVrfObjMgrCbData.

static void DtVrfObjectManager::deleteVrfObjectPostDrainCallback ( void *  usr)
staticprotected
static void DtVrfObjectManager::deleteVrfObjectByIdPostDrainCallback ( void *  usr)
staticprotected
static void DtVrfObjectManager::vrfObjectDeletedPostDrainCallback ( void *  usr)
staticprotected
static void DtVrfObjectManager::aggregateAsPostDrainCallback ( void *  usr)
staticprotected
static void DtVrfObjectManager::envProcessAddedCallback ( DtReflectedEnvironmentProcess envProcess,
void *  userData 
)
staticprotected
static void DtVrfObjectManager::envProcessRemovedCallback ( DtReflectedEnvironmentProcess envProcess,
void *  userData 
)
staticprotected
static bool DtVrfObjectManager::envProcessDiscoveryCriteria ( DtReflectedObject envProcess,
void *  userData 
)
staticprotected
static void DtVrfObjectManager::organizationManagerReadyCallback ( const DtOrganizationManagerReadyCallbackInfo info,
void *  usr 
)
staticprotected
DtVrfObjectManager& DtVrfObjectManager::operator= ( const DtVrfObjectManager orig)
protected

assignment operator - not implemented - do not call

static void DtVrfObjectManager::postInitFromParamsCallback ( DtVrfObject vrfObject,
void *  usr 
)
staticprotected

Callback function used to possibly override a newly created entity's parameter values.

If the entity is an aggregate (i.e. it has a state repository of type DtVrfAggregateStateRepository), it may override the state repository's value for DtAggregateState, depending on the DtAggregateCreationMode passed in to createAndInitObject.

virtual DtCreateQueueEntry* DtVrfObjectManager::createQueueEntryCreator ( DtIfCreateVrfObject  msg)
protectedvirtual

Creates a new DtCreateQueueEntry*, override this function to use a subclassed type.

virtual DtModifyQueueEntry* DtVrfObjectManager::modifyQueueEntryCreator ( DtIfModifyVrfObject  msg)
protectedvirtual

Creates a new DtModifyQueueEntry*, override this function to use a subclassed type.

Member Data Documentation

DtRemoteComponentAttachmentManager* DtVrfObjectManager::myRemoteComponentAttachmentManager
protected

List of components to attach to remote, non-vrf entities.

Referenced by remoteComponentAttachmentManager().

DtHashlist* DtVrfObjectManager::mySimObjectList
protected

Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.

DtReflectedExtEntityList* DtVrfObjectManager::myRemoteEntitiesList
protected

VR-Link reflected entity list.

DtReflectedExtAggregateList* DtVrfObjectManager::myRemoteAggregateEntitiesList
protected

VR-Link reflected aggregate list.

DtReflectedDesignatorList* DtVrfObjectManager::myRemoteDesignatorsList
protected

VR-Link reflected designator list.

DtReflectedActiveSonarList* DtVrfObjectManager::myRemoteActiveSonarList
protected
DtReflectedPropulsionNoiseList* DtVrfObjectManager::myRemotePropulsionNoiseList
protected
DtVrfParameterDb* DtVrfObjectManager::myParameterDatabase
protected

Parameter database used in creation and initialization of DtVrfObjects.

DtList DtVrfObjectManager::myAboutToBePublisheddSimObjectCallbackList
protected

List of DtVrfObjectAboutToBePublishedCallbackFcn.

DtList DtVrfObjectManager::myAboutToBeLoadedSimObjectCallbackList
protected

List of DtSimObjectListActivityCallbackFcn*s.

Clients register callback functions on this list for notification of when a new DtSimObject is about to load it's data from the order of battle file.

DtList DtVrfObjectManager::myAboutToBeAddedSimObjectCallbackList
protected

List of DtSimObjectListActivityCallbackFcn*s.

Clients register callback functions on this list for notification of when a new DtSimObject is about to be added.

AddedList DtVrfObjectManager::myAddedSimObjectCallbackList
protected
tbb::spin_rw_mutex DtVrfObjectManager::myAddedSimObjectCallbackListMutex
mutableprotected
ToBeRemovedList DtVrfObjectManager::myAboutToBeRemovedSimObjectCallbackList
protected
tbb::spin_rw_mutex DtVrfObjectManager::myAboutToBeRemovedSimObjectCallbackListMutex
mutableprotected
std::set<DtSimObjectListActivityCallbackInfo*> DtVrfObjectManager::myRemovalCallbacksRemoved
mutableprotected
DtString DtVrfObjectManager::mySimObjectType
protected

Type of DtSimObject to create. Types are defined in simObjectTypes.h.

DtSimObjectIterator* DtVrfObjectManager::myIterator
mutableprotected
Note
The iterator is mutable because it's creation is delayed until it is requested by a user. As a result, it can be created from a const function, as far as the user is concerned.
DtExerciseConn* DtVrfObjectManager::myExerciseConn
protected
int DtVrfObjectManager::myIndexSize
protected

All hash indices for our objects should be created this size.

DtManagedObjectListManager* DtVrfObjectManager::myFilteredObjectListManager
protected
DtVrfObjectFilterIterator* DtVrfObjectManager::myVrfIterator
mutableprotected
Note
The iterator is mutable because it's creation is delayed until it is requested by a user. As a result, it can be created from a const function, as far as the user is concerned.
DtSimManager* DtVrfObjectManager::mySimManager
protected
std::set<DtUUID> DtVrfObjectManager::myObjectsToRemoveQueue
protected

Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval.

std::map<DtString, std::set<DtUUID> > DtVrfObjectManager::myObjectsToRemoveByNameQueue
protected
DtVrfObjectCreateQueue DtVrfObjectManager::myObjectsToCreateQueue
protected
DtVrfObjectModifyQueue DtVrfObjectManager::myObjectsToModifyQueue
protected
bool DtVrfObjectManager::myAutoReorganizeFlag
protected

Automatic reorganization flag for pseudo-aggregate entities.

DtReflectedControlObjectList* DtVrfObjectManager::myRemoteEnvironmentalsList
protected
int DtVrfObjectManager::myNameCounter
protected
GlobalIdToObjectMap DtVrfObjectManager::myGlobalIdToObjectMap
protected
DtOrganizationManager* DtVrfObjectManager::myOrganizationManager
protected
DtEchelonIdTable* DtVrfObjectManager::myEchelonIdTable
protected
DtDiGuyCharacterDataManager* DtVrfObjectManager::myCharacterMgr
protected
const Coordinate_System* DtVrfObjectManager::myCoordinateSystemPtr
protected
double DtVrfObjectManager::myTimeToPublishNextStateUpdate
protected
DtObjectGeometricModelsManager* DtVrfObjectManager::myObjectModelsManager
protected
DtSimInternalCommunicationManager* DtVrfObjectManager::mySimInternalCommunicationManager
protected
DtVrfObjectPlanAdministrator* DtVrfObjectManager::myPlanAdministrator
protected
DtNameChangedCallbackList DtVrfObjectManager::myObjectNameChangedCallbackList
protected
DtUUIDChangedCallbackList DtVrfObjectManager::myObjectUUIDChangedCallbackList
protected
VrfObjectAboutToBePublishedCallbackList DtVrfObjectManager::myVrfObjectAboutToBePublishedCallbackList
protected
DtOrganizationReadyCallbackList DtVrfObjectManager::myOrganizationManagerReadyCallbackList
protected
DtConsoleCommandOwner* DtVrfObjectManager::myConsoleCommands
protected
DtRwActivities DtVrfObjectManager::myActivities
protected
bool DtVrfObjectManager::myImportingScenario
protected
bool DtVrfObjectManager::myCreatedCharacterManager
protected
DtAssembliesReaderWriter::RwRootNode DtVrfObjectManager::myRollUpRules
protected
bool DtVrfObjectManager::myPublishZeroVelocityWhenPaused
protected
bool DtVrfObjectManager::mySetDeadReckoningAlgorithmToStaticOnPause
protected
DtTaskVisualizationPublicationMode DtVrfObjectManager::myTaskVisualizationPublicationMode
protected
bool DtVrfObjectManager::myUseDrawControlForTaskVisualizations
protected
UUIDToObjectMap DtVrfObjectManager::myUUIDToObjectMap
protected
NameToObjectMap DtVrfObjectManager::myNameToObjectMap
protected
NameToObjectMap DtVrfObjectManager::myAwaitingToBeCreatedMap
mutableprotected
ObjectToObjectMap DtVrfObjectManager::myObjectToObjectMap
protected
DtImportScenarioData DtVrfObjectManager::myImportScenarioData
protected
unsigned DtVrfObjectManager::myInvokingSimObjectAddedCallbacks
mutableprotected
unsigned DtVrfObjectManager::myInvokingSimObjectAboutToBeAddedCallbacks
mutableprotected
unsigned DtVrfObjectManager::myInvokingSimObjectAboutToBeLoadedCallbacks
mutableprotected
unsigned DtVrfObjectManager::myInvokingSimObjectAboutToBeRemovedCallbacks
mutableprotected
std::vector<DtVrfObject*> DtVrfObjectManager::myJustAdded
protected
std::map<int, DtlObjPtr> DtVrfObjectManager::mySortedByEntityId
protected
ObjectsAwaitingDiscovery DtVrfObjectManager::myObjectsAwaitingDiscovery
protected
DtVrfEntityIdentifierFactory* DtVrfObjectManager::myEntityIdentifierFactory
protected
bool DtVrfObjectManager::myReuseEntityIdentifiersOnScenarioLoad
protected
bool DtVrfObjectManager::myLoadingScenarioInformation
protected
bool DtVrfObjectManager::myCanSimulate
protected
std::vector<DtEntityType> DtVrfObjectManager::myStealthTypes
protected
std::vector<DtVrfObjectManagerCallbackInfo> DtVrfObjectManager::myAboutToRemoveAllCallbackList
private

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

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)