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

Classes

struct  Intersection

Public Types

typedef std::multiset
< Intersection
Intersections
- Public Types inherited from osgUtil::Intersector
enum  CoordinateFrame { WINDOW, PROJECTION, VIEW, MODEL }
enum  IntersectionLimit { NO_LIMIT, LIMIT_ONE_PER_DRAWABLE, LIMIT_ONE, LIMIT_NEAREST }

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 ()
- Public Member Functions inherited from osgUtil::Intersector
 Intersector (CoordinateFrame cf=MODEL)
void setCoordinateFrame (CoordinateFrame cf)
CoordinateFrame getCoordinateFrame () const
void setIntersectionLimit (IntersectionLimit limit)
IntersectionLimit getIntersectionLimit () const
bool disabled () const
void incrementDisabledCount ()
void decrementDisabledCount ()
bool reachedLimit ()
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool threadSafe)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

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
- Protected Attributes inherited from osgUtil::Intersector
CoordinateFrame _coordinateFrame
IntersectionLimit _intersectionLimit
unsigned int _disabledCount
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

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 ( )
inlinevirtual

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

osg::Vec3d osgUtil::LineSegmentIntersector::_end
protected
Intersections osgUtil::LineSegmentIntersector::_intersections
protected
LineSegmentIntersector* osgUtil::LineSegmentIntersector::_parent
protected
osg::Vec3d osgUtil::LineSegmentIntersector::_start
protected

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