OpenSceneGraph
3.0.1
|
Pure virtual base class for implementing custom intersection technique. More...
Public Types | |
enum | CoordinateFrame { WINDOW, PROJECTION, VIEW, MODEL } |
enum | IntersectionLimit { NO_LIMIT, LIMIT_ONE_PER_DRAWABLE, LIMIT_ONE, LIMIT_NEAREST } |
Public Member Functions | |
Intersector (CoordinateFrame cf=MODEL) | |
void | setCoordinateFrame (CoordinateFrame cf) |
CoordinateFrame | getCoordinateFrame () const |
void | setIntersectionLimit (IntersectionLimit limit) |
IntersectionLimit | getIntersectionLimit () const |
virtual Intersector * | clone (osgUtil::IntersectionVisitor &iv)=0 |
virtual bool | enter (const osg::Node &node)=0 |
virtual void | leave ()=0 |
virtual void | intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable)=0 |
virtual void | reset () |
virtual bool | containsIntersections ()=0 |
bool | disabled () const |
void | incrementDisabledCount () |
void | decrementDisabledCount () |
bool | reachedLimit () |
Protected Attributes | |
CoordinateFrame | _coordinateFrame |
IntersectionLimit | _intersectionLimit |
unsigned int | _disabledCount |
Pure virtual base class for implementing custom intersection technique.
To implement a specific intersection technique on must override all the pure virtue methods, concrete examples of how to do this can be seen in the LineSegmentIntersector.
osgUtil::Intersector::Intersector | ( | CoordinateFrame | cf = MODEL | ) | [inline] |
virtual Intersector* osgUtil::Intersector::clone | ( | osgUtil::IntersectionVisitor & | iv | ) | [pure virtual] |
virtual bool osgUtil::Intersector::containsIntersections | ( | ) | [pure virtual] |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by reachedLimit().
void osgUtil::Intersector::decrementDisabledCount | ( | ) | [inline] |
References _disabledCount.
bool osgUtil::Intersector::disabled | ( | ) | const [inline] |
References _disabledCount.
virtual bool osgUtil::Intersector::enter | ( | const osg::Node & | node | ) | [pure virtual] |
CoordinateFrame osgUtil::Intersector::getCoordinateFrame | ( | ) | const [inline] |
References _coordinateFrame.
IntersectionLimit osgUtil::Intersector::getIntersectionLimit | ( | ) | const [inline] |
References _intersectionLimit.
void osgUtil::Intersector::incrementDisabledCount | ( | ) | [inline] |
References _disabledCount.
virtual void osgUtil::Intersector::intersect | ( | osgUtil::IntersectionVisitor & | iv, |
osg::Drawable * | drawable | ||
) | [pure virtual] |
virtual void osgUtil::Intersector::leave | ( | ) | [pure virtual] |
bool osgUtil::Intersector::reachedLimit | ( | ) | [inline] |
References _intersectionLimit, LIMIT_ONE, and containsIntersections().
virtual void osgUtil::Intersector::reset | ( | ) | [inline, virtual] |
Reimplemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
References _disabledCount.
void osgUtil::Intersector::setCoordinateFrame | ( | CoordinateFrame | cf | ) | [inline] |
References _coordinateFrame.
void osgUtil::Intersector::setIntersectionLimit | ( | IntersectionLimit | limit | ) | [inline] |
References _intersectionLimit.
Referenced by setCoordinateFrame(), and getCoordinateFrame().
unsigned int osgUtil::Intersector::_disabledCount [protected] |
Referenced by reset(), disabled(), incrementDisabledCount(), and decrementDisabledCount().
Referenced by setIntersectionLimit(), getIntersectionLimit(), and reachedLimit().
![]() | Generated at Mon Oct 3 2011 12:39:50 for the OpenSceneGraph by doxygen 1.7.5. |