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

typedef std::list< osg::ref_ptr<Intersector> > osgUtil::IntersectionVisitor::IntersectorStack [protected]

typedef std::list< osg::ref_ptr<osg::RefMatrix> > osgUtil::IntersectionVisitor::MatrixStack [protected]


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

IntersectorStack osgUtil::IntersectionVisitor::_intersectorStack [protected]

osg::ref_ptr<ReadCallback> osgUtil::IntersectionVisitor::_readCallback [protected]

MatrixStack osgUtil::IntersectionVisitor::_windowStack [protected]

MatrixStack osgUtil::IntersectionVisitor::_projectionStack [protected]

MatrixStack osgUtil::IntersectionVisitor::_viewStack [protected]

MatrixStack osgUtil::IntersectionVisitor::_modelStack [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:49 2007 for the OpenSceneGraph by doxygen 1.5.3.