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

A nav interface is a software component of an object that maintains the object's presence in the navigation areas in the terrain. As VRF objects move, change shape, or change status (e.g. become destroyed), the nav interfaces update their position or status in the nav mesh. I.e., state changes in VRF must be pushed into the navigation areas by these interfaces. This update happens in the nav interface tick functions.
For example, one important function of a nav interface for moving objects is to update the position of the object (as provided by the object state repository) in the nav area. The object can then be seen by Gameware dynamic obstacle avoidance functions (so other objects can avoid this one). Another example is that objects that are dynamic obstacles are converted to static obstacles in the nav mesh when they are stationary for a period of time.
Subclasses of this class define specific interfaces, and include DtActiveBotNavInterface, DtCoverPointNavInterface, DtDynamicObstacleNavInterface, DtNavEdgeNavInterface, DtStaticObstacleNavInterface, and DtTagVolumeNavInterface.
The type of nav interface used for a particular type of object is defined in the .ope file for the object, in the local-objects and remote-objects sections, in the nav-interface parameter.

Inheritance diagram for DtVrfObjectNavInterface:
Inheritance graph
[legend]

Public Member Functions

virtual bool ableToNavigate () const
 
virtual void postObjectInit ()
 
virtual void tick ()
 
virtual void firstTick ()
 
virtual ~DtVrfObjectNavInterface ()=0
 
virtual void addNavAreaChangedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType callback, void *usr) const
 
virtual void removeNavAreaChangedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType callback, void *usr) const
 
virtual void invokeNavAreaChangedCallbacks ()
 
virtual void changingNavArea (DtNavArea *newNavArea)
 
virtual void setWaitingForLoad (bool isLoading)
 
virtual bool isWaitingForLoad () const
 

Protected Member Functions

 DtVrfObjectNavInterface (DtLocalObject *vrfObject)
 
 DtVrfObjectNavInterface (DtSimObjectReference vrfObject)
 
virtual bool init ()
 
virtual bool isCollidableWhenDestroyed () const
 

Protected Attributes

DtLocalObjectmyVrfObject
 
DtSimObjectReference mySimObjectReference
 
DtSimulationServicesmySimulationServices
 
DtNavAreamyCurrentNavArea
 
bool myFirstTick
 
bool myIsWaitingForNavLoad
 
DtNoArgumentCallbackList myChangedNavAreaCallbackList
 

Private Member Functions

 DtVrfObjectNavInterface ()
 
 DtVrfObjectNavInterface (const DtVrfObjectNavInterface &orig)
 
DtVrfObjectNavInterfaceoperator= (const DtVrfObjectNavInterface &orig)
 

Constructor & Destructor Documentation

DtVrfObjectNavInterface::DtVrfObjectNavInterface ( )
private

Not Implemented.

DtVrfObjectNavInterface::DtVrfObjectNavInterface ( const DtVrfObjectNavInterface orig)
private

Not Implemented.

DtVrfObjectNavInterface::DtVrfObjectNavInterface ( DtLocalObject vrfObject)
protected

Use the create() method instead of calling the constructor.

DtVrfObjectNavInterface::DtVrfObjectNavInterface ( DtSimObjectReference  vrfObject)
protected
virtual DtVrfObjectNavInterface::~DtVrfObjectNavInterface ( )
pure virtual

Member Function Documentation

DtVrfObjectNavInterface& DtVrfObjectNavInterface::operator= ( const DtVrfObjectNavInterface orig)
private

Not Implemented.

virtual bool DtVrfObjectNavInterface::ableToNavigate ( ) const
virtual

Generic call. Basic nav interfaces are not able to navigate.

Reimplemented in DtActiveBotNavInterface.

virtual bool DtVrfObjectNavInterface::init ( )
protectedvirtual
virtual void DtVrfObjectNavInterface::postObjectInit ( )
inlinevirtual

Perform additional initialization after the object has been initialized. Default behavior is to do nothing, must be implemented in subclass.

Reimplemented in DtNavEdgeNavInterface, DtActiveBotNavInterface, DtCoverPointNavInterface, DtTagVolumeNavInterface, DtDynamicObstacleNavInterface, and DtStaticObstacleNavInterface.

virtual void DtVrfObjectNavInterface::tick ( )
virtual
virtual void DtVrfObjectNavInterface::firstTick ( )
virtual
virtual void DtVrfObjectNavInterface::addNavAreaChangedCallback ( DtNoArgumentCallbackList::DtCallbackFunctionType  callback,
void *  usr 
) const
virtual
virtual void DtVrfObjectNavInterface::removeNavAreaChangedCallback ( DtNoArgumentCallbackList::DtCallbackFunctionType  callback,
void *  usr 
) const
virtual
virtual void DtVrfObjectNavInterface::invokeNavAreaChangedCallbacks ( )
virtual
virtual void DtVrfObjectNavInterface::changingNavArea ( DtNavArea newNavArea)
virtual
virtual void DtVrfObjectNavInterface::setWaitingForLoad ( bool  isLoading)
virtual

Indicates that there is nav data for this entity's location, but its still being loaded.

virtual bool DtVrfObjectNavInterface::isWaitingForLoad ( ) const
virtual
virtual bool DtVrfObjectNavInterface::isCollidableWhenDestroyed ( ) const
protectedvirtual
Returns
The value of the "collidable-when-destroyed" property from the navigation parameters in the object's parameter entry. This value defaults to true if not specified.

Member Data Documentation

DtLocalObject* DtVrfObjectNavInterface::myVrfObject
protected
DtSimObjectReference DtVrfObjectNavInterface::mySimObjectReference
protected
DtSimulationServices* DtVrfObjectNavInterface::mySimulationServices
protected
DtNavArea* DtVrfObjectNavInterface::myCurrentNavArea
protected
bool DtVrfObjectNavInterface::myFirstTick
protected
bool DtVrfObjectNavInterface::myIsWaitingForNavLoad
protected
DtNoArgumentCallbackList DtVrfObjectNavInterface::myChangedNavAreaCallbackList
mutableprotected

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

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