VR-Forces 4.2 Class Documentation
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes
DtVrfObjectManager Class Reference

class DtVrfObjectManager: More...

Inheritance diagram for DtVrfObjectManager:
Inheritance graph
[legend]

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 createObjectNameHashlist ()
virtual bool createGlobalIdHashlist ()
virtual bool init ()
 Initialization - must be called after create() and before any other member functions are called.
virtual void createDIGuyCharacterManager (const DtFilename &diGuyDataFile, 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 setParameterDatabase (DtVrfParameterDb *parameterDatabase)
 Parameter database used in creation and initialization of DtVrfObjects.
virtual DtVrfParameterDbparameterDatabase ()
virtual DtVrfObjectlookupVrfObject (const DtEntityIdentifier &key)
 Looks up a DtVrfObject, given a DtEntityIdentifier.
virtual const DtVrfObjectlookupVrfObject (const DtEntityIdentifier &key) const
virtual DtVrfObjectlookupVrfObjectByGlobalId (const DtGlobalObjectDesignator &globalId)
virtual const DtVrfObjectlookupVrfObjectByGlobalId (const DtGlobalObjectDesignator &globalId) const
virtual DtVrfObjectlookupVrfObjectByName (const DtString &name, bool warnOnFailure=true)
virtual const DtVrfObjectlookupVrfObjectByName (const DtString &name, bool warnOnFailure=true) const
virtual const DtVrfObjectlookupVrfObjectByEchelonIdString (const DtString &echIdString) const
virtual DtVrfObjectlookupVrfObjectByEchelonIdString (const DtString &echIdString)
virtual const DtVrfObjectlookupVrfObjectByEchelonId (const DtEchelonId &echId) const
virtual DtVrfObjectlookupVrfObjectByEchelonId (const DtEchelonId &echId)
virtual DtVrfObjectlookupVrfObjectByObjectId (const DtObjectId &id) const
virtual DtGlobalObjectDesignator lookupGlobalId (const DtObjectId &id) const
virtual DtObjectId lookupObjectId (const DtGlobalObjectDesignator &globalId)
virtual DtManagedObjectListConstPtr getList (const DtVrfObjectPredicate &predicate, bool reevaluateFlag=false, DtTime evaluationPeriod=0)
 Wraps DtManagedObjectListManager::getList().
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 DtString &objectName)
 Calls queueObjectForRemoval to schedule object for removal from object manager and deletion.
virtual void removeAndDelete (const DtEntityIdentifier &key)
virtual void removeAndDelete (DtVrfObject *object)
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
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 processOrderOfBattleOp (DtSimMessage *msg)
 Registered with the message executive to handle the OrderOfBattleOp 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 processCreateControlObject (DtSimMessage *msg)
 Obsolete as of version 2.0.
virtual void processCreateEntity (DtSimMessage *msg)
virtual void processRemoveEntity (DtSimMessage *msg)
virtual void processRequestEntityName (DtSimMessage *msg)
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 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)
 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)
 Creates a new local vrf object and adds it to our list of managed vrf objects.
virtual void createSubObjectsFromParameters (DtVrfObject *parent, bool publishSubobjects)
 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)
 Returns a newly created DtVrfObject, given the information passed in through the entry parameter.
virtual bool readOrderOfBattleFile (const DtString &filename)
 Read/write order of battle file.
virtual bool writeOrderOfBattleFile (const DtString &filename)
virtual bool objectShouldBeSavedToOrderOfBattle (const DtVrfObject *vrfObject)
 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 DtlObjPtr getData (DtlObjPtr args, const DtFilename &searchPath, 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 DtVrfObjectlookupTopLevelVrfObject (DtForceType forceType)
 Look up top-level superior, given the force type.
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 void processOverlayOp (DtSimMessage *msg)
 For backward compatibility with pre-2.0 scenario files (overlay file no longer used as of version 2.0).
virtual bool readOverlayFile (const DtString &filename)
virtual DtReflectedObject * lookupReflectedObject (const DtGlobalObjectDesignator &globalId) const
 Look up the reflected object for a given global Id.
virtual void rediscoverObjects ()
 run through the lists of known objects and perform discoveries
virtual void requestUpdatesForRemoteNonVrfObjects () const
 Walk through list of reflected objects and request updates on non-VR-Forces simulated objects.
virtual void objectNameChanged (const DtString &oldName, const DtString &newName)
 This is called by a DtVrfObject when it's named changes.
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 DtVrfObjectaggregateAs (const DtObjectType &aggregateType, DtForceType force, const DtVector &dbPosition, DtReal heading, DtList *subordinateNames=0, const DtString &aggregateName=DtString::nullString())
 Creates a new aggregate.
virtual bool addSubordinatesToAggregate (DtVrfObject *object, const DtList *subordinateNames, 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 DtVrfObjectlookup (const DtEntityIdentifier &key)
 Looks up a DtVrfObject*, given a DtEntityIdentifier.
virtual const DtVrfObjectlookup (const DtEntityIdentifier &key) const
virtual DtVrfObjectlookupObjectByGlobalId (const DtGlobalObjectDesignator &globalId)
 Looks up an object for a given global Id.
virtual const DtVrfObjectlookupObjectByGlobalId (const DtGlobalObjectDesignator &globalId) const
virtual DtVrfObjectlookupObjectByName (const DtString &objectName)
 Looks up an object for a given object name.
virtual const DtVrfObjectlookupObjectByName (const DtString &objectName) const
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)
DtReflectedDesignatorList * reflectedDesignatorList () 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 DtReflectedExtEntityList * reflectedEntityList () const
 Get the reflected entity list.
virtual
DtReflectedExtAggregateList * 
reflectedAggregateList () const
 Get the reflected aggregate list.
virtual const DtEntityIdentifier & nextId ()
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 bool isLocal (const DtBaseEntityStateRepository &stateRep)
virtual void objectsEmbarkedOn (DtVrfObjectStateRepository *vrfObjSR, std::list< DtString > &list, bool includePsuedoAggregates=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 printReflectedObjectCounts () const
 Prints counts of different types of reflected objects.
DtObjectGeometricModelsManagerobjectModelsManager () const
void setTerrainDbFactory (DtTerrainDbFactory *)
DtTerrainDbFactory * terrainDbFactory ()
virtual
DtVrfObjectPlanAdministrator
planAdministrator ()
virtual
DtSimInternalCommunicationManager
simInternalCommunicationManager ()
virtual void clearRemoteComponentAttachmentSystem ()
 Empty any attachment info that's waiting to be applied to entities.
virtual void createRemoteComponentAttachmentManager ()
 Creates the DtRemoteComponentAttachmentManager.
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
 Empty any attachment info that's waiting to be applied to entities.
virtual void addObjectNameChangedCallback (DtVrfObjectNameChangedCallbackFcn fcn, void *usr)
 Callback that is invoked whenever an object is renamed.
virtual void removeObjectNameChangedCallback (DtVrfObjectNameChangedCallbackFcn fcn, void *usr)
 Callback that is invoked whenever an object is renamed.
virtual void setSimObjectType (const DtString &type)
 The type of DtVrfObjects to create.
virtual const DtStringsimObjectType () const
 The type of DtVrfObjects to create.
- 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 DtFilename &searchPath, const DtVariableBindingsList &variableBindings)
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 const char * readerWriterType () 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
 DtRwList (const DtString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 Invokes DtReaderWriter copy constructor.
 DtRwList (const DtSymbolString &name, const DtRwList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 Invokes DtReaderWriter copy constructor.
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)
 Add element to the list just before the indicated item.
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)
 Add element to the list just after the indicated item.
- 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)
 copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
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 (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Top level call to write itself to file.
virtual void getSelf (DtlObjPtr args, const DtFilename &searchPath=DtFilename::nullFilename(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void writeSelf (FILE *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 bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
virtual bool isReadonly () const
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.
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 void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
 The specified flags are used for optional values.
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)
 The variable name, if this object is a variable reference.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
 Collection of child DtReaderWriter nodes owned by this object.

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)

Protected Types

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 DtCallbackList< const
DtVrfObjectNameChangedCallbackInfo & > 
DtNameChangedCallbackList

Protected Member Functions

virtual void processOrganizationManagerReady (const DtOrganizationManagerReadyCallbackInfo &)
 Called when organization manager ready state has changed.
virtual void invokeOrganizationManagerReadyCallbacks (const DtOrganizationManagerReadyCallbackInfo &)
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 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_System * coordinateSystem () const
virtual Coordinate_System * coordinateSystem ()
virtual
DtObjectGeometricModelsManager
createObjectModelsManager () const
 Creates new object model manager.
virtual
DtVrfObjectPlanAdministrator
createPlanAdministrator ()
 Creates new DtVrfObjectPlanAdministrator.
virtual
DtSimInternalCommunicationManager
createSimInternalCommunicationManager (DtSimManager *simMgr) const
 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.
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 putData (FILE *fp, int indentLevel=0)
 Deriving class overrides these to get/put class specific data.
virtual DtlObjPtr getData (DtlObjPtr args, const DtFilename &searchPath, const DtVariableBindingsList &variableBindings)
 Deriving class overrides these to get/put class specific data.

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 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 orderOfBattleOpPostDrainCallback (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

DtRemoteComponentAttachmentManagerpMyRemoteComponentAttachmentManager
 List of components to attach to remote, non-vrf entities.
DtHashlist * mySimObjectList
 Hashlist of all DtVrfObject*s, keyed on DtEntityIdentifier.
DtReflectedExtEntityList * myRemoteEntitiesList
 VR-Link reflected entity list.
DtReflectedExtAggregateList * myRemoteAggregateEntitiesList
 VR-Link reflected aggregate list.
DtReflectedDesignatorList * myRemoteDesignatorsList
 VR-Link reflected designator list.
DtReflectedActiveSonarList * myRemoteActiveSonarList
DtReflectedPropulsionNoiseList * myRemotePropulsionNoiseList
DtVrfParameterDbmyParameterDatabase
 Parameter database used in creation and initialization of DtVrfObjects.
DtList myAboutToBeLoadedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
DtList myAboutToBeAddedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
DtList myAddedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
DtList myAboutToBeRemovedSimObjectCallbackList
 List of DtSimObjectListActivityCallbackFcn*s.
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
DtList myObjectsToRemoveQueue
 Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval.
DtVrfObjectCreateQueue myObjectsToCreateQueue
DtVrfObjectModifyQueue myObjectsToModifyQueue
bool myAutoReorganizeFlag
 Automatic reorganization flag for pseudo-aggregate entities.
DtReflectedControlObjectList * myRemoteEnvironmentalsList
int myNameCounter
DtHashlist * myObjectNameHashlist
DtHashlist * myGlobalIdHashlist
DtOrganizationManagermyOrganizationManager
DtEchelonIdTablemyEchelonIdTable
DtDIGuyCharacterDataManagermyCharacterMgr
const Coordinate_System * myCoordinateSystemPtr
double myTimeToPublishNextStateUpdate
DtObjectGeometricModelsManagermyObjectModelsManager
DtSimInternalCommunicationManagermySimInternalCommunicationManager
DtVrfObjectPlanAdministratormyPlanAdministrator
DtNameChangedCallbackList myObjectNameChangedCallbackList
DtOrganizationReadyCallbackList myOrganizationManagerReadyCallbackList
DtConsoleCommandOwnermyConsoleCommands

Private Attributes

std::vector
< DtVrfObjectManagerCallbackInfo
myAboutToRemoveAllCallbackList
DtTerrainDbFactory * myTerrainDbFactory
 used by object model manager

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

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
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.

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 void DtVrfObjectManager::createRemoteComponentAttachmentManager ( )
virtual

Creates the DtRemoteComponentAttachmentManager.

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

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 pMyRemoteComponentAttachmentManager.

const DtRemoteComponentAttachmentManager * DtVrfObjectManager::remoteComponentAttachmentManager ( ) const
inline

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

Component Attachment to remote objects.

References pMyRemoteComponentAttachmentManager.

virtual bool DtVrfObjectManager::create ( )
virtual

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

virtual bool DtVrfObjectManager::createObjectNameHashlist ( )
virtual
virtual bool DtVrfObjectManager::createGlobalIdHashlist ( )
virtual
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 void DtVrfObjectManager::createDIGuyCharacterManager ( const DtFilename &  diGuyDataFile,
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::setParameterDatabase ( DtVrfParameterDb parameterDatabase)
virtual

Parameter database used in creation and initialization of DtVrfObjects.

virtual DtVrfParameterDb* DtVrfObjectManager::parameterDatabase ( )
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObject ( const DtEntityIdentifier &  key)
virtual

Looks up a DtVrfObject, given a DtEntityIdentifier.

Returns 0 if object cannot be found for the given key.

virtual const DtVrfObject* DtVrfObjectManager::lookupVrfObject ( const DtEntityIdentifier &  key) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObjectByGlobalId ( const DtGlobalObjectDesignator &  globalId)
virtual
virtual const DtVrfObject* DtVrfObjectManager::lookupVrfObjectByGlobalId ( const DtGlobalObjectDesignator &  globalId) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObjectByName ( const DtString name,
bool  warnOnFailure = true 
)
virtual
virtual const DtVrfObject* DtVrfObjectManager::lookupVrfObjectByName ( const DtString name,
bool  warnOnFailure = true 
) const
virtual
virtual const DtVrfObject* DtVrfObjectManager::lookupVrfObjectByEchelonIdString ( const DtString echIdString) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObjectByEchelonIdString ( const DtString echIdString)
virtual
virtual const DtVrfObject* DtVrfObjectManager::lookupVrfObjectByEchelonId ( const DtEchelonId echId) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObjectByEchelonId ( const DtEchelonId echId)
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupVrfObjectByObjectId ( const DtObjectId &  id) const
virtual
Returns
a DtVrfObject given a DtObjectId (local Id). lookupEntityByGlobalId() is preferred when possible (it provides faster, more efficient lookups).
virtual DtGlobalObjectDesignator DtVrfObjectManager::lookupGlobalId ( const DtObjectId &  id) const
virtual
Returns
a valid DtGlobalObjectDesignator, if a DtVrfObject with the given DtObjectId exists, a NULL string (HLA) or NULL object ID (DIS) if it cannot be found.
virtual DtObjectId DtVrfObjectManager::lookupObjectId ( const DtGlobalObjectDesignator &  globalId)
virtual
Returns
a valid DtObjectId, if a DtVrfObject with the given DtGlobalObjectDesignator exists, a DtObjectId::nullID() if it cannot be found.
virtual DtManagedObjectListConstPtr DtVrfObjectManager::getList ( const DtVrfObjectPredicate predicate,
bool  reevaluateFlag = false,
DtTime  evaluationPeriod = 0 
)
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 DtString objectName)
virtual

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

virtual void DtVrfObjectManager::removeAndDelete ( const DtEntityIdentifier &  key)
virtual
virtual void DtVrfObjectManager::removeAndDelete ( DtVrfObject object)
virtual
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.

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 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::processOrderOfBattleOp ( DtSimMessage msg)
virtual

Registered with the message executive to handle the OrderOfBattleOp 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::processCreateControlObject ( DtSimMessage msg)
virtual

Obsolete as of version 2.0.

virtual void DtVrfObjectManager::processCreateEntity ( DtSimMessage msg)
virtual
virtual void DtVrfObjectManager::processRemoveEntity ( DtSimMessage msg)
virtual
virtual void DtVrfObjectManager::processRequestEntityName ( DtSimMessage msg)
virtual
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::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 
)
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 
)
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 
)
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 
)
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 DtString filename)
virtual

Read/write order of battle file.

virtual bool DtVrfObjectManager::writeOrderOfBattleFile ( const DtString filename)
virtual
virtual bool DtVrfObjectManager::objectShouldBeSavedToOrderOfBattle ( const DtVrfObject vrfObject)
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 DtlObjPtr DtVrfObjectManager::getData ( DtlObjPtr  args,
const DtFilename &  searchPath,
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, searchPath, 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 DtVrfObject* DtVrfObjectManager::lookupTopLevelVrfObject ( DtForceType  forceType)
virtual

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

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 void DtVrfObjectManager::processOverlayOp ( DtSimMessage msg)
virtual

For backward compatibility with pre-2.0 scenario files (overlay file no longer used as of version 2.0).

May go away in future versions.

virtual bool DtVrfObjectManager::readOverlayFile ( const DtString filename)
virtual
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 ( )
virtual

run through the lists of known objects and perform discoveries

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 ( 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::addObjectNameChangedCallback ( DtVrfObjectNameChangedCallbackFcn  fcn,
void *  usr 
)
virtual

Callback that is invoked whenever an object is renamed.

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

Callback that is invoked whenever an object is renamed.

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 DtVrfObject* DtVrfObjectManager::aggregateAs ( const DtObjectType &  aggregateType,
DtForceType  force,
const DtVector dbPosition,
DtReal  heading,
DtList *  subordinateNames = 0,
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 bool DtVrfObjectManager::addSubordinatesToAggregate ( DtVrfObject object,
const DtList *  subordinateNames,
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 DtVrfObject* DtVrfObjectManager::lookup ( const DtEntityIdentifier &  key)
virtual

Looks up a DtVrfObject*, given a DtEntityIdentifier.

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

virtual const DtVrfObject* DtVrfObjectManager::lookup ( const DtEntityIdentifier &  key) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupObjectByGlobalId ( const DtGlobalObjectDesignator &  globalId)
virtual

Looks up an object for a given global Id.

virtual const DtVrfObject* DtVrfObjectManager::lookupObjectByGlobalId ( const DtGlobalObjectDesignator &  globalId) const
virtual
virtual DtVrfObject* DtVrfObjectManager::lookupObjectByName ( const DtString objectName)
virtual

Looks up an object for a given object name.

virtual const DtVrfObject* DtVrfObjectManager::lookupObjectByName ( const DtString objectName) const
virtual
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

The type of DtVrfObjects to create.

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

virtual const DtEntityIdentifier& DtVrfObjectManager::nextId ( )
virtual
Returns
The next unique id generated by the exercise connection.
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 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::list< DtString > &  list,
bool  includePsuedoAggregates = true 
) const
virtual

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

If includePsuedoAggregates 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::printReflectedObjectCounts ( ) const
virtual

Prints counts of different types of reflected objects.

virtual void DtVrfObjectManager::processOrganizationManagerReady ( const DtOrganizationManagerReadyCallbackInfo )
protectedvirtual

Called when organization manager ready state has changed.

virtual void DtVrfObjectManager::invokeOrganizationManagerReadyCallbacks ( const DtOrganizationManagerReadyCallbackInfo )
protectedvirtual
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 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 DtObjectGeometricModelsManager* DtVrfObjectManager::createObjectModelsManager ( ) const
protectedvirtual

Creates new object model manager.

virtual DtVrfObjectPlanAdministrator* DtVrfObjectManager::createPlanAdministrator ( )
protectedvirtual
DtObjectGeometricModelsManager* DtVrfObjectManager::objectModelsManager ( ) const
void DtVrfObjectManager::setTerrainDbFactory ( DtTerrainDbFactory *  )
DtTerrainDbFactory* DtVrfObjectManager::terrainDbFactory ( )
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.
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::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::orderOfBattleOpPostDrainCallback ( 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::pMyRemoteComponentAttachmentManager
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::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.

DtList DtVrfObjectManager::myAddedSimObjectCallbackList
protected

List of DtSimObjectListActivityCallbackFcn*s.

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

DtList DtVrfObjectManager::myAboutToBeRemovedSimObjectCallbackList
protected

List of DtSimObjectListActivityCallbackFcn*s.

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

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
DtList DtVrfObjectManager::myObjectsToRemoveQueue
protected

Objects queued for removal; processed each tick by removeObjectsQueuedForRemoval.

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
DtHashlist* DtVrfObjectManager::myObjectNameHashlist
protected
DtHashlist* DtVrfObjectManager::myGlobalIdHashlist
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
DtOrganizationReadyCallbackList DtVrfObjectManager::myOrganizationManagerReadyCallbackList
protected
DtConsoleCommandOwner* DtVrfObjectManager::myConsoleCommands
protected
std::vector<DtVrfObjectManagerCallbackInfo> DtVrfObjectManager::myAboutToRemoveAllCallbackList
private
DtTerrainDbFactory* DtVrfObjectManager::myTerrainDbFactory
private

used by object model manager


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

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)