|
| RayIntersector (CoordinateFrame cf=MODEL, RayIntersector *parent=NULL, osgUtil::Intersector::IntersectionLimit intersectionLimit=osgUtil::Intersector::NO_LIMIT) |
|
| RayIntersector (const osg::Vec3d &start, const osg::Vec3d &direction) |
|
| RayIntersector (CoordinateFrame cf, const osg::Vec3d &start, const osg::Vec3d &direction, RayIntersector *parent=NULL, osgUtil::Intersector::IntersectionLimit intersectionLimit=osgUtil::Intersector::NO_LIMIT) |
|
| RayIntersector (CoordinateFrame cf, double x, double y) |
|
void | insertIntersection (const Intersection &intersection) |
|
Intersections & | getIntersections () |
|
Intersection | getFirstIntersection () |
|
virtual void | setStart (const osg::Vec3d &start) |
|
const osg::Vec3d & | getStart () const |
|
virtual void | setDirection (const osg::Vec3d &dir) |
|
const osg::Vec3d & | getDirection () 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 | reset () |
|
virtual bool | containsIntersections () |
|
| Intersector (CoordinateFrame cf=MODEL, IntersectionLimit il=NO_LIMIT) |
|
void | setCoordinateFrame (CoordinateFrame cf) |
|
CoordinateFrame | getCoordinateFrame () const |
|
void | setIntersectionLimit (IntersectionLimit limit) |
|
IntersectionLimit | getIntersectionLimit () const |
|
bool | disabled () const |
|
void | incrementDisabledCount () |
|
void | decrementDisabledCount () |
|
bool | reachedLimit () |
|
void | setPrecisionHint (PrecisionHint hint) |
|
PrecisionHint | getPrecisionHint () const |
|
| Referenced () |
|
| Referenced (bool threadSafeRefUnref) |
|
| Referenced (const Referenced &) |
|
Referenced & | operator= (const Referenced &) |
|
virtual void | setThreadSafeRefUnref (bool threadSafe) |
|
bool | getThreadSafeRefUnref () const |
|
OpenThreads::Mutex * | getRefMutex () const |
|
int | ref () const |
|
int | unref () const |
|
int | unref_nodelete () const |
|
int | referenceCount () const |
|
ObserverSet * | getObserverSet () const |
|
ObserverSet * | getOrCreateObserverSet () const |
|
void | addObserver (Observer *observer) const |
|
void | removeObserver (Observer *observer) const |
|
RayIntersector implements possibly-infinite line intersections with the scene graph.
Compared with LineSegmentIntersector, RayIntersector supports infinite intersection lines, start and end point can be given in homogeneous coordinates and projection matrix is allowed to have z-far plane at infinity (often used in shadow volume technique).
Currently, picking of objects at infinity is not supported. Please, contribute.
The class is be used in conjunction with IntersectionVisitor.
Definition at line 32 of file RayIntersector.h.
osgUtil::RayIntersector::RayIntersector |
( |
CoordinateFrame |
cf, |
|
|
double |
x, |
|
|
double |
y |
|
) |
| |
Convenience constructor for supporting picking in WINDOW and PROJECTION coordinates. In WINDOW coordinates, it creates a start value of (x,y,0) and end value of (x,y,1). In PROJECTION coordinates (clip space cube), it creates a start value of (x,y,-1) and end value of (x,y,1). In VIEW and MODEL coordinates, it creates a start value of (x,y,0) and end value of (x,y,1).