![]() |
OpenSceneGraph
|
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 } |
| enum | PrecisionHint { USE_DOUBLE_CALCULATIONS, USE_FLOAT_CALCULATIONS } |
| Hint to precision used in the internal intersections calculations. More... | |
Public Member Functions | |
| Intersector (CoordinateFrame cf=MODEL, IntersectionLimit il=NO_LIMIT) | |
| 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 () |
| void | setPrecisionHint (PrecisionHint hint) |
| Set the hint to what precision to use in the intersections calculations. More... | |
| PrecisionHint | getPrecisionHint () const |
| Get the hint to what precision should be used in the intersections calculations. More... | |
Public Member Functions inherited from osg::Referenced | |
| Referenced () | |
| Referenced (bool threadSafeRefUnref) | |
| Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead. More... | |
| Referenced (const Referenced &) | |
| Referenced & | operator= (const Referenced &) |
| virtual void | setThreadSafeRefUnref (bool) |
| Deprecated, Referenced is always theadsafe so there method now has no effect and does not need to be called. More... | |
| bool | getThreadSafeRefUnref () const |
| Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
| OpenThreads::Mutex * | getRefMutex () const |
| Get the mutex used to ensure thread safety of ref()/unref(). More... | |
| int | ref () const |
| Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
| int | unref () const |
| Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
| int | unref_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
| int | referenceCount () const |
| Return the number of pointers currently referencing this object. More... | |
| ObserverSet * | getObserverSet () const |
| Get the ObserverSet if one is attached, otherwise return NULL. More... | |
| ObserverSet * | getOrCreateObserverSet () const |
| Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
| void | addObserver (Observer *observer) const |
| Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
| void | removeObserver (Observer *observer) const |
| Remove Observer that is observing this object. More... | |
Protected Attributes | |
| CoordinateFrame | _coordinateFrame |
| IntersectionLimit | _intersectionLimit |
| unsigned int | _disabledCount |
| PrecisionHint | _precisionHint |
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::Mutex * | getGlobalReferencedMutex () |
| Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
| static DeleteHandler * | getDeleteHandler () |
| Get a DeleteHandler. More... | |
Protected Member Functions inherited from osg::Referenced | |
| virtual | ~Referenced () |
| void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
| void | deleteUsingDeleteHandler () const |
Pure virtual base class for implementing custom intersection technique.
To implement a specific intersection technique on must override all the pure virtual methods, concrete examples of how to do this can be seen in the LineSegmentIntersector.
|
inline |
|
pure virtual |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by getIntersectionLimit(), and osgUtil::IntersectorGroup::getIntersectors().
|
pure virtual |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by osgUtil::IntersectorGroup::getIntersectors(), reachedLimit(), and reset().
|
inline |
References _disabledCount.
|
inline |
References _disabledCount.
|
pure virtual |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by getIntersectionLimit(), and osgUtil::IntersectorGroup::getIntersectors().
|
inline |
References _coordinateFrame.
|
inline |
References _intersectionLimit, clone(), enter(), intersect(), and leave().
|
inline |
Get the hint to what precision should be used in the intersections calculations.
References _precisionHint.
|
inline |
References _disabledCount.
|
pure virtual |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by getIntersectionLimit(), and osgUtil::IntersectorGroup::getIntersectors().
|
pure virtual |
Implemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
Referenced by getIntersectionLimit(), and osgUtil::IntersectorGroup::getIntersectors().
|
inline |
References _intersectionLimit, containsIntersections(), and LIMIT_ONE.
|
inlinevirtual |
Reimplemented in osgUtil::IntersectorGroup, osgUtil::PolytopeIntersector, osgUtil::RayIntersector, osgUtil::LineSegmentIntersector, and osgUtil::PlaneIntersector.
References _disabledCount, and containsIntersections().
Referenced by osgUtil::IntersectionVisitor::asIntersectionVisitor(), and osgUtil::IntersectorGroup::getIntersectors().
|
inline |
References _coordinateFrame.
|
inline |
References _intersectionLimit.
|
inline |
Set the hint to what precision to use in the intersections calculations.
References _precisionHint.
|
protected |
Referenced by getCoordinateFrame(), and setCoordinateFrame().
|
protected |
Referenced by decrementDisabledCount(), disabled(), incrementDisabledCount(), and reset().
|
protected |
Referenced by getIntersectionLimit(), reachedLimit(), and setIntersectionLimit().
|
protected |
Referenced by getPrecisionHint(), and setPrecisionHint().
1.8.13