openscenegraph
Public Types | Public Member Functions | Protected Attributes | List of all members
osgUtil::Intersector Class Referenceabstract
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: