osgUtil::Intersector Class Referenceabstract

`#include <IntersectionVisitor>`

Inheritance diagram for osgUtil::Intersector:

## 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 }

## 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)
PrecisionHint | getPrecisionHint () const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
virtual void | setThreadSafeRefUnref (bool)
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

## 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 ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Detailed Description

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.

## Member Enumeration Documentation

## CoordinateFrame

enum osgUtil::Intersector::CoordinateFrame

Enumerator
WINDOW |
PROJECTION |
VIEW |
MODEL |

## IntersectionLimit

enum osgUtil::Intersector::IntersectionLimit

Enumerator
NO_LIMIT |
LIMIT_ONE_PER_DRAWABLE |
LIMIT_ONE |
LIMIT_NEAREST |

## PrecisionHint

enum osgUtil::Intersector::PrecisionHint

Hint to precision used in the internal intersections calculations.

Enumerator
USE_DOUBLE_CALCULATIONS |
USE_FLOAT_CALCULATIONS |

## Constructor & Destructor Documentation

## Intersector()

osgUtil::Intersector::Intersector | ( | CoordinateFrame | cf = MODEL,
|  | IntersectionLimit | il = NO_LIMIT )

inline

References _coordinateFrame, _disabledCount, _intersectionLimit, _precisionHint, MODEL, NO_LIMIT, and USE_DOUBLE_CALCULATIONS.

Referenced by osgUtil::IntersectorGroup::addIntersector(), clone(), osgUtil::IntersectorGroup::clone(), osgUtil::LineSegmentIntersector::clone(), osgUtil::PlaneIntersector::clone(), osgUtil::PolytopeIntersector::clone(), and osgUtil::RayIntersector::clone().

## Member Function Documentation

## clone()

virtual Intersector * osgUtil::Intersector::clone | ( | osgUtil::IntersectionVisitor & | iv | ) |

pure virtual

Implemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

References Intersector().

## containsIntersections()

virtual bool osgUtil::Intersector::containsIntersections | ( |  | ) |

pure virtual

Implemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

Referenced by reachedLimit().

## decrementDisabledCount()

void osgUtil::Intersector::decrementDisabledCount | ( |  | ) |

inline

References _disabledCount.

## disabled()

bool osgUtil::Intersector::disabled | ( |  | ) | const

inline

References _disabledCount.

## enter()

virtual bool osgUtil::Intersector::enter | ( | const osg::Node & | node | ) |

pure virtual

Implemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

## getCoordinateFrame()

CoordinateFrame osgUtil::Intersector::getCoordinateFrame | ( |  | ) | const

inline

References _coordinateFrame.

## getIntersectionLimit()

IntersectionLimit osgUtil::Intersector::getIntersectionLimit | ( |  | ) | const

inline

References _intersectionLimit.

## getPrecisionHint()

PrecisionHint osgUtil::Intersector::getPrecisionHint | ( |  | ) | const

inline

Get the hint to what precision should be used in the intersections calculations.

References _precisionHint.

## incrementDisabledCount()

void osgUtil::Intersector::incrementDisabledCount | ( |  | ) |

inline

References _disabledCount.

## intersect()

virtual void osgUtil::Intersector::intersect | ( | osgUtil::IntersectionVisitor & | iv,
|  | osg::Drawable * | drawable )

pure virtual

Implemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

## leave()

virtual void osgUtil::Intersector::leave | ( |  | ) |

pure virtual

Implemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

## reachedLimit()

bool osgUtil::Intersector::reachedLimit | ( |  | ) |

inline

References _intersectionLimit, containsIntersections(), and LIMIT_ONE.

## reset()

virtual void osgUtil::Intersector::reset | ( |  | ) |

inline virtual

Reimplemented in osgUtil::IntersectorGroup, osgUtil::LineSegmentIntersector, osgUtil::PlaneIntersector, osgUtil::PolytopeIntersector, and osgUtil::RayIntersector.

References _disabledCount.

## setCoordinateFrame()

void osgUtil::Intersector::setCoordinateFrame | ( | CoordinateFrame | cf | ) |

inline

References _coordinateFrame.

## setIntersectionLimit()

void osgUtil::Intersector::setIntersectionLimit | ( | IntersectionLimit | limit | ) |

inline

References _intersectionLimit.

## setPrecisionHint()

void osgUtil::Intersector::setPrecisionHint | ( | PrecisionHint | hint | ) |

inline

Set the hint to what precision to use in the intersections calculations.

References _precisionHint.

## Member Data Documentation

## _coordinateFrame

CoordinateFrame osgUtil::Intersector::_coordinateFrame

protected

Referenced by getCoordinateFrame(), Intersector(), and setCoordinateFrame().

## _disabledCount

unsigned int osgUtil::Intersector::_disabledCount

protected

Referenced by decrementDisabledCount(), disabled(), incrementDisabledCount(), Intersector(), and reset().

## _intersectionLimit

IntersectionLimit osgUtil::Intersector::_intersectionLimit

protected

Referenced by getIntersectionLimit(), Intersector(), reachedLimit(), and setIntersectionLimit().

## _precisionHint

PrecisionHint osgUtil::Intersector::_precisionHint

protected

Referenced by getPrecisionHint(), Intersector(), and setPrecisionHint().

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

- IntersectionVisitor