osgUtil::IntersectionVisitor Class Reference

InteresectionVisitor is used to testing for intersections with the scene, traversing the scene using generic osgUtil::Intersector's to test against the scene. More...

Inheritance diagram for osgUtil::IntersectionVisitor:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 IntersectionVisitor (Intersector *intersector=0, ReadCallback *readCallback=0)
virtual void reset ()
 Method to call to reset visitor.
void setIntersector (Intersector *intersector)
 Set the intersector that will be used to intersect with the scene, and to store any hits that occur.
IntersectorgetIntersector ()
 Get the intersector that will be used to intersect with the scene, and to store any hits that occur.
const IntersectorgetIntersector () const
 Get the const intersector that will be used to intersect with the scene, and to store any hits that occur.
void setUseKdTreeWhenAvailable (bool useKdTrees)
 Set whether the intersectors should use KdTrees when they are found on the scene graph.
bool getUseKdTreeWhenAvailable () const
 Set whether the intersectors should use KdTrees.
void setDoDummyTraversal (bool dummy)
bool getDoDummyTraversal () const
void setReadCallback (ReadCallback *rc)
 Set the read callback.
ReadCallbackgetReadCallback ()
 Get the read callback.
const ReadCallbackgetReadCallback () const
 Get the const read callback.
void pushWindowMatrix (osg::RefMatrix *matrix)
void pushWindowMatrix (osg::Viewport *viewport)
void popWindowMatrix ()
osg::RefMatrixgetWindowMatrix ()
const osg::RefMatrixgetWindowMatrix () const
void pushProjectionMatrix (osg::RefMatrix *matrix)
void popProjectionMatrix ()
osg::RefMatrixgetProjectionMatrix ()
const osg::RefMatrixgetProjectionMatrix () const
void pushViewMatrix (osg::RefMatrix *matrix)
void popViewMatrix ()
osg::RefMatrixgetViewMatrix ()
const osg::RefMatrixgetViewMatrix () const
void pushModelMatrix (osg::RefMatrix *matrix)
void popModelMatrix ()
osg::RefMatrixgetModelMatrix ()
const osg::RefMatrixgetModelMatrix () const
virtual void apply (osg::Node &node)
virtual void apply (osg::Geode &geode)
virtual void apply (osg::Billboard &geode)
virtual void apply (osg::Group &group)
virtual void apply (osg::LOD &lod)
virtual void apply (osg::PagedLOD &lod)
virtual void apply (osg::Transform &transform)
virtual void apply (osg::Projection &projection)
virtual void apply (osg::Camera &camera)

Protected Types

typedef std::list
< osg::ref_ptr< Intersector > > 
IntersectorStack
typedef std::list
< osg::ref_ptr< osg::RefMatrix > > 
MatrixStack

Protected Member Functions

bool enter (const osg::Node &node)
void leave ()
void intersect (osg::Drawable *drawable)
void push_clone ()
void pop_clone ()

Protected Attributes

IntersectorStack _intersectorStack
bool _useKdTreesWhenAvailable
bool _dummyTraversal
osg::ref_ptr< ReadCallback_readCallback
MatrixStack _windowStack
MatrixStack _projectionStack
MatrixStack _viewStack
MatrixStack _modelStack

Classes

struct  ReadCallback
 Callback used to implement the reading of external files, allowing support for paged databases to be integrated with IntersectionVisitor. More...


Detailed Description

InteresectionVisitor is used to testing for intersections with the scene, traversing the scene using generic osgUtil::Intersector's to test against the scene.

To implement different types of intersection techniques, one implements custom versions of the osgUtil::Intersector, and then pass the constructed intersector to the IntersectionVisitor.


Member Typedef Documentation


Constructor & Destructor Documentation

osgUtil::IntersectionVisitor::IntersectionVisitor ( Intersector intersector = 0,
ReadCallback readCallback = 0 
)


Member Function Documentation

virtual void osgUtil::IntersectionVisitor::reset (  )  [virtual]

Method to call to reset visitor.

Useful if your visitor accumulates state during a traversal, and you plan to reuse the visitor. To flush that state for the next traversal: call reset() prior to each traversal.

Reimplemented from osg::NodeVisitor.

void osgUtil::IntersectionVisitor::setIntersector ( Intersector intersector  ) 

Set the intersector that will be used to intersect with the scene, and to store any hits that occur.

Intersector* osgUtil::IntersectionVisitor::getIntersector (  )  [inline]

Get the intersector that will be used to intersect with the scene, and to store any hits that occur.

const Intersector* osgUtil::IntersectionVisitor::getIntersector (  )  const [inline]

Get the const intersector that will be used to intersect with the scene, and to store any hits that occur.

void osgUtil::IntersectionVisitor::setUseKdTreeWhenAvailable ( bool  useKdTrees  )  [inline]

Set whether the intersectors should use KdTrees when they are found on the scene graph.

bool osgUtil::IntersectionVisitor::getUseKdTreeWhenAvailable (  )  const [inline]

Set whether the intersectors should use KdTrees.

void osgUtil::IntersectionVisitor::setDoDummyTraversal ( bool  dummy  )  [inline]

bool osgUtil::IntersectionVisitor::getDoDummyTraversal (  )  const [inline]

void osgUtil::IntersectionVisitor::setReadCallback ( ReadCallback rc  )  [inline]

Set the read callback.

ReadCallback* osgUtil::IntersectionVisitor::getReadCallback (  )  [inline]

Get the read callback.

const ReadCallback* osgUtil::IntersectionVisitor::getReadCallback (  )  const [inline]

Get the const read callback.

void osgUtil::IntersectionVisitor::pushWindowMatrix ( osg::RefMatrix matrix  )  [inline]

void osgUtil::IntersectionVisitor::pushWindowMatrix ( osg::Viewport viewport  )  [inline]

void osgUtil::IntersectionVisitor::popWindowMatrix (  )  [inline]

osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix (  )  [inline]

const osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix (  )  const [inline]

void osgUtil::IntersectionVisitor::pushProjectionMatrix ( osg::RefMatrix matrix  )  [inline]

void osgUtil::IntersectionVisitor::popProjectionMatrix (  )  [inline]

osg::RefMatrix* osgUtil::IntersectionVisitor::getProjectionMatrix (  )  [inline]

const osg::RefMatrix* osgUtil::IntersectionVisitor::getProjectionMatrix (  )  const [inline]

void osgUtil::IntersectionVisitor::pushViewMatrix ( osg::RefMatrix matrix  )  [inline]

void osgUtil::IntersectionVisitor::popViewMatrix (  )  [inline]

osg::RefMatrix* osgUtil::IntersectionVisitor::getViewMatrix (  )  [inline]

const osg::RefMatrix* osgUtil::IntersectionVisitor::getViewMatrix (  )  const [inline]

void osgUtil::IntersectionVisitor::pushModelMatrix ( osg::RefMatrix matrix  )  [inline]

void osgUtil::IntersectionVisitor::popModelMatrix (  )  [inline]

osg::RefMatrix* osgUtil::IntersectionVisitor::getModelMatrix (  )  [inline]

const osg::RefMatrix* osgUtil::IntersectionVisitor::getModelMatrix (  )  const [inline]

virtual void osgUtil::IntersectionVisitor::apply ( osg::Node node  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Geode geode  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Billboard geode  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Group group  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::LOD lod  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::PagedLOD lod  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Transform transform  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Projection projection  )  [virtual]

Reimplemented from osg::NodeVisitor.

virtual void osgUtil::IntersectionVisitor::apply ( osg::Camera camera  )  [virtual]

Reimplemented from osg::NodeVisitor.

bool osgUtil::IntersectionVisitor::enter ( const osg::Node node  )  [inline, protected]

void osgUtil::IntersectionVisitor::leave (  )  [inline, protected]

void osgUtil::IntersectionVisitor::intersect ( osg::Drawable drawable  )  [inline, protected]

void osgUtil::IntersectionVisitor::push_clone (  )  [inline, protected]

void osgUtil::IntersectionVisitor::pop_clone (  )  [inline, protected]


Member Data Documentation


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

Generated at Thu Aug 14 04:13:11 2008 for the OpenSceneGraph by doxygen 1.5.6.