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

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. | |
| Intersector * | getIntersector () |
| Get the intersector that will be used to intersect with the scene, and to store any hits that occur. | |
| const Intersector * | getIntersector () 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. | |
| ReadCallback * | getReadCallback () |
| Get the read callback. | |
| const ReadCallback * | getReadCallback () const |
| Get the const read callback. | |
| void | pushWindowMatrix (osg::RefMatrix *matrix) |
| void | pushWindowMatrix (osg::Viewport *viewport) |
| void | popWindowMatrix () |
| osg::RefMatrix * | getWindowMatrix () |
| const osg::RefMatrix * | getWindowMatrix () const |
| void | pushProjectionMatrix (osg::RefMatrix *matrix) |
| void | popProjectionMatrix () |
| osg::RefMatrix * | getProjectionMatrix () |
| const osg::RefMatrix * | getProjectionMatrix () const |
| void | pushViewMatrix (osg::RefMatrix *matrix) |
| void | popViewMatrix () |
| osg::RefMatrix * | getViewMatrix () |
| const osg::RefMatrix * | getViewMatrix () const |
| void | pushModelMatrix (osg::RefMatrix *matrix) |
| void | popModelMatrix () |
| osg::RefMatrix * | getModelMatrix () |
| const osg::RefMatrix * | getModelMatrix () 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::Vec3 & | getReferenceEyePoint () 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 |
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.
typedef std::list< osg::ref_ptr<Intersector> > osgUtil::IntersectionVisitor::IntersectorStack [protected] |
typedef std::list< osg::ref_ptr<osg::RefMatrix> > osgUtil::IntersectionVisitor::MatrixStack [protected] |
| osgUtil::IntersectionVisitor::IntersectionVisitor | ( | Intersector * | intersector = 0, |
| ReadCallback * | readCallback = 0 |
||
| ) |
| 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.
| 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.
| 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] |
| 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] |
| osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix | ( | ) | [inline] |
| const osg::RefMatrix* osgUtil::IntersectionVisitor::getWindowMatrix | ( | ) | const [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::RefMatrix * | matrix | ) | [inline] |
| void osgUtil::IntersectionVisitor::pushWindowMatrix | ( | osg::Viewport * | viewport | ) | [inline] |
References osg::Viewport::computeWindowMatrix().
| 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.
bool osgUtil::IntersectionVisitor::_dummyTraversal [protected] |
osg::Vec3 osgUtil::IntersectionVisitor::_eyePoint [mutable, protected] |
bool osgUtil::IntersectionVisitor::_eyePointDirty [mutable, protected] |
MatrixStack osgUtil::IntersectionVisitor::_modelStack [protected] |
Intersector::CoordinateFrame osgUtil::IntersectionVisitor::_referenceEyePointCoordinateFrame [protected] |
bool osgUtil::IntersectionVisitor::_useKdTreesWhenAvailable [protected] |
MatrixStack osgUtil::IntersectionVisitor::_viewStack [protected] |
| Generated at Thu Sep 27 2012 17:03:28 for the OpenSceneGraph by doxygen 1.7.6.1. |