openscenegraph
Public Types | Public Member Functions | Protected Attributes | List of all members
osgUtil::Intersector Class Reference
Inheritance diagram for osgUtil::Intersector:
osg::Referenced osgUtil::IntersectorGroup osgUtil::LineSegmentIntersector osgUtil::PlaneIntersector osgUtil::PolytopeIntersector

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 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 ()
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool threadSafe)
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
- 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 setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
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 virtue methods, concrete examples of how to do this can be seen in the LineSegmentIntersector.

Member Enumeration Documentation

Enumerator:
WINDOW 
PROJECTION 
VIEW 
MODEL 
Enumerator:
NO_LIMIT 
LIMIT_ONE_PER_DRAWABLE 
LIMIT_ONE 
LIMIT_NEAREST 

Constructor & Destructor Documentation

osgUtil::Intersector::Intersector ( CoordinateFrame  cf = MODEL)
inline

Member Function Documentation

virtual Intersector* osgUtil::Intersector::clone ( osgUtil::IntersectionVisitor iv)
pure virtual
virtual bool osgUtil::Intersector::containsIntersections ( )
pure virtual
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
virtual void osgUtil::Intersector::reset ( )
inlinevirtual
void osgUtil::Intersector::setCoordinateFrame ( CoordinateFrame  cf)
inline

References _coordinateFrame.

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

References _intersectionLimit.

Member Data Documentation

CoordinateFrame osgUtil::Intersector::_coordinateFrame
protected
unsigned int osgUtil::Intersector::_disabledCount
protected
IntersectionLimit osgUtil::Intersector::_intersectionLimit
protected

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