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 Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

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: