OpenSceneGraph
3.5.1
|
Concrete class for implementing line intersections with the scene graph. More...
Classes | |
struct | Intersection |
Public Types | |
typedef std::multiset< 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 | |
LineSegmentIntersector (const osg::Vec3d &start, const osg::Vec3d &end) | |
Construct a LineSegmentIntersector that runs between the specified start and end points in MODEL coordinates. More... | |
LineSegmentIntersector (CoordinateFrame cf, const osg::Vec3d &start, const osg::Vec3d &end, LineSegmentIntersector *parent=NULL, osgUtil::Intersector::IntersectionLimit intersectionLimit=osgUtil::Intersector::NO_LIMIT) | |
Construct a LineSegmentIntersector that runs between the specified start and end points in the specified coordinate frame. More... | |
LineSegmentIntersector (CoordinateFrame cf, double x, double y) | |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates creates a start value of (x,y,0) and end value of (x,y,1). More... | |
void | insertIntersection (const Intersection &intersection) |
Intersections & | getIntersections () |
Intersection | getFirstIntersection () |
void | setStart (const osg::Vec3d &start) |
const osg::Vec3d & | getStart () const |
void | setEnd (const osg::Vec3d &end) |
const osg::Vec3d & | getEnd () 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 | intersect (osgUtil::IntersectionVisitor &iv, osg::Drawable *drawable, const osg::Vec3d &s, const osg::Vec3d &e) |
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. More... | |
PrecisionHint | getPrecisionHint () const |
Get the hint to what precision should be used in the intersections calculations. More... | |
Public Member Functions inherited from osg::Referenced | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. More... | |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). More... | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. More... | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. More... | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. More... | |
Static Public Member Functions | |
static osg::Matrix | getTransformation (osgUtil::IntersectionVisitor &iv, CoordinateFrame cf) |
Compute the matrix that transforms the local coordinate system of parent Intersector (usually the current intersector) into the child coordinate system of the child Intersector. More... | |
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. More... | |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
Set whether reference counting should use a mutex for thread safe reference counting. More... | |
static bool | getThreadSafeReferenceCounting () |
Get whether reference counting is active. More... | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. More... | |
Protected Member Functions | |
bool | intersects (const osg::BoundingSphere &bs) |
bool | intersectAndClip (osg::Vec3d &s, osg::Vec3d &e, const osg::BoundingBox &bb) |
Protected Member Functions inherited from osg::Referenced | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
LineSegmentIntersector * | _parent |
osg::Vec3d | _start |
osg::Vec3d | _end |
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 |
Concrete class for implementing line intersections with the scene graph.
To be used in conjunction with IntersectionVisitor.
typedef std::multiset<Intersection> osgUtil::LineSegmentIntersector::Intersections |
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | const osg::Vec3d & | start, |
const osg::Vec3d & | end | ||
) |
Construct a LineSegmentIntersector that runs between the specified start and end points in MODEL coordinates.
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | CoordinateFrame | cf, |
const osg::Vec3d & | start, | ||
const osg::Vec3d & | end, | ||
LineSegmentIntersector * | parent = NULL , |
||
osgUtil::Intersector::IntersectionLimit | intersectionLimit = osgUtil::Intersector::NO_LIMIT |
||
) |
Construct a LineSegmentIntersector that runs between the specified start and end points in the specified coordinate frame.
osgUtil::LineSegmentIntersector::LineSegmentIntersector | ( | CoordinateFrame | cf, |
double | x, | ||
double | y | ||
) |
Convenience constructor for supporting picking in WINDOW, or PROJECTION coordinates In WINDOW coordinates creates a start value of (x,y,0) and end value of (x,y,1).
In PROJECTION coordinates (clip space cube) creates a start value of (x,y,-1) and end value of (x,y,1). In VIEW and MODEL coordinates creates a start value of (x,y,0) and end value of (x,y,1).
|
virtual |
Implements osgUtil::Intersector.
|
inlinevirtual |
Implements osgUtil::Intersector.
|
virtual |
Implements osgUtil::Intersector.
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Compute the matrix that transforms the local coordinate system of parent Intersector (usually the current intersector) into the child coordinate system of the child Intersector.
cf parameter indicates the coordinate frame of parent Intersector.
|
inline |
|
virtual |
Implements osgUtil::Intersector.
|
virtual |
|
protected |
|
protected |
|
virtual |
Implements osgUtil::Intersector.
|
virtual |
Reimplemented from osgUtil::Intersector.
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
Generated at Wed Nov 11 2015 22:15:15 for the OpenSceneGraph by doxygen 1.8.10. |