OpenSceneGraph 2.8.4
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
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.

Classes

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

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)
 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
void setReferenceEyePoint (const osg::Vec3 &ep)
 Set the reference eye point that is used for nodes that require an eye point to position themselves, such as billboards.
const osg::Vec3getReferenceEyePoint () const
 Get the reference eye point.
void setReferenceEyePointCoordinateFrame (Intersector::CoordinateFrame cf)
 Set the coordinate frame of the reference eye point.
Intersector::CoordinateFrame getReferenceEyePointCoordinateFrame () const
 Get the coordinate frame of the reference eye point.
virtual osg::Vec3 getEyePoint () const
 Get the eye point in the local coordinate frame a given traversal point.
void setLODSelectionMode (LODSelectionMode mode)
 Set the LOD selection scheme.
LODSelectionMode getLODSelectionMode () const
 Get the LOD selection scheme.
virtual float getDistanceToEyePoint (const osg::Vec3 &pos, bool withLODScale) const
 Get the distance from a point to the eye point, distance value in local coordinate system.
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

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

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]
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.

bool osgUtil::IntersectionVisitor::getDoDummyTraversal ( ) const [inline]
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.

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.

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

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

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

Get the LOD selection scheme.

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

Get the read callback.

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

Get the const read callback.

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

Get the reference eye point.

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

Get the coordinate frame of the reference eye point.

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

Set whether the intersectors should use KdTrees.

osg::RefMatrix* osgUtil::IntersectionVisitor::getViewMatrix ( ) [inline]
const osg::RefMatrix* osgUtil::IntersectionVisitor::getViewMatrix ( ) const [inline]
const osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix ( ) const [inline]
osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix ( ) [inline]
void osgUtil::IntersectionVisitor::intersect ( osg::Drawable drawable) [inline, protected]
void osgUtil::IntersectionVisitor::leave ( ) [inline, protected]
osgUtil::IntersectionVisitor::META_NodeVisitor ( "osgUtil"  ,
"IntersectionVisitor"   
)
void osgUtil::IntersectionVisitor::pop_clone ( ) [inline, protected]
void osgUtil::IntersectionVisitor::popModelMatrix ( ) [inline]
void osgUtil::IntersectionVisitor::popProjectionMatrix ( ) [inline]
void osgUtil::IntersectionVisitor::popViewMatrix ( ) [inline]
void osgUtil::IntersectionVisitor::popWindowMatrix ( ) [inline]
void osgUtil::IntersectionVisitor::push_clone ( ) [inline, protected]
void osgUtil::IntersectionVisitor::pushModelMatrix ( osg::RefMatrix matrix) [inline]
void osgUtil::IntersectionVisitor::pushProjectionMatrix ( osg::RefMatrix matrix) [inline]
void osgUtil::IntersectionVisitor::pushViewMatrix ( osg::RefMatrix matrix) [inline]
void osgUtil::IntersectionVisitor::pushWindowMatrix ( osg::Viewport viewport) [inline]
void osgUtil::IntersectionVisitor::pushWindowMatrix ( osg::RefMatrix matrix) [inline]
void osgUtil::IntersectionVisitor::setDoDummyTraversal ( bool  dummy) [inline]
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.

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

Set the LOD selection scheme.

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

Set the read callback.

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.

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

Set the coordinate frame of the reference eye point.

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

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


Member Data Documentation


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

osg logo
Generated at Sun Jan 8 2012 13:16:57 for the OpenSceneGraph by doxygen 1.7.4.