openscenegraph
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
osgUtil::LineSegmentIntersector Class Reference
Inheritance diagram for osgUtil::LineSegmentIntersector:
osgUtil::Intersector osg::Referenced

List of all members.

Classes

struct  Intersection

Public Types

typedef std::multiset
< Intersection
Intersections

Public Member Functions

 LineSegmentIntersector (const osg::Vec3d &start, const osg::Vec3d &end)
 LineSegmentIntersector (CoordinateFrame cf, const osg::Vec3d &start, const osg::Vec3d &end)
 LineSegmentIntersector (CoordinateFrame cf, double x, double y)
void insertIntersection (const Intersection &intersection)
IntersectionsgetIntersections ()
Intersection getFirstIntersection ()
void setStart (const osg::Vec3d &start)
const osg::Vec3dgetStart () const
void setEnd (const osg::Vec3d &end)
const osg::Vec3dgetEnd () const
virtual Intersectorclone (osgUtil::IntersectionVisitor &iv)
virtual bool enter (const osg::Node &node)
virtual void leave ()
virtual void intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable)
virtual void reset ()
virtual bool containsIntersections ()

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

Detailed Description

Concrete class for implementing line intersections with the scene graph. To be used in conjunction with IntersectionVisitor.


Member Typedef Documentation


Constructor & Destructor Documentation

osgUtil::LineSegmentIntersector::LineSegmentIntersector ( const osg::Vec3d start,
const osg::Vec3d end 
)

Construct a LineSegmentIntersector the runs between the specified start and end points in MODEL coordinates.

osgUtil::LineSegmentIntersector::LineSegmentIntersector ( CoordinateFrame  cf,
const osg::Vec3d start,
const osg::Vec3d end 
)

Construct a LineSegmentIntersector the 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).


Member Function Documentation

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]
Intersection osgUtil::LineSegmentIntersector::getFirstIntersection ( ) [inline]
Intersections& osgUtil::LineSegmentIntersector::getIntersections ( ) [inline]
const osg::Vec3d& osgUtil::LineSegmentIntersector::getStart ( ) const [inline]
void osgUtil::LineSegmentIntersector::insertIntersection ( const Intersection intersection) [inline]
virtual void osgUtil::LineSegmentIntersector::intersect ( osgUtil::IntersectionVisitor iv,
osg::Drawable drawable 
) [virtual]

Implements osgUtil::Intersector.

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]

Member Data Documentation


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