VR-Forces 4.1.1 Class Documentation
List of all members | Public Member Functions
DtSpatialVrfObjectManagerInterface Class Reference

Abstract interface for a spatial object manager. More...

Inheritance diagram for DtSpatialVrfObjectManagerInterface:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtSpatialVrfObjectManagerInterface ()
virtual void addVrfObjects (const DtManagedObjectListConstPtr &vrfObjects)=0
 Spatially sorts the vrfObjects associated in the vrfObjects.
virtual void removeVrfObject (DtVrfObject *vrfObject)=0
 Removes vrfObject from the set of vrfObjects we are maintaining.
virtual bool setResolutions (unsigned int xRes, unsigned int yRes, unsigned int zRes)=0
 Deprecated – doesn't apply to octree manager.
virtual void clearVrfObjects ()=0
 Clears all managed objects from the manager.
virtual void reset (const DtManagedObjectListConstPtr &vrfObjects)=0
 Clears out the current subdivision, sets it to have the minimum extent, that contains all of the DtVrfObjects specified, and adds the specified DtVrfObjects.
virtual bool getVrfObjects (const DtExtent &extent, std::set< DtVrfObject * > &objects)=0
 Set of functions used to get the relevant DtVrfObjects from the object manager.
virtual bool getVrfObjects (const DtExtent &extent, std::set< const DtVrfObject * > &objects) const =0
virtual bool getVrfObjects (DtVrfObjectPredicate &predicate, const DtExtent &extent, std::set< DtVrfObject * > &objects)=0
virtual bool getVrfObjects (DtVrfObjectPredicate &predicate, const DtExtent &extent, std::set< const DtVrfObject * > &objects) const =0
virtual bool getVrfObjects (DtChord &chord, std::list< DtVrfObject * > &objects)=0
virtual bool getVrfObjects (DtChord &chord, std::list< const DtVrfObject * > &objects) const =0
virtual bool getVrfObjects (DtVrfObjectPredicate &predicate, DtChord &chord, std::list< DtVrfObject * > &objects)=0
virtual bool getVrfObjects (DtVrfObjectPredicate &predicate, DtChord &chord, std::list< const DtVrfObject * > &objects) const =0
virtual void visitVrfObjects (const DtExtent &extent, DtSpatialSelectionFunctor &callback) const =0
 Functions that call the specified functor for every object intersecting the requested region (whether chord or extent).
virtual void visitVrfObjects (const DtChord &chord, DtSpatialSelectionFunctor &callback) const =0

Detailed Description

Abstract interface for a spatial object manager.

Constructor & Destructor Documentation

virtual DtSpatialVrfObjectManagerInterface::~DtSpatialVrfObjectManagerInterface ( )
inlinevirtual

Member Function Documentation

virtual void DtSpatialVrfObjectManagerInterface::addVrfObjects ( const DtManagedObjectListConstPtr vrfObjects)
pure virtual

Spatially sorts the vrfObjects associated in the vrfObjects.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual void DtSpatialVrfObjectManagerInterface::removeVrfObject ( DtVrfObject vrfObject)
pure virtual

Removes vrfObject from the set of vrfObjects we are maintaining.

Parameters
vrfObjectPointer to the object to be removed.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual bool DtSpatialVrfObjectManagerInterface::setResolutions ( unsigned int  xRes,
unsigned int  yRes,
unsigned int  zRes 
)
pure virtual

Deprecated – doesn't apply to octree manager.

Still necessary for DtSpatialVrfObjectManager. TODO need to push this all into the manager class, instead of having the DtPhysicalWorld assume that things are uniformly subdivided.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual void DtSpatialVrfObjectManagerInterface::clearVrfObjects ( )
pure virtual

Clears all managed objects from the manager.

Does not affect the spatial container, other than to empty its cells of any elements.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual void DtSpatialVrfObjectManagerInterface::reset ( const DtManagedObjectListConstPtr vrfObjects)
pure virtual

Clears out the current subdivision, sets it to have the minimum extent, that contains all of the DtVrfObjects specified, and adds the specified DtVrfObjects.

Note
This is provided as a memory optimization. Deleting and reallocating the spatial subdivision every tick was inefficient. So the spatial container is just cleared and resized to adjust for entities moving, being created destroyed, etc. This has the benefit of not causing a large memory reallocation, but at the disadvantage of not allowing the spatial subdivision to change its resolution.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual void DtSpatialVrfObjectManagerInterface::visitVrfObjects ( const DtExtent extent,
DtSpatialSelectionFunctor callback 
) const
pure virtual

Functions that call the specified functor for every object intersecting the requested region (whether chord or extent).

The functor should return false while additional processing should be done, and true if processing is complete and visitVrfObjects() should return. Note that processing is not guaranteed to stop immediately when the functor returns true; it is only a recommendation that processing can stop at any time.

Note
The functor may, and probably will, be called for additional DtVrfObjects when a primitive is supplied. We are only guaranteed not to miss any that do intersect.

Implemented in DtSpatialVrfObjectManager, and DtSpatialVrfObjectManagerOctree.

virtual void DtSpatialVrfObjectManagerInterface::visitVrfObjects ( const DtChord chord,
DtSpatialSelectionFunctor callback 
) const
pure virtual

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

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)