openscenegraph
osgUtil::Intersector Class Referenceabstract

#include <IntersectionVisitor>

Inheritance diagram for osgUtil::Intersector:
osg::Referenced osgUtil::IntersectorGroup osgUtil::LineSegmentIntersector osgUtil::PlaneIntersector osgUtil::PolytopeIntersector osgUtil::RayIntersector

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 Intersectorclone (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 &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool)
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 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::MutexgetGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()
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

Enumerator
WINDOW 
PROJECTION 
VIEW 
MODEL 

◆ IntersectionLimit

Enumerator
NO_LIMIT 
LIMIT_ONE_PER_DRAWABLE 
LIMIT_ONE 
LIMIT_NEAREST 

◆ PrecisionHint

Hint to precision used in the internal intersections calculations.

Enumerator
USE_DOUBLE_CALCULATIONS 
USE_FLOAT_CALCULATIONS 

Constructor & Destructor Documentation

◆ Intersector()

Member Function Documentation

◆ clone()

◆ containsIntersections()

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

◆ 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

◆ 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()

◆ leave()

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

◆ reachedLimit()

bool osgUtil::Intersector::reachedLimit ( )
inline

◆ reset()

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

◆ 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

◆ _disabledCount

unsigned int osgUtil::Intersector::_disabledCount
protected

◆ _intersectionLimit

IntersectionLimit osgUtil::Intersector::_intersectionLimit
protected

◆ _precisionHint

PrecisionHint osgUtil::Intersector::_precisionHint
protected

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