VR-Forces 4.0.4 Class Documentation
Public Member Functions
DtSpatialVrfObjectManagerInterface Class Reference

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

Inheritance diagram for DtSpatialVrfObjectManagerInterface:
Inheritance graph
[legend]

List of all members.

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


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