VR-Forces 4.0.4 Class Documentation
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes
DtVrfObjectStateRepository Class Reference

Description: This repository holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces. More...

Inheritance diagram for DtVrfObjectStateRepository:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtVrfObjectStateRepository (DtVrfObject *vrfObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
 Constructor.
 DtVrfObjectStateRepository (const DtVrfObjectStateRepository &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
 Copy Constructor.
const DtVrfObjectStateRepositoryoperator= (const DtVrfObjectStateRepository &orig)
 Assignment Operator.
virtual ~DtVrfObjectStateRepository ()
 Destructor.
virtual
DtSimObjectStateRepository
clone (const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const
 Clone.
virtual DtString type () const
 returns DtSimObjectStateRepositoryType
virtual const int objectStateRepositorySubType () const
 Returns DtSimObjectStateRepositorySubTypeVrfObject.
virtual const int vrfObjectStateRepositorySubType () const
 Returns DtVrfObjectStateRepositorySubTypeBase.
virtual bool init ()
 Our 'virtual' constructor. Calls all the create<>() methods.
virtual bool createParameters ()
virtual void initializeFromParameters ()
virtual const
DtVrfObjectParameters
vrfParameters () const
virtual
DtVrfStateRepositoryUserExtension
userExtension () const
 User extension to state repository class.
virtual void restoreEntity ()
 Called on a setRestore command, sets destroyed to false and sets resources to initial (parameter file) levels.
virtual void restoreResourcesFromParameters ()
virtual bool inSOR (const DtVrfObject *entity) const
virtual const DtStringengagementRules () const
virtual void setEngagementRules (const DtString &engagementRules)
virtual bool isTasked () const
 Returns true if entity is currently executing a task (at least one component must be tasked), false otherwise.
virtual void clearCurrentTaskMsg (const DtString &componentName)
 Clear all the tasks with the specified component name.
virtual void clearCurrentTaskMsg (const DtString &componentName, int taskId)
 Clear the task with specified taskId and the specified component name.
virtual const DtTaskStatusListtaskStatusList () const
virtual DtTaskMessagecurrentTaskMsg (const DtString &componentName) const
 Get the current task message.
virtual DtTaskMessagecurrentTaskMsg (const DtString &componentName, int taskId) const
 Get the current task message for the specified component and task ID.
virtual std::list
< DtTaskMessage * > 
allCurrentTaskMsg (const DtString &componentName) const
virtual void putSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtReaderWriter::appPath())
 Top level call to write itself to file.
virtual bool placePoints (DtAttachedTerrain &attachedTerrain, std::vector< DtGroundInteractionPt * > groundInteractionPts, bool *terrainDataAvailable=0)
 Positions list of ground interaction points on the terrain surface closest to the specified location.
virtual void updateSupportPoints (const DtVector &newPosition, const DtReal newHeading)
 reading in a scenario, want to make sure the support points get set up properly.
virtual const
DtVrfObjectParameters
parameters () const
virtual DtVrfObjectParametersmodifiableParameters ()
 A modifiable local copy of parameters.
virtual void setupParameterInheritance ()
 Called by init().
virtual bool createAttachments ()
 Override to create derived DtVrfAttachmentManager.
void addPart (DtArticulatedPartStateRepository *part)
 These will be replaced by equivalents in the attachment manager.
void removePart (DtArticulatedPartStateRepository *part)
DtArticulatedPartStateRepositorypart (DtArtPartType partType)
DtArticulatedPartStateRepositoryfindDescendantByType (DtArtPartType childType)
bool isEntity () const
bool isLocal () const
bool isAggregate () const
void addSubordinate (DtVrfObject *subordinateEntity)
 Adds an entity as a subordinate.
void removeSubordinate (DtVrfObject *subordinateEntity)
 Removes entity from our list of subordinates.
virtual DtVrfObjectleadEntity () const
virtual const DtStringfirstSubordinate () const
virtual const DtStringlastSubordinate () const
virtual const DtStringfirstHealthySubordinate () const
virtual void tick ()
 This method is called each simulation frame, and may include any processing that needs to be done on this object state each tick.
virtual void timedTick ()
 This version of tick checks to see if the time to tick has arrived (myNextTickTime <= exerciseClock()->approximateElapsedRealTime()).
virtual void setMinTickPeriod (double minTickPeriod)
 specifies a minimum tick period (which can also be thought of as
virtual double minTickPeriod () const
 access the minimum tick period
virtual void setMinTickPeriodVariance (double minTickPeriodVariance)
 set the variance in the minimum tick time
virtual double minTickPeriodVariance () const
 access the variance in the minimum tick period
virtual void setNextTickTime (double nextTickTime)
 The next tick time is normally calculated internally.
virtual double nextTickTime () const
 access the next tick time
virtual double calculateNextTickTime () const
 The next tick time is equal to mySimManager->exerciseClock()-> approximateElapsedRealTime() + myMinTickPeriod + a random # between -myMinTickPeriodVariance/2.
virtual bool createSubordinates ()
virtual DtVrfSubordinateManagervrfSubordinates ()
virtual const
DtVrfSubordinateManager
vrfSubordinates () const
virtual bool createProcessStateRepositoryManager ()
virtual const DtTaitBryan & localOrientationWrtDatabase () const
 Euler angles with respect to the local (database) coordinate system, in radians.
virtual void setLocalOrientationWrtDatabase (const DtTaitBryan &localOrientation)
virtual DtVrfWeaponPSRfirstWeaponPSR () const
 This is provided for backward compatibility with setTarget capabilities.
virtual void processObjectGeometry (const DtList &vertices)
 Processes a list of DtVectors, such as might come in a create or modify message.
virtual void processObjectGeometry (const DtLocalVertexList &vertices)
virtual void processObjectGeometry ()
 This form allows processObjectGeometry()'s bounding volume calculations to be done on it's current geometry (by making a copy first).
virtual const
DtVrfObjectParameters
vrfBaseParameters () const
virtual DtGroundInteractionPtgroundCenter ()
virtual const
DtGroundInteractionPt
groundCenter () const
virtual const DtVectorgetPartAttachPoint (const int partType) const
virtual void place (const DtVector &location, bool *dataAvailable=0, bool requireAllData=false)
 Place entity at 'location', on the ground, keeping its current heading.
virtual void place (const DtReal heading, bool *dataAvailable=0, bool requireAllData=false)
 Give entity the specified 'heading', but stay at its current location.
virtual void place (const DtVector &location, const DtReal heading, bool clampToGroundFlag=true, bool *dataAvailable=0, bool requireAllData=false)
 Place entity at specified 'location' and 'heading' on the ground.
virtual void updatePositionFromModelVertices ()
 Note that this is not currently ever called.
virtual void updateBVolFromModelVertices ()
virtual DtReal mass () const
virtual void setMass (const DtReal mass)
virtual const
DtArticulatedPartCollection * 
artPartList () const
 Get the list of articulated parts specified in the component descriptor.
virtual void createParts ()
 This causes the art part tree to be created.
virtual DtTime lastTimeFiredUpon () const
virtual void setLastTimeFiredUpon (const DtTime time)
virtual bool underFire () const
virtual void setUnderFire (bool underFire)
virtual DtDeadReckonTypes deadReckoningAlgorithm () const
virtual void setDeadReckoningAlgorithm (DtDeadReckonTypes deadReckoningAlgorithm)
virtual void putData (FILE *fp, int indentLevel=0)
 Override putData to set myParentName using the organization manager before saving.
virtual void getSelf (DtlObjPtr args, const DtFilename &searchPath, const DtVariableBindingsList &variableBindings)
 Override getSelf to handle mapping of old pre-2.0 oob files.
virtual int nextTaskId ()
 Returns next unique task id for this VR-Forces back-end.
virtual DtTaskMessagependingSubtask (int subtaskId, DtString &controller) const
 Returns the current subtask with the specified id.
virtual bool taskedBySuperiorUponTaskComplete () const
 Returns true if entity should automatically resume being tasked by superior upon completion of its current top-level task, false otherwise.
virtual void setParentWasDestroyedWhenEmbarked (bool)
virtual bool parentWasDestroyedWhenEmbarked () const
virtual void detachFromParent ()
virtual void attachToParent (DtSimObjectStateRepository *parent)
 Adds this state repository to the given parent's list of attached state repositories and updates myAttachedToRepository and myRootSimStateRepository.
virtual void attachToParent (DtString parent)
 Looks up the parent state repository using the given echelon ID and puts it in a call to attachToParent.
virtual void addAttachedTerrain (const DtString &parent)
 Asks the sim manager to look up the object model for the requested database.
virtual void removeAttachedTerrain (const DtString &parent)
 Decreases reference count of terrain model by name of object.
Dt3dBoundingVolume * boundingVolume () const
 Convenience method for accessing entity's bounding volume, stored in myObjectGeometry.
DtReal forwardSpeed () const
virtual void addRangeItem (const DtRangeItem &)
 Adds, removes and returns items in the range item list.
virtual void removeRangeItem (int index)
virtual void setRangeItems (const DtRangeItems &)
const DtRangeItemsrangeItems () const
DtRangeItemsrangeItems ()
virtual void clearRangeItems ()
DtAttachedTerrainterrainAttachedTo () const
virtual double sensorSignature (const DtSymbolString &sensorDomain) const
 Returns the current absolute signature for this object in the specified sensor domain.
virtual std::list< DtSymbolStringsensorSignatureDomains () const
virtual
DtVrfObjectStateRepository
toVrfObjectStateRepository ()
virtual const
DtVrfObjectStateRepository
toVrfObjectStateRepository () const
virtual const
DtObjectResourceManager
objectResourceManager () const
virtual DtObjectResourceManagerobjectResourceManager ()
Legacy Resources

These methods access the resource manager in the way it was accessible in VR-Forces 3.10 and earlier.

In VR-Forces 3.11, the prefix "old" was added to these method names, but their functionality remains the same. using the objectResourceManager() methods, or accessing the resource manager from the components is now the preferred method.

virtual const
DtSimResourceManager
oldResourceManager () const
 Returns a reference to our resource manager.
virtual DtSimResourceManageroldResourceManager ()
 Returns a reference to our resource manager.
virtual DtSimResourceoldLookupResource (const DtString &resourceName)
 Gets a pointer to the resource named resourceName.
virtual const DtSimResourceoldLookupResource (const DtString &resourceName) const
 Returns a reference to our resource manager.
virtual void oldAddResource (DtSimResource *resource)
 This does a clone of the resource and puts it on our main list, as well as adding the resource to the hash index.
virtual void oldRemoveResource (DtSimResource *resource)
 This removes and deletes the specified resource.
virtual void setSOR (DtReal center, DtReal size)
 Sector of responsibility.
virtual DtReal SORSize () const
 Sector of responsibility.
virtual DtReal SORCenter () const
 Sector of responsibility.
virtual const DtSimSectorSOR () const
 Sector of responsibility.
virtual void setRequestTaskNeeded (bool value)
 Set/get whether or not this needs to send a request task needed message.
virtual bool requestTaskNeeded () const
 Set/get whether or not this needs to send a request task needed message.
virtual void setTasked (const DtString &componentName, bool tasked)
 Set/get whether or not a given entity component currently executing a task.
virtual bool tasked (const DtString &componentName) const
 Set/get whether or not a given entity component currently executing a task.
virtual void setCurrentTaskMsg (const DtString &componentName, const DtTaskMessage &taskMsg)
 Set the current task message.
virtual void setCurrentTaskMsg (const DtString &componentName, const DtTaskMessage &taskMsg, int taskId)
 Set the current task message.
virtual void setIndependentlyTasked (bool value)
 Set/get whether or not this entity is currently independently tasked (separately from its unit).
virtual bool independentlyTasked () const
 Set/get whether or not this entity is currently independently tasked (separately from its unit).
virtual const
DtVrfObjectParameters
parameterEntry () const
 If a clone has been created, this call will return the cloned entry as a const pointer, else returns the original pointer.
virtual void setParameterEntry (DtVrfObjectParameters *parameterEntry)
 If a clone has been created, this call will return the cloned entry as a const pointer, else returns the original pointer.
virtual DtForceType forceType () const
 Get/Set the force type (team) of this entity.
virtual void setForceType (DtForceType force)
 Get/Set the force type (team) of this entity.
virtual bool createAppearance ()
 Encapsulates all the appearance related data and methods currently in the entity state repository.
virtual const DtAppearance * appearance () const
 Encapsulates all the appearance related data and methods currently in the entity state repository.
virtual DtAppearance * appearance ()
 Encapsulates all the appearance related data and methods currently in the entity state repository.
virtual void setCapabilities (int cap)
 Gets/sets capabilities of entity This is treated as the DIS capabilities bit field, and does not necessarily change any behaviors of the object.
virtual int capabilities () const
 Gets/sets capabilities of entity This is treated as the DIS capabilities bit field, and does not necessarily change any behaviors of the object.
void setDestroyed (bool isDestroyed)
 Destroyed status of entity (whether or not appearance()->damageState() is set to DtDamageDestroyed).
bool isDestroyed () const
 Destroyed status of entity (whether or not appearance()->damageState() is set to DtDamageDestroyed).
DtReal healthPct () const
void setHealthPct (DtReal pct)
bool firePowerKilled () const
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
void setFirePowerKilled (const bool firePowerKilled)
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
bool mobilityKilled () const
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
void setMobilityKilled (const bool mobilityKilled)
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
bool flaming () const
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
void setFlaming (const bool flaming)
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
bool smoking () const
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
void setSmoking (const bool smoking)
 Convenience methods for setting setting entity's appearance bits in DtAppearance.
virtual DtVrfSubordinateManagersubordinates ()
virtual const
DtVrfSubordinateManager
subordinates () const
virtual DtSimManagersimManager ()
virtual const DtSimManagersimManager () const
virtual DtPhysicalWorldphysicalWorld ()
virtual const DtPhysicalWorldphysicalWorld () const
virtual const
DtVrfProcessStateRepositoryManager
systemProcessStateRepositoryManager () const
virtual
DtVrfProcessStateRepositoryManager
systemProcessStateRepositoryManager ()
virtual const DtThresholder & deadReckoningThresholder () const
 Dead-reckoning threshold parameters.
virtual void setDeadReckoningThresholder (const DtThresholder &thresholder)
 Dead-reckoning threshold parameters.
virtual const DtEntityIdentifier & occupyingObjectId () const
 We hold the id of the object we are occupying.
virtual void setOccupyingObjectId (const DtEntityIdentifier &objId)
 We hold the id of the object we are occupying.
virtual void setEchelonId (const DtEchelonId &echelonId)
 The echelon ID of this object, if it is an organized object.
virtual DtEchelonIdechelonId ()
 The echelon ID of this object, if it is an organized object.
virtual const DtEchelonIdechelonId () const
 The echelon ID of this object, if it is an organized object.
virtual void setIsSubordinateOfForceLevel (bool yesNo)
 Indicates if this object's direct superior is a Force level object.
virtual bool isSubordinateOfForceLevel () const
 Indicates if this object's direct superior is a Force level object.
virtual void addPendingSubtaskId (const DtString &componentName, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void addPendingSubtaskId (const DtString &componentName, int taskId, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual bool findPendingSubtaskId (const DtString &componentName, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual bool findPendingSubtaskId (const DtString &componentName, int taskId, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void removePendingSubtaskId (const DtString &componentName, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void removePendingSubtaskId (const DtString &componentName, int taskId, int subtaskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void removeAllPendingSubtaskIds (const DtString &componentName)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void removeAllPendingSubtaskIds (const DtString &componentName, int taskId)
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual void printPendingSubtaskIds (const DtString &componentName) const
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual std::vector< int > currentPendingSubstaskIds (const DtString &componentName) const
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
virtual std::vector< int > currentPendingSubstaskIds (const DtString &componentName, int taskId) const
 Functions for manipulating the set of pending subtask Ids for all components in the entity.
DtReal currentSpeed () const
 Returns magnitude of relative velocity in state repository.
DtReal currentHeading () const
 Heading in radians. Calls down to DtVrfKinematicState for heading.
void setCurrentHeading (const DtReal heading)
 Heading in radians. Calls down to DtVrfKinematicState for heading.
virtual void addPostInitFromParamsCallback (DtPostInitializeFromParametersCallbackFcn fcn, void *usr)
 Add/remove callback function to be invoked immediately following execution of initializeFromParameters.
virtual void removePostInitFromParamsCallback (DtPostInitializeFromParametersCallbackFcn fcn, void *usr)
 Add/remove callback function to be invoked immediately following execution of initializeFromParameters.
virtual DtSensorContactInfoListobjectContactList ()
 Situational awareness of this object.
virtual const
DtSensorContactInfoList
objectContactList () const
 Situational awareness of this object.

Static Public Member Functions

static DtVrfObjectStateRepositorycreateRepository (const DtString &name, const DtString &type, DtVrfObject *simObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry=0)
 Creates a new state repository object, using the factory.
static void addSimObjectStateRepositoryCreatorFcn (const DtString &type, DtSimObjectStateRepositoryCreatorFcn fcn)
static DtVrfObjectStateRepositorycreator (const DtString &name, DtVrfObject *simObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry)
static DtVrfObjectStateRepositoryisVrfObjectStateRepository (DtSimObjectStateRepository *repository)
static const
DtVrfObjectStateRepository
isVrfObjectStateRepository (const DtSimObjectStateRepository *repository)
static
DtSimObjectStateRepositoryFactory
factory ()
 a DtSimObjectStateRepositoryFactory is allocated by the DtSimCreator, and this pointer is set.
static void setFactory (DtSimObjectStateRepositoryFactory *factory)
 a DtSimObjectStateRepositoryFactory is allocated by the DtSimCreator, and this pointer is set.

Protected Types

typedef std::list
< DtSignatureModifierEvaluator * > 
DtSignatureModifierEvalList
typedef std::map
< DtSymbolString,
DtSignatureModifierEvalList * > 
DtSignatureModifierEvalMap
typedef std::map
< DtSymbolString, double > 
DtSensorSignatureCacheMap
typedef std::pair
< DtPostInitializeFromParametersCallbackFcn,
void * > 
DtPostInitializeFromParametersInfo
typedef std::list
< DtPostInitializeFromParametersInfo
DtPostInitializeFromParametersCallbackList

Protected Member Functions

 DtVrfObjectStateRepository ()
 Default Constructor. Do not use.
virtual void initializeNextTaskId ()
 Initializes myNextTaskId to the next highest integer than the highest subtask Id currently maintained in myTaskStatusList.
virtual void setOrientationRelativeToParent ()
 If attached to a parent, and a terrain database is present, set orientation relative to parent.
virtual DtAttachedTerraincreateAttachedTerrain ()
virtual
DtArticulatedPartStateRepository
createArtPartStateRepository (DtVrfObject *vrfObject, const DtObjectType &objectType, const DtString &rwName=DtString::nullString())
 Returns new instance of a DtArticulatedPartStateRepository.
virtual double baseSensorSignature (const DtSymbolString &sensorDomain) const
virtual double modifySensorSignature (const DtSymbolString &sensorDomain, double baseSignature) const
 Modifies the supplied baseSignature using the signatureModifiers for the specified sensor domain.
virtual bool initSignatureEvaluators ()
 Sets up all the sensor signature evaluators in mySignatureEvalMap based on the parameter entry for this entity.
void clearSignatureEvaluators ()
 Removes and deletes all signature evaluators.
virtual bool createObjectResourceManager ()
 Creates and sets myObjectResourceManager.
virtual void invokePostInitFromParamsCallbacks ()
 Invokes all callbacks registered via a call to addPostInitFromParamsCallback.

Static Protected Member Functions

static bool visibilityFilter (const DtVrfObject *object, void *usr)
 Used by isVisible to determine which objects can block visibility.

Protected Attributes

DtVrfStateRepositoryUserExtensionmyStateRepositoryUserExtension
DtRwAppearancemyAppearance
DtRwInt myCapabilities
DtRwForceType myForceType
DtVrfSubordinateManagermySubordinates
 each of these has_a DtSubObjectManager
DtRwString myParentName
 if this object is a subordinate, this is used to write out the name of the parent
DtVrfProcessStateRepositoryManagermySystemProcessSRManager
DtLegacyProcessStateRepositoryManagermyLegacyPSRManager
 Used only to read in scenarios from pre VRF 3.11.
DtSimManagermySimManager
DtGroundInteractionPt myGroundCenter
bool myUnderFire
 Under fire parameters.
DtTime myLastTimeFiredUpon
DtReal myMass
DtDeadReckonTypes myDeadReckoningAlgorithm
DtThresholder myDeadReckoningThresholder
DtEntityIdentifier myOccupyingObjectId
DtArticulatedPartCollection myArtPartList
 This is created in createParts, and kept around to make setup of the network repository easier.
DtManagedObjectListConstPtr myVisibilityFilterList
 Shared list of visibility blocking objects.
DtRwVector myLocalPosition
 For backward compatibility with pre-2.0 VR-Forces oob files Registered as read-only, so they do not get written out to new oob files.
DtRwTaitBryan myLocalOrientation
DtRwBoolean myIsDestroyedFlag
DtEchelonId myEchelonId
DtRwBoolean myIsSubordinateOfForceLevel
DtRwInt myDesignator
 myDesignator is used for reading and writing only and is not valid at runtime.
DtRwBoolean myIndependentlyTasked
DtSimResourceManager myResourceManager
 This resource manager is used for all the top-level resource only.
DtObjectResourceManagermyObjectResourceManager
DtRwString myEngagementRules
DtSimSector mySectorOfResponsibility
 These really apply to a single weapon, and should be part of a weapon controller/actuator suite of some sort.
DtRwBoolean myRequestTaskNeeded
 Moved here from the DtLocalTaskManager class.
DtTaskStatusList myTaskStatusList
 Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class.
DtRwInt myNextTaskId
 The next available ID that can be assigned to a task for this entity.
DtRwBoolean myParentWasDestroyedWhenEmbarked
 Set to true when the entity is embarked on a destroyed parent so they do not become destroyed.
const DtVrfObjectParametersmyParameterEntry
 For performance and memory usage reasons, the copy of the parameter entry that used to be made when creating a state repository is no longer made when the state repository is initialized.
DtVrfObjectParametersmyParameters
 this is the parameter entry that this repository created.
double myMinTickPeriod
 For variable tick rate support.
double myMinTickPeriodVariance
double myNextTickTime
double myLastTickSimTime
DtAttachedTerrainmyTerrainAttachedTo
DtSignatureModifierEvalMap mySignatureModifierEvalMap
 Map which holds a set of lists of signature modifier evaluators indexed by sensor domain.
DtSensorSignatureCacheMap myMutableSensorSignatureCacheMap
 Maintains the current sensor signature (indexed by sensor domain) for this entity.
DtSensorContactInfoList myObjectContactList
 The situational awareness of this object.
DtPostInitializeFromParametersCallbackList myPostInitFromParamsCallbackList
DtRangeItems myRangeItems
 Range item information.

Static Protected Attributes

static
DtSimObjectStateRepositoryFactory
theFactory
virtual void processObjectAddedCallback (DtVrfObject *vrfObject)
 These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.
virtual void processObjectAboutToBeRemovedCallback (DtVrfObject *vrfObject)
 These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.
static void objectAddedCallback (DtVrfObject *vrfObject, void *usr)
 These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.
static void objectAboutToBeRemovedCallback (DtVrfObject *vrfObject, void *usr)
 These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.

Detailed Description

Description: This repository holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.


Member Typedef Documentation


Constructor & Destructor Documentation

Default Constructor. Do not use.

DtVrfObjectStateRepository::DtVrfObjectStateRepository ( DtVrfObject vrfObject,
const DtObjectType objectType,
DtVrfObjectParameters parameters,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)

Constructor.

DtVrfObjectStateRepository::DtVrfObjectStateRepository ( const DtVrfObjectStateRepository orig,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)

Copy Constructor.

Destructor.


Member Function Documentation

const DtVrfObjectStateRepository& DtVrfObjectStateRepository::operator= ( const DtVrfObjectStateRepository orig)

Assignment Operator.

virtual DtSimObjectStateRepository* DtVrfObjectStateRepository::clone ( const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
) const [virtual]
virtual DtString DtVrfObjectStateRepository::type ( ) const [virtual]
virtual const int DtVrfObjectStateRepository::objectStateRepositorySubType ( ) const [virtual]

Returns DtSimObjectStateRepositorySubTypeVrfObject.

Reimplemented from DtSimObjectStateRepository.

virtual const int DtVrfObjectStateRepository::vrfObjectStateRepositorySubType ( ) const [virtual]

Returns DtVrfObjectStateRepositorySubTypeBase.

Reimplemented in DtVrfOverlayObjectStateRepository, and DtVrfMovingObjectStateRepository.

virtual bool DtVrfObjectStateRepository::init ( ) [virtual]

User extension to state repository class.

Users can override the creation of this object to extend the state repository class at a base class level. Specify the kind of state repository user extension to create in the DtVrfObjectParameters object.

virtual void DtVrfObjectStateRepository::restoreEntity ( ) [virtual]

Called on a setRestore command, sets destroyed to false and sets resources to initial (parameter file) levels.

Reimplemented in DtRotaryWingEntityStateRepository, and DtFixedWingEntityStateRepository.

Returns:
A pointer to the DtObjectResourceManager for this object. This resource manager interacts will all the resource managers in all the systems on this object, and allows the user to find any resource no matter where it is in the system hierarchy of the object.
Note:
In VR-Forces 3.10 and earlier, components accessed the resourceManager in the state repository to find out what resources were on the entity. Now, DtComponentSystem instances are responsible for managing resources, and components should interact with the resource managers in their local system. They can access this using the call DtSimComponent::resourceManager().
Returns:
A pointer to the DtObjectResourceManager for this object. This resource manager interacts will all the resource managers in all the systems on this object, and allows the user to find any resource no matter where it is in the system hierarchy of the object.
Note:
In VR-Forces 3.10 and earlier, components accessed the resourceManager in the state repository to find out what resources were on the entity. Now, DtComponentSystem instances are responsible for managing resources, and components should interact with the resource managers in their local system. They can access this using the call DtSimComponent::resourceManager().

Returns a reference to our resource manager.

Returns a reference to our resource manager.

virtual DtSimResource* DtVrfObjectStateRepository::oldLookupResource ( const DtString resourceName) [virtual]

Gets a pointer to the resource named resourceName.

virtual const DtSimResource* DtVrfObjectStateRepository::oldLookupResource ( const DtString resourceName) const [virtual]

Returns a reference to our resource manager.

virtual void DtVrfObjectStateRepository::oldAddResource ( DtSimResource resource) [virtual]

This does a clone of the resource and puts it on our main list, as well as adding the resource to the hash index.

virtual void DtVrfObjectStateRepository::oldRemoveResource ( DtSimResource resource) [virtual]

This removes and deletes the specified resource.

virtual void DtVrfObjectStateRepository::setSOR ( DtReal  center,
DtReal  size 
) [virtual]

Sector of responsibility.

Defined as a size in radians and a center angle in radians (with respect to the entity itself).

virtual DtReal DtVrfObjectStateRepository::SORSize ( ) const [virtual]

Sector of responsibility.

Defined as a size in radians and a center angle in radians (with respect to the entity itself).

virtual DtReal DtVrfObjectStateRepository::SORCenter ( ) const [virtual]

Sector of responsibility.

Defined as a size in radians and a center angle in radians (with respect to the entity itself).

virtual const DtSimSector& DtVrfObjectStateRepository::SOR ( ) const [virtual]

Sector of responsibility.

Defined as a size in radians and a center angle in radians (with respect to the entity itself).

virtual bool DtVrfObjectStateRepository::inSOR ( const DtVrfObject entity) const [virtual]
Returns:
True of the specified entity is currently within the defined sector of responsibility for of this object.
virtual const DtString& DtVrfObjectStateRepository::engagementRules ( ) const [virtual]
virtual void DtVrfObjectStateRepository::setEngagementRules ( const DtString engagementRules) [virtual]
virtual void DtVrfObjectStateRepository::setRequestTaskNeeded ( bool  value) [virtual]

Set/get whether or not this needs to send a request task needed message.

Set/get whether or not this needs to send a request task needed message.

virtual void DtVrfObjectStateRepository::setTasked ( const DtString componentName,
bool  tasked 
) [virtual]

Set/get whether or not a given entity component currently executing a task.

virtual bool DtVrfObjectStateRepository::tasked ( const DtString componentName) const [virtual]

Set/get whether or not a given entity component currently executing a task.

virtual bool DtVrfObjectStateRepository::isTasked ( ) const [virtual]

Returns true if entity is currently executing a task (at least one component must be tasked), false otherwise.

virtual void DtVrfObjectStateRepository::clearCurrentTaskMsg ( const DtString componentName) [virtual]

Clear all the tasks with the specified component name.

virtual void DtVrfObjectStateRepository::clearCurrentTaskMsg ( const DtString componentName,
int  taskId 
) [virtual]

Clear the task with specified taskId and the specified component name.

virtual void DtVrfObjectStateRepository::setCurrentTaskMsg ( const DtString componentName,
const DtTaskMessage taskMsg 
) [virtual]

Set the current task message.

virtual void DtVrfObjectStateRepository::setCurrentTaskMsg ( const DtString componentName,
const DtTaskMessage taskMsg,
int  taskId 
) [virtual]

Set the current task message.

Returns:
The list of current tasks with their status.
virtual DtTaskMessage* DtVrfObjectStateRepository::currentTaskMsg ( const DtString componentName) const [virtual]

Get the current task message.

If multiple task messages exist for a single component name, only the first is returned.

virtual DtTaskMessage* DtVrfObjectStateRepository::currentTaskMsg ( const DtString componentName,
int  taskId 
) const [virtual]

Get the current task message for the specified component and task ID.

virtual std::list<DtTaskMessage*> DtVrfObjectStateRepository::allCurrentTaskMsg ( const DtString componentName) const [virtual]
Returns:
A list of all current task messages for a given component name.
virtual void DtVrfObjectStateRepository::putSelf ( FILE *  fp,
int  indentLevel = 0,
bool  writeUnspecified = false,
const DtFilename &  path = DtReaderWriter::appPath() 
) [virtual]

Top level call to write itself to file.

If write unspecified is true, will write entries that are unspecified, in the format (name <use-default>). Path is passed down to all DtReaderWriter members in its DtReaderWriterRegistry (collection of child DtReaderWriter nodes). If a given member in the registry is of type DtReaderWriterFile, and the path is specified with a non-NULL string, then the path prepended to the filename before writing the entry to file.

Reimplemented from DtReaderWriter.

Reimplemented in DtMissileStateRepository.

virtual bool DtVrfObjectStateRepository::placePoints ( DtAttachedTerrain attachedTerrain,
std::vector< DtGroundInteractionPt * >  groundInteractionPts,
bool terrainDataAvailable = 0 
) [virtual]

Positions list of ground interaction points on the terrain surface closest to the specified location.

Parent position and orientation of each ground interaction point must be set before calling this function. Returns false if there are no points to place. If there is no ground intersection, sets ground interaction point to its current position without ground, but at altitude zero. If the terrain is still being paged in at the time of this call for any of the requested points, terrainDataAvailable will be set to false and the points will artificially be placed at the object's current altitude. If it is not specified, this will be a blocking call (which should usually not be done from a tick function).

Returns:
False if there are no points to place.
virtual void DtVrfObjectStateRepository::updateSupportPoints ( const DtVector newPosition,
const DtReal  newHeading 
) [virtual]

reading in a scenario, want to make sure the support points get set up properly.

Base class is empty. If gravity aligned is true, does not clamp to terrain

Reimplemented in DtVrfMovingObjectStateRepository.

virtual void DtVrfObjectStateRepository::setIndependentlyTasked ( bool  value) [virtual]

Set/get whether or not this entity is currently independently tasked (separately from its unit).

Set/get whether or not this entity is currently independently tasked (separately from its unit).

static void DtVrfObjectStateRepository::objectAddedCallback ( DtVrfObject vrfObject,
void *  usr 
) [static]

These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.

Reimplemented from DtSimObjectStateRepository.

These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.

Reimplemented from DtSimObjectStateRepository.

static void DtVrfObjectStateRepository::objectAboutToBeRemovedCallback ( DtVrfObject vrfObject,
void *  usr 
) [static]

These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.

Reimplemented from DtSimObjectStateRepository.

These callbacks are used to set myAttachedToStateRepository when this ent gets attached/detached to/from its parent.

Reimplemented from DtSimObjectStateRepository.

static DtVrfObjectStateRepository* DtVrfObjectStateRepository::createRepository ( const DtString name,
const DtString type,
DtVrfObject simObject,
const DtObjectType objectType,
DtVrfObjectParameters parameters,
DtReaderWriterRegistry parentRegistry = 0 
) [static]

Creates a new state repository object, using the factory.

a DtSimObjectStateRepositoryFactory is allocated by the DtSimCreator, and this pointer is set.

The DtSimCreator deletes this pointer when it is deleted. This is done this way because we don't allow static initialization

Reimplemented from DtReaderWriter.

a DtSimObjectStateRepositoryFactory is allocated by the DtSimCreator, and this pointer is set.

The DtSimCreator deletes this pointer when it is deleted. This is done this way because we don't allow static initialization

If a clone has been created, this call will return the cloned entry as a const pointer, else returns the original pointer.

virtual void DtVrfObjectStateRepository::setParameterEntry ( DtVrfObjectParameters parameterEntry) [virtual]

If a clone has been created, this call will return the cloned entry as a const pointer, else returns the original pointer.

Reimplemented in DtVrfAggregateStateRepository.

Deprecated:
To be removed after VR-Forces version 3.11

A modifiable local copy of parameters.

Called by init().

Initializes myParameters with data from myParameterEntry.

virtual DtForceType DtVrfObjectStateRepository::forceType ( ) const [virtual]

Get/Set the force type (team) of this entity.

Allows from 0 to 255. Only 1-4 are standard DIS/HLA

virtual void DtVrfObjectStateRepository::setForceType ( DtForceType  force) [virtual]

Get/Set the force type (team) of this entity.

Allows from 0 to 255. Only 1-4 are standard DIS/HLA

Override to create derived DtVrfAttachmentManager.

Reimplemented from DtSimObjectStateRepository.

These will be replaced by equivalents in the attachment manager.

Encapsulates all the appearance related data and methods currently in the entity state repository.

The appearance bits are described in the DIS specification.

virtual const DtAppearance* DtVrfObjectStateRepository::appearance ( ) const [virtual]

Encapsulates all the appearance related data and methods currently in the entity state repository.

The appearance bits are described in the DIS specification.

virtual DtAppearance* DtVrfObjectStateRepository::appearance ( ) [virtual]

Encapsulates all the appearance related data and methods currently in the entity state repository.

The appearance bits are described in the DIS specification.

virtual void DtVrfObjectStateRepository::setCapabilities ( int  cap) [virtual]

Gets/sets capabilities of entity This is treated as the DIS capabilities bit field, and does not necessarily change any behaviors of the object.

virtual int DtVrfObjectStateRepository::capabilities ( ) const [virtual]

Gets/sets capabilities of entity This is treated as the DIS capabilities bit field, and does not necessarily change any behaviors of the object.

Destroyed status of entity (whether or not appearance()->damageState() is set to DtDamageDestroyed).

Reimplemented in DtIndividualLifeFormStateRepository, and DtHumanStateRepository.

Destroyed status of entity (whether or not appearance()->damageState() is set to DtDamageDestroyed).

Deprecated:
To be removed after VR-Forces version 3.11 The health (appearance->damageState()), as a function of a percentage (0 - 100), where 0 < .30 DtDamageDestroyed .30 < .80 DtDamageModerate .80 < .90 DtDamageSlight > .9 DtDamageNone
Deprecated:
To be removed after VR-Forces version 3.11 The health (appearance->damageState()), as a function of a percentage (0 - 100), where 0 < .30 DtDamageDestroyed .30 < .80 DtDamageModerate .80 < .90 DtDamageSlight > .9 DtDamageNone

Convenience methods for setting setting entity's appearance bits in DtAppearance.

void DtVrfObjectStateRepository::setFirePowerKilled ( const bool  firePowerKilled)

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Convenience methods for setting setting entity's appearance bits in DtAppearance.

void DtVrfObjectStateRepository::setMobilityKilled ( const bool  mobilityKilled)

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Convenience methods for setting setting entity's appearance bits in DtAppearance.

Deprecated:
To be removed after VR-Forces version 3.11
Returns:
true if DtVrfObject is configured with a network interface of type DtSimEntityNetInterface, false otherwise
Deprecated:
To be removed after VR-Forces version 3.11
Returns:
true if DtVrfObject has a the same site/app IDs as the application does, false otherwise
Deprecated:
To be removed after VR-Forces version 3.11
Returns:
true if DtVrfObject is configured with an object type with a super type of DtObjectTypeAggregate, DtObjectTypePseudoAggregate, or DtObjectTypeTrueAggregate, false otherwise
Deprecated:
To be removed after VR-Forces version 3.11 call vrfSubordinates() instead.
Deprecated:
To be removed after VR-Forces version 3.11 call vrfSubordinates() instead.

Adds an entity as a subordinate.

Subordinate entity's superior is set to be this entity. By default, the echelon organization is updated. Set the updateEchelonOrg flag to false when you do not want the echelon organization altered as a result of the operation (such as when restoring from file).

Removes entity from our list of subordinates.

Returns:
subordinate object with lowest designator, if one exists
virtual const DtString& DtVrfObjectStateRepository::firstSubordinate ( ) const [virtual]
Returns:
subordinate object with lowest designator, if one exists
virtual const DtString& DtVrfObjectStateRepository::lastSubordinate ( ) const [virtual]
Returns:
subordinate object with highest designator, if one exists
Returns:
first healthy subordinate if it exists, NULL if not.
Returns:
A pointer to the single DtSimManager class instance for this CGF.
virtual const DtSimManager* DtVrfObjectStateRepository::simManager ( ) const [virtual]
Returns:
A pointer to the single DtSimManager class instance for this CGF.
Returns:
A pointer to the single DtPhysicalWorld class instance for this CGF.
virtual const DtPhysicalWorld* DtVrfObjectStateRepository::physicalWorld ( ) const [virtual]
Returns:
A pointer to the single DtPhysicalWorld class instance for this CGF.
virtual void DtVrfObjectStateRepository::tick ( ) [virtual]

This method is called each simulation frame, and may include any processing that needs to be done on this object state each tick.

Reimplemented in DtMissileStateRepository.

virtual void DtVrfObjectStateRepository::timedTick ( ) [virtual]

This version of tick checks to see if the time to tick has arrived (myNextTickTime <= exerciseClock()->approximateElapsedRealTime()).

If it has, it will then call tick(), and recalculate the next tick time

virtual void DtVrfObjectStateRepository::setMinTickPeriod ( double  minTickPeriod) [virtual]

specifies a minimum tick period (which can also be thought of as

  1. / maximum tick rate). This is specified in seconds.
virtual double DtVrfObjectStateRepository::minTickPeriod ( ) const [virtual]

access the minimum tick period

virtual void DtVrfObjectStateRepository::setMinTickPeriodVariance ( double  minTickPeriodVariance) [virtual]

set the variance in the minimum tick time

virtual double DtVrfObjectStateRepository::minTickPeriodVariance ( ) const [virtual]

access the variance in the minimum tick period

virtual void DtVrfObjectStateRepository::setNextTickTime ( double  nextTickTime) [virtual]

The next tick time is normally calculated internally.

setNextTickTime can be used to force a tick (set nextTickTime to exerciseClock()-> approximateElapsedRealTime())

virtual double DtVrfObjectStateRepository::nextTickTime ( ) const [virtual]

access the next tick time

virtual double DtVrfObjectStateRepository::calculateNextTickTime ( ) const [virtual]

The next tick time is equal to mySimManager->exerciseClock()-> approximateElapsedRealTime() + myMinTickPeriod + a random # between -myMinTickPeriodVariance/2.

and +myMinTickPeriodVariance/2. If the exercise clock is paused, the variance is always set to zero to insure that the extra calls to DtFRand() don't prevent repeatability.

Returns:
Pointer to the object level process state repository manager. Top level component systems register their PSRs with this manager, and components should register their PSRs with their parent system. This is returned by DtSimComponent::psrManager().
Returns:
Pointer to the object level process state repository manager. Top level component systems register their PSRs with this manager, and components should register their PSRs with their parent system. This is returned by DtSimComponent::psrManager().
virtual const DtTaitBryan& DtVrfObjectStateRepository::localOrientationWrtDatabase ( ) const [virtual]

Euler angles with respect to the local (database) coordinate system, in radians.

virtual void DtVrfObjectStateRepository::setLocalOrientationWrtDatabase ( const DtTaitBryan &  localOrientation) [virtual]

This is provided for backward compatibility with setTarget capabilities.

Since these do not specify which of (potentially) multiple weapons to use, this call will retrieve the first.

virtual void DtVrfObjectStateRepository::processObjectGeometry ( const DtList &  vertices) [virtual]

Processes a list of DtVectors, such as might come in a create or modify message.

Sets the object geometry, determines the bounding area or volume, and sets local and world position at the geometric center of the geometry.

virtual void DtVrfObjectStateRepository::processObjectGeometry ( const DtLocalVertexList vertices) [virtual]

This form allows processObjectGeometry()'s bounding volume calculations to be done on it's current geometry (by making a copy first).

This is needed when reading from an .oob file, because the object geometry's vertex lists have not been populated with the normal setLocalVertices() (or successive addLocalVertex() calls), but rather by reading them from the file.

virtual const DtVector& DtVrfObjectStateRepository::getPartAttachPoint ( const int  partType) const [virtual]
virtual void DtVrfObjectStateRepository::place ( const DtVector location,
bool dataAvailable = 0,
bool  requireAllData = false 
) [virtual]

Place entity at 'location', on the ground, keeping its current heading.

Since no terrain intersections are made at this level, dataAvailable is always set to true.

Parameters:
Output
dataAvailableprevents the call from blocking due to terrain paging and will get a true value if the terrain intersections are successful. See DtVrfMovingObjectStateRepository::clampToGround for more information. Since no terrain intersections are made at this level, this flag is always set to true and is only used by DtVrfMovingObjectStateRepository and its subclasses.
requireAllDataprevents the call from changing the object if any terrain data is unavailable. Since no terrain intersections are made at this level, this flag is only used by DtVrfMovingObjectStateRepository and its subclasses.

Reimplemented in DtVrfMovingObjectStateRepository.

virtual void DtVrfObjectStateRepository::place ( const DtReal  heading,
bool dataAvailable = 0,
bool  requireAllData = false 
) [virtual]

Give entity the specified 'heading', but stay at its current location.

Since no terrain intersections are made at this level, dataAvailable is always set to true.

Parameters:
Output
dataAvailableprevents the call from blocking due to terrain paging and will get a true value if the terrain intersections are successful. See DtVrfMovingObjectStateRepository::clampToGround for more information. Since no terrain intersections are made at this level, this flag is always set to true and is only used by DtVrfMovingObjectStateRepository and its subclasses.
requireAllDataprevents the call from changing the object if any terrain data is unavailable. Since no terrain intersections are made at this level, this flag is only used by DtVrfMovingObjectStateRepository and its subclasses.

Reimplemented in DtVrfMovingObjectStateRepository.

virtual void DtVrfObjectStateRepository::place ( const DtVector location,
const DtReal  heading,
bool  clampToGroundFlag = true,
bool dataAvailable = 0,
bool  requireAllData = false 
) [virtual]

Place entity at specified 'location' and 'heading' on the ground.

Parameters:
Output
dataAvailableprevents the call from blocking due to terrain paging and will get a true value if the terrain intersections are successful. See DtVrfMovingObjectStateRepository::clampToGround for more information. Since no terrain intersections are made at this level, this flag is always set to true and is only used by DtVrfMovingObjectStateRepository and its subclasses.
requireAllDataprevents the call from changing the object if any terrain data is unavailable. Since no terrain intersections are made at this level, this flag is only used by DtVrfMovingObjectStateRepository and its subclasses.

Reimplemented in DtVrfMovingObjectStateRepository, DtFixedWingEntityStateRepository, and DtRotaryWingEntityStateRepository.

Note that this is not currently ever called.

Position is determined at the same time model vertices are, so this call is unnecessary.

Reimplemented from DtSimObjectStateRepository.

Reimplemented from DtSimObjectStateRepository.

virtual DtReal DtVrfObjectStateRepository::mass ( ) const [virtual]
virtual void DtVrfObjectStateRepository::setMass ( const DtReal  mass) [virtual]
virtual const DtArticulatedPartCollection* DtVrfObjectStateRepository::artPartList ( ) const [virtual]

Get the list of articulated parts specified in the component descriptor.

virtual void DtVrfObjectStateRepository::createParts ( ) [virtual]

This causes the art part tree to be created.

Each DtActuatorComponentDescriptor has an DtSimArtPartDescriptorList of parts which must be created.

virtual DtTime DtVrfObjectStateRepository::lastTimeFiredUpon ( ) const [virtual]
virtual void DtVrfObjectStateRepository::setLastTimeFiredUpon ( const DtTime  time) [virtual]
virtual bool DtVrfObjectStateRepository::underFire ( ) const [virtual]
virtual void DtVrfObjectStateRepository::setUnderFire ( bool  underFire) [virtual]
virtual DtDeadReckonTypes DtVrfObjectStateRepository::deadReckoningAlgorithm ( ) const [virtual]
virtual void DtVrfObjectStateRepository::setDeadReckoningAlgorithm ( DtDeadReckonTypes  deadReckoningAlgorithm) [virtual]
virtual const DtThresholder& DtVrfObjectStateRepository::deadReckoningThresholder ( ) const [virtual]

Dead-reckoning threshold parameters.

virtual void DtVrfObjectStateRepository::setDeadReckoningThresholder ( const DtThresholder &  thresholder) [virtual]

Dead-reckoning threshold parameters.

virtual const DtEntityIdentifier& DtVrfObjectStateRepository::occupyingObjectId ( ) const [virtual]

We hold the id of the object we are occupying.

Set in this base class since we could place a minefield inside of a strong point.

virtual void DtVrfObjectStateRepository::setOccupyingObjectId ( const DtEntityIdentifier &  objId) [virtual]

We hold the id of the object we are occupying.

Set in this base class since we could place a minefield inside of a strong point.

virtual void DtVrfObjectStateRepository::setEchelonId ( const DtEchelonId echelonId) [virtual]

The echelon ID of this object, if it is an organized object.

This describes this objects location in the organization hierarchy.

The echelon ID of this object, if it is an organized object.

This describes this objects location in the organization hierarchy.

virtual const DtEchelonId& DtVrfObjectStateRepository::echelonId ( ) const [virtual]

The echelon ID of this object, if it is an organized object.

This describes this objects location in the organization hierarchy.

Indicates if this object's direct superior is a Force level object.

Indicates if this object's direct superior is a Force level object.

virtual void DtVrfObjectStateRepository::putData ( FILE *  fp,
int  indentLevel = 0 
) [virtual]

Override putData to set myParentName using the organization manager before saving.

Reimplemented from DtSimObjectStateRepository.

virtual void DtVrfObjectStateRepository::getSelf ( DtlObjPtr  args,
const DtFilename &  searchPath,
const DtVariableBindingsList variableBindings 
) [virtual]

Override getSelf to handle mapping of old pre-2.0 oob files.

Maps the old variables for local and world position/orientation to the new object geometry and kinematic state members. Maps old boolean destroyed flag to new appearance bits.

Reimplemented from DtSimObjectStateRepository.

Reimplemented in DtMissileStateRepository, DtRotaryWingEntityStateRepository, and DtVrfAggregateStateRepository.

virtual int DtVrfObjectStateRepository::nextTaskId ( ) [virtual]

Returns next unique task id for this VR-Forces back-end.

virtual void DtVrfObjectStateRepository::addPendingSubtaskId ( const DtString componentName,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::addPendingSubtaskId ( const DtString componentName,
int  taskId,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual bool DtVrfObjectStateRepository::findPendingSubtaskId ( const DtString componentName,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual bool DtVrfObjectStateRepository::findPendingSubtaskId ( const DtString componentName,
int  taskId,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::removePendingSubtaskId ( const DtString componentName,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::removePendingSubtaskId ( const DtString componentName,
int  taskId,
int  subtaskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::removeAllPendingSubtaskIds ( const DtString componentName) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::removeAllPendingSubtaskIds ( const DtString componentName,
int  taskId 
) [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual void DtVrfObjectStateRepository::printPendingSubtaskIds ( const DtString componentName) const [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual std::vector<int> DtVrfObjectStateRepository::currentPendingSubstaskIds ( const DtString componentName) const [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual std::vector<int> DtVrfObjectStateRepository::currentPendingSubstaskIds ( const DtString componentName,
int  taskId 
) const [virtual]

Functions for manipulating the set of pending subtask Ids for all components in the entity.

Users should not call these functions directly. Access them through the DtTaskControllerComponent instead. They are here for the purposes of saving/restoring the information to the order of battle file only.

virtual DtTaskMessage* DtVrfObjectStateRepository::pendingSubtask ( int  subtaskId,
DtString controller 
) const [virtual]

Returns the current subtask with the specified id.

Also returns the controller that is responsible. If NULL, no task was found

Returns true if entity should automatically resume being tasked by superior upon completion of its current top-level task, false otherwise.

By default, this returns true.

Reimplemented from DtSimObjectStateRepository.

Adds this state repository to the given parent's list of attached state repositories and updates myAttachedToRepository and myRootSimStateRepository.

The parent coordinate system is zeroed out, making this object relative to the parent instead of relative to the world.

Reimplemented from DtSimObjectStateRepository.

virtual void DtVrfObjectStateRepository::attachToParent ( DtString  parent) [virtual]

Looks up the parent state repository using the given echelon ID and puts it in a call to attachToParent.

Reimplemented from DtSimObjectStateRepository.

virtual void DtVrfObjectStateRepository::addAttachedTerrain ( const DtString parent) [virtual]

Asks the sim manager to look up the object model for the requested database.

If there is a model then it adds it to our internal list. If the model already exists in the internal list, then it adds one to the reference count

This version will find the object in the object manager, and see what it's object type is to ask the object model manager in the sim manager for the object model

virtual void DtVrfObjectStateRepository::removeAttachedTerrain ( const DtString parent) [virtual]

Decreases reference count of terrain model by name of object.

If reference count is 0, it is removed from the list

Dt3dBoundingVolume* DtVrfObjectStateRepository::boundingVolume ( ) const

Convenience method for accessing entity's bounding volume, stored in myObjectGeometry.

Returns magnitude of relative velocity in state repository.

Previous to VRF 3.11, currentSpeed() returned only the forward/reverse component of the speed for some models. This is now returned by forwardSpeed().

Returns:
The current forward component of the entity's velocity. This value will be negative in the entity is moving in reverse. Sideways and vertical components of the velocity are ignored. The full velocity magnitude can by found by currentSpeed().

Heading in radians. Calls down to DtVrfKinematicState for heading.

void DtVrfObjectStateRepository::setCurrentHeading ( const DtReal  heading)

Heading in radians. Calls down to DtVrfKinematicState for heading.

Add/remove callback function to be invoked immediately following execution of initializeFromParameters.

Add/remove callback function to be invoked immediately following execution of initializeFromParameters.

virtual void DtVrfObjectStateRepository::initializeNextTaskId ( ) [protected, virtual]

Initializes myNextTaskId to the next highest integer than the highest subtask Id currently maintained in myTaskStatusList.

virtual void DtVrfObjectStateRepository::setOrientationRelativeToParent ( ) [protected, virtual]

If attached to a parent, and a terrain database is present, set orientation relative to parent.

Reimplemented from DtSimObjectStateRepository.

virtual DtArticulatedPartStateRepository* DtVrfObjectStateRepository::createArtPartStateRepository ( DtVrfObject vrfObject,
const DtObjectType objectType,
const DtString rwName = DtString::nullString() 
) [protected, virtual]

Returns new instance of a DtArticulatedPartStateRepository.

Called by createPart() when constructing the tree articulated part state repositories for the entity.

virtual void DtVrfObjectStateRepository::addRangeItem ( const DtRangeItem ) [virtual]

Adds, removes and returns items in the range item list.

virtual void DtVrfObjectStateRepository::removeRangeItem ( int  index) [virtual]
virtual void DtVrfObjectStateRepository::setRangeItems ( const DtRangeItems ) [virtual]
virtual void DtVrfObjectStateRepository::clearRangeItems ( ) [virtual]
virtual double DtVrfObjectStateRepository::sensorSignature ( const DtSymbolString sensorDomain) const [virtual]

Returns the current absolute signature for this object in the specified sensor domain.

If the domain is not found, 0 is returned. Uses the myMutableSensorSignatureCache to only calculate the signature once per tick.

Returns:
A list of all the sensor domains that this entity is configured with. These are all the domains that may return non-zero values from sensorSignature().

Situational awareness of this object.

If this object is aware of other objects in the scenario, this list will contain the known objects, and the properties of the objects which are known. The object must have a controller which fills in this list in order for there to be data in the object contact list.

Situational awareness of this object.

If this object is aware of other objects in the scenario, this list will contain the known objects, and the properties of the objects which are known. The object must have a controller which fills in this list in order for there to be data in the object contact list.

virtual double DtVrfObjectStateRepository::baseSensorSignature ( const DtSymbolString sensorDomain) const [protected, virtual]
Returns:
The this entity's base-signature value for the specified sensor domain. If the domain is not found, 0 is returned.
virtual double DtVrfObjectStateRepository::modifySensorSignature ( const DtSymbolString sensorDomain,
double  baseSignature 
) const [protected, virtual]

Modifies the supplied baseSignature using the signatureModifiers for the specified sensor domain.

Returns:
The modified signature.

Sets up all the sensor signature evaluators in mySignatureEvalMap based on the parameter entry for this entity.

Removes and deletes all signature evaluators.

Non-virtual because it is called from the destructor.

Creates and sets myObjectResourceManager.

Invokes all callbacks registered via a call to addPostInitFromParamsCallback.

static DtVrfObjectStateRepository* DtVrfObjectStateRepository::creator ( const DtString name,
DtVrfObject simObject,
const DtObjectType objectType,
DtVrfObjectParameters parameters,
DtReaderWriterRegistry parentRegistry 
) [static]

Reimplemented from DtSimObjectStateRepository.

Reimplemented from DtSimObjectStateRepository.

static bool DtVrfObjectStateRepository::visibilityFilter ( const DtVrfObject object,
void *  usr 
) [static, protected]

Used by isVisible to determine which objects can block visibility.


Member Data Documentation

each of these has_a DtSubObjectManager

if this object is a subordinate, this is used to write out the name of the parent

Reimplemented in DtVrfOverlayObjectStateRepository.

Used only to read in scenarios from pre VRF 3.11.

Under fire parameters.

DtEntityIdentifier DtVrfObjectStateRepository::myOccupyingObjectId [protected]
DtArticulatedPartCollection DtVrfObjectStateRepository::myArtPartList [protected]

This is created in createParts, and kept around to make setup of the network repository easier.

Shared list of visibility blocking objects.

For backward compatibility with pre-2.0 VR-Forces oob files Registered as read-only, so they do not get written out to new oob files.

myDesignator is used for reading and writing only and is not valid at runtime.

Check the designator of the echelonId for the current designator.

Reimplemented from DtReaderWriter.

This resource manager is used for all the top-level resource only.

Component Systems now contain resources, so most components will interact with these resource managers instead.

These really apply to a single weapon, and should be part of a weapon controller/actuator suite of some sort.

Moved here from the DtLocalTaskManager class.

Contains the myTasked and myCurrentTaskMsg members from the DtTaskControllerComponent class.

It is a list because there may be a number of DtTaskControllerComponents for a given entity.

The next available ID that can be assigned to a task for this entity.

Set to true when the entity is embarked on a destroyed parent so they do not become destroyed.

If the parent is then restored to a non-destroyed state while the entity is embarked, this will then be set to false

For performance and memory usage reasons, the copy of the parameter entry that used to be made when creating a state repository is no longer made when the state repository is initialized.

The myParameterEntry will point to the original parameter entry in the parameter database and should only be accessed by the const DtVrfObjectParameters* parameterEntry() const method.

If you wish to get a copy of the parameter entry for modification, you should not access the myParameters entry directly, as it will be NULL on access until a copy is created. This copy will be created by calling the non const parameters() method to return the myParameters entry. If a copy does not exist, one will be created by calling the createParameters() method (at which point you can set the myParameters entry to your new parameter instance -- this should be the only time you access the myParameters member variable directly). The parameters will then be initialized and then setupParameterInheritance() will be called.

If you try and access the myParameters variable directly, the program might crash at runtime due to the fact that it might be NULL, so, your code should be written (or modified) to only call the member function that will return the information you want: const DtVrfObjectParameters* parameterEntry() const will return a const pointer to the original parameter entry const DtVrfObjectParameters* parameters() const will also return a const pointer to the original parameter entry. This member function is provided for backwards compatibility only and could be depreciated in future versions DtVrfObjectParamters* parameters() will return a mutable copy of the original parameter entry. Changes to this entry will not effect the original pointer This is a pointer into the parameter database, and what it points to should not be modified. If you need to modify the entry, call the non-const accessor which will return a clone of the parameter entry that can be modified.

this is the parameter entry that this repository created.

It starts with values inherited from myParametersEntry

For variable tick rate support.

Map which holds a set of lists of signature modifier evaluators indexed by sensor domain.

Initialized by init from the parameter entry, and used by sensorSignature().

Maintains the current sensor signature (indexed by sensor domain) for this entity.

Calculated on first request, then used from the cache. The cache is cleared out each tick.

The situational awareness of this object.

List of other objects that this object is currently aware of.

Range item information.

Not used from ope but rather set by controllers that have range items that want to be published on the network


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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)