OpenSceneGraph
3.4.0
|
Concrete class for implementing line intersections with the scene graph. More...
Classes | |
struct | Intersection |
Public Types | |
typedef std::multiset < Intersection > | Intersections |
Public Member Functions | |
LineSegmentIntersector (const osg::Vec3d &start, const osg::Vec3d &end) | |
Construct a LineSegmentIntersector that runs between the specified start and end points in MODEL coordinates. | |
LineSegmentIntersector (CoordinateFrame cf, const osg::Vec3d &start, const osg::Vec3d &end, LineSegmentIntersector *parent=NULL, osgUtil::Intersector::IntersectionLimit intersectionLimit=osgUtil::Intersector::NO_LIMIT) | |
Construct a LineSegmentIntersector that runs between the specified start and end points in the specified coordinate frame. | |
LineSegmentIntersector (CoordinateFrame cf, double x, double y) | |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates creates a start value of (x,y,0) and end value of (x,y,1). | |
void | insertIntersection (const Intersection &intersection) |
Intersections & | getIntersections () |
Intersection | getFirstIntersection () |
void | setStart (const osg::Vec3d &start) |
const osg::Vec3d & | getStart () const |
void | setEnd (const osg::Vec3d &end) |
const osg::Vec3d & | getEnd () const |
virtual Intersector * | clone (osgUtil::IntersectionVisitor &iv) |
virtual bool | enter (const osg::Node &node) |
virtual void | leave () |
virtual void | intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable) |
virtual void | intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable, const osg::Vec3d &s, const osg::Vec3d &e) |
virtual void | reset () |
virtual bool | containsIntersections () |
Static Public Member Functions | |
static osg::Matrix | getTransformation (osgUtil::IntersectionVisitor &iv, CoordinateFrame cf) |
Compute the matrix that transforms the local coordinate system of parent Intersector (usually the current intersector) into the child coordinate system of the child Intersector. | |
Protected Member Functions | |
bool | intersects (const osg::BoundingSphere &bs) |
bool | intersectAndClip (osg::Vec3d &s, osg::Vec3d &e, const osg::BoundingBox &bb) |
Protected Attributes | |
LineSegmentIntersector * | _parent |
osg::Vec3d | _start |
osg::Vec3d | _end |
Intersections | _intersections |
Concrete class for implementing line intersections with the scene graph.
To be used in conjunction with IntersectionVisitor.
typedef std::multiset<Intersection> osgUtil::LineSegmentIntersector::Intersections |
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | const osg::Vec3d & | start, |
const osg::Vec3d & | end | ||
) |
Construct a LineSegmentIntersector that runs between the specified start and end points in MODEL coordinates.
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | CoordinateFrame | cf, |
const osg::Vec3d & | start, | ||
const osg::Vec3d & | end, | ||
LineSegmentIntersector * | parent = NULL , |
||
osgUtil::Intersector::IntersectionLimit | intersectionLimit = osgUtil::Intersector::NO_LIMIT |
||
) |
Construct a LineSegmentIntersector that runs between the specified start and end points in the specified coordinate frame.
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | CoordinateFrame | cf, |
double | x, | ||
double | y | ||
) |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates creates a start value of (x,y,0) and end value of (x,y,1).
In PROJECTION coordinates (clip space cube) creates a start value of (x,y,-1) and end value of (x,y,1). In VIEW and MODEL coordinates creates a start value of (x,y,0) and end value of (x,y,1).
virtual Intersector* osgUtil::LineSegmentIntersector::clone | ( | osgUtil::IntersectionVisitor & | iv | ) | [virtual] |
Implements osgUtil::Intersector.
virtual bool osgUtil::LineSegmentIntersector::containsIntersections | ( | ) | [inline, virtual] |
Implements osgUtil::Intersector.
virtual bool osgUtil::LineSegmentIntersector::enter | ( | const osg::Node & | node | ) | [virtual] |
Implements osgUtil::Intersector.
const osg::Vec3d& osgUtil::LineSegmentIntersector::getEnd | ( | ) | const [inline] |
const osg::Vec3d& osgUtil::LineSegmentIntersector::getStart | ( | ) | const [inline] |
static osg::Matrix osgUtil::LineSegmentIntersector::getTransformation | ( | osgUtil::IntersectionVisitor & | iv, |
CoordinateFrame | cf | ||
) | [static] |
Compute the matrix that transforms the local coordinate system of parent Intersector (usually the current intersector) into the child coordinate system of the child Intersector.
cf parameter indicates the coordinate frame of parent Intersector.
void osgUtil::LineSegmentIntersector::insertIntersection | ( | const Intersection & | intersection | ) | [inline] |
virtual void osgUtil::LineSegmentIntersector::intersect | ( | osgUtil::IntersectionVisitor & | iv, |
osg::Drawable * | drawable | ||
) | [virtual] |
Implements osgUtil::Intersector.
virtual void osgUtil::LineSegmentIntersector::intersect | ( | osgUtil::IntersectionVisitor & | iv, |
osg::Drawable * | drawable, | ||
const osg::Vec3d & | s, | ||
const osg::Vec3d & | e | ||
) | [virtual] |
bool osgUtil::LineSegmentIntersector::intersectAndClip | ( | osg::Vec3d & | s, |
osg::Vec3d & | e, | ||
const osg::BoundingBox & | bb | ||
) | [protected] |
bool osgUtil::LineSegmentIntersector::intersects | ( | const osg::BoundingSphere & | bs | ) | [protected] |
virtual void osgUtil::LineSegmentIntersector::leave | ( | ) | [virtual] |
Implements osgUtil::Intersector.
virtual void osgUtil::LineSegmentIntersector::reset | ( | ) | [virtual] |
Reimplemented from osgUtil::Intersector.
void osgUtil::LineSegmentIntersector::setEnd | ( | const osg::Vec3d & | end | ) | [inline] |
void osgUtil::LineSegmentIntersector::setStart | ( | const osg::Vec3d & | start | ) | [inline] |
osg::Vec3d osgUtil::LineSegmentIntersector::_end [protected] |
osg::Vec3d osgUtil::LineSegmentIntersector::_start [protected] |
![]() | Generated at Tue Dec 8 2015 00:16:50 for the OpenSceneGraph by doxygen 1.7.6.1. |