OpenSceneGraph 3.6.5
|
Concrete class for implementing polytope intersections with the scene graph. More...
#include <PolytopeIntersector>
Classes | |
struct | Intersection |
Public Types | |
enum | { POINT_PRIMITIVES = (1<<0) , LINE_PRIMITIVES = (1<<1) , TRIANGLE_PRIMITIVES = (1<<2) , ALL_PRIMITIVES = ( POINT_PRIMITIVES | LINE_PRIMITIVES | TRIANGLE_PRIMITIVES ) } |
dimension enum to specify primitive types to check. More... | |
typedef osg::Plane::Vec3_type | Vec3_type |
typedef std::set< Intersection > | Intersections |
Public Types inherited from osgUtil::Intersector | |
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 | |
PolytopeIntersector (const osg::Polytope &polytope) | |
Construct a PolytopeIntersector using specified polytope in MODEL coordinates. | |
PolytopeIntersector (CoordinateFrame cf, const osg::Polytope &polytope) | |
Construct a PolytopeIntersector using specified polytope in specified coordinate frame. | |
PolytopeIntersector (CoordinateFrame cf, double xMin, double yMin, double xMax, double yMax) | |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates (clip space cube) creates a five sided polytope box that has a front face at 0.0 and sides around box xMin, yMin, xMax, yMax. | |
osg::Polytope & | getPolytope () |
Get the Polytope used by the intersector. | |
const osg::Polytope & | getPolytope () const |
Get the const Polytope used by the intersector. | |
void | insertIntersection (const Intersection &intersection) |
Intersections & | getIntersections () |
Intersection | getFirstIntersection () |
void | setPrimitiveMask (unsigned int mask) |
Set which Primitives should be tested for intersections. | |
unsigned int | getPrimitiveMask () const |
Get which Primitives should be tested for intersections. | |
void | setReferencePlane (const osg::Plane &plane) |
set the plane used to sort the intersections. | |
const osg::Plane & | getReferencePlane () const |
virtual Intersector * | clone (osgUtil::IntersectionVisitor &iv) |
virtual bool | enter (const osg::Node &node) |
virtual void | leave () |
virtual void | intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable) |
virtual void | reset () |
virtual bool | containsIntersections () |
Public Member Functions inherited from osgUtil::Intersector | |
Intersector (CoordinateFrame cf=MODEL, IntersectionLimit il=NO_LIMIT) | |
void | setCoordinateFrame (CoordinateFrame cf) |
CoordinateFrame | getCoordinateFrame () const |
void | setIntersectionLimit (IntersectionLimit limit) |
IntersectionLimit | getIntersectionLimit () const |
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. | |
PrecisionHint | getPrecisionHint () const |
Get the hint to what precision should be used in the intersections calculations. | |
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. | |
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. | |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. |
Protected Attributes | |
PolytopeIntersector * | _parent |
osg::Polytope | _polytope |
unsigned int | _primitiveMask |
mask which dimensions should be checked | |
osg::Plane | _referencePlane |
plane to use for sorting intersections | |
Intersections | _intersections |
Protected Attributes inherited from osgUtil::Intersector | |
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. | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. | |
Protected Member Functions inherited from osg::Referenced | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Concrete class for implementing polytope intersections with the scene graph.
To be used in conjunction with IntersectionVisitor.
typedef std::set<Intersection> osgUtil::PolytopeIntersector::Intersections |
anonymous enum |
osgUtil::PolytopeIntersector::PolytopeIntersector | ( | const osg::Polytope & | polytope | ) |
Construct a PolytopeIntersector using specified polytope in MODEL coordinates.
osgUtil::PolytopeIntersector::PolytopeIntersector | ( | CoordinateFrame | cf, |
const osg::Polytope & | polytope ) |
Construct a PolytopeIntersector using specified polytope in specified coordinate frame.
osgUtil::PolytopeIntersector::PolytopeIntersector | ( | CoordinateFrame | cf, |
double | xMin, | ||
double | yMin, | ||
double | xMax, | ||
double | yMax ) |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates (clip space cube) creates a five sided polytope box that has a front face at 0.0 and sides around box xMin, yMin, xMax, yMax.
In PROJECTION coordinates (clip space cube) creates a five sided polytope box that has a front face at -1 and sides around box xMin, yMin, xMax, yMax. In VIEW and MODEL coordinates (clip space cube) creates a five sided polytope box that has a front face at 0.0 and sides around box xMin, yMin, xMax, yMax.
|
virtual |
Implements osgUtil::Intersector.
References osgUtil::Intersector::Intersector().
|
inlinevirtual |
Implements osgUtil::Intersector.
References getIntersections().
|
virtual |
Implements osgUtil::Intersector.
|
inline |
References getIntersections().
|
inline |
References _intersections, and _parent.
Referenced by containsIntersections(), getFirstIntersection(), and insertIntersection().
|
inline |
Get the Polytope used by the intersector.
References _polytope.
|
inline |
Get the const Polytope used by the intersector.
References _polytope.
|
inline |
Get which Primitives should be tested for intersections.
References _primitiveMask.
|
inline |
References _referencePlane.
|
inline |
References getIntersections().
|
virtual |
Implements osgUtil::Intersector.
|
virtual |
Implements osgUtil::Intersector.
|
virtual |
Reimplemented from osgUtil::Intersector.
|
inline |
Set which Primitives should be tested for intersections.
References _primitiveMask.
|
inline |
set the plane used to sort the intersections.
The intersections are sorted by the distance of the localIntersectionPoint and the reference plane. The default for the reference plane is the last plane of the polytope.
References _referencePlane.
|
protected |
Referenced by getIntersections().
|
protected |
Referenced by getIntersections().
|
protected |
Referenced by getPolytope(), and getPolytope().
|
protected |
mask which dimensions should be checked
Referenced by getPrimitiveMask(), and setPrimitiveMask().
|
protected |
plane to use for sorting intersections
Referenced by getReferencePlane(), and setReferencePlane().
![]() | Generated at Sun Jul 27 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0. |