osgUtil::IntersectionVisitor Class Reference

Inheritance diagram for osgUtil::IntersectionVisitor:

osg::NodeVisitor osg::Referenced

List of all members.

Public Types

enum  LODSelectionMode { USE_HIGHEST_LEVEL_OF_DETAIL, USE_EYE_POINT_FOR_LOD_LEVEL_SELECTION }

Public Member Functions

 IntersectionVisitor (Intersector *intersector=0, ReadCallback *readCallback=0)
 META_NodeVisitor ("osgUtil","IntersectionVisitor") virtual void reset()
void setIntersector (Intersector *intersector)
IntersectorgetIntersector ()
const IntersectorgetIntersector () const
void setUseKdTreeWhenAvailable (bool useKdTrees)
bool getUseKdTreeWhenAvailable () const
void setDoDummyTraversal (bool dummy)
bool getDoDummyTraversal () const
void setReadCallback (ReadCallback *rc)
ReadCallbackgetReadCallback ()
const ReadCallbackgetReadCallback () const
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
void setReferenceEyePoint (const osg::Vec3 &ep)
const osg::Vec3getReferenceEyePoint () const
void setReferenceEyePointCoordinateFrame (Intersector::CoordinateFrame cf)
Intersector::CoordinateFrame getReferenceEyePointCoordinateFrame () const
virtual osg::Vec3 getEyePoint () const
void setLODSelectionMode (LODSelectionMode mode)
LODSelectionMode getLODSelectionMode () const
virtual float getDistanceToEyePoint (const osg::Vec3 &pos, bool withLODScale) 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
osg::Vec3 _referenceEyePoint
Intersector::CoordinateFrame _referenceEyePointCoordinateFrame
LODSelectionMode _lodSelectionMode
bool _eyePointDirty
osg::Vec3 _eyePoint

Classes

struct  ReadCallback


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


Member Enumeration Documentation

Enumerator:
USE_HIGHEST_LEVEL_OF_DETAIL 
USE_EYE_POINT_FOR_LOD_LEVEL_SELECTION 


Constructor & Destructor Documentation

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


Member Function Documentation

osgUtil::IntersectionVisitor::META_NodeVisitor ( "osgUtil"  ,
"IntersectionVisitor"   
)

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]

void osgUtil::IntersectionVisitor::setReferenceEyePoint ( const osg::Vec3 ep  )  [inline]

Set the reference eye point that is used for nodes that require an eye point to position themselves, such as billboards.

const osg::Vec3& osgUtil::IntersectionVisitor::getReferenceEyePoint (  )  const [inline]

Get the reference eye point.

void osgUtil::IntersectionVisitor::setReferenceEyePointCoordinateFrame ( Intersector::CoordinateFrame  cf  )  [inline]

Set the coordinate frame of the reference eye point.

Intersector::CoordinateFrame osgUtil::IntersectionVisitor::getReferenceEyePointCoordinateFrame (  )  const [inline]

Get the coordinate frame of the reference eye point.

virtual osg::Vec3 osgUtil::IntersectionVisitor::getEyePoint (  )  const [virtual]

Get the eye point in the local coordinate frame a given traversal point.

Reimplemented from osg::NodeVisitor.

void osgUtil::IntersectionVisitor::setLODSelectionMode ( LODSelectionMode  mode  )  [inline]

Set the LOD selection scheme.

LODSelectionMode osgUtil::IntersectionVisitor::getLODSelectionMode (  )  const [inline]

Get the LOD selection scheme.

virtual float osgUtil::IntersectionVisitor::getDistanceToEyePoint ( const osg::Vec3 pos,
bool  withLODScale 
) const [virtual]

Get the distance from a point to the eye point, distance value in local coordinate system. This is calculated using the pseudo-EyePoint (above) when doing LOD calculcations.

Reimplemented from osg::NodeVisitor.

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 on Sat Mar 20 12:34:07 2010 for openscenegraph by  doxygen 1.5.6