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] |
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] |
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 Mon Oct 3 2011 12:39:50 for the OpenSceneGraph by doxygen 1.7.5. |