openscenegraph
|
Public Types | |
typedef Vec3d | vec_type |
typedef vec_type::value_type | value_type |
Public Member Functions | |
LineSegment () | |
LineSegment (const LineSegment &seg) | |
LineSegment (const vec_type &s, const vec_type &e) | |
LineSegment & | operator= (const LineSegment &seg) |
void | set (const vec_type &s, const vec_type &e) |
vec_type & | start () |
const vec_type & | start () const |
vec_type & | end () |
const vec_type & | end () const |
bool | valid () const |
bool | intersect (const BoundingBox &bb) const |
bool | intersectAndComputeRatios (const BoundingBox &bb, float &ratioFromStartToEnd1, float &ratioFromStartToEnd2) const |
bool | intersectAndComputeRatios (const BoundingBox &bb, double &ratioFromStartToEnd1, double &ratioFromStartToEnd2) const |
bool | intersect (const BoundingSphere &bs) const |
bool | intersectAndComputeRatios (const BoundingSphere &bs, float &ratioFromStartToEnd1, float &ratioFromStartToEnd2) const |
bool | intersectAndComputeRatios (const BoundingSphere &bs, double &ratioFromStartToEnd1, double &ratioFromStartToEnd2) const |
bool | intersect (const Vec3f &v1, const Vec3f &v2, const Vec3f &v3, float &ratioFromStartToEnd) |
bool | intersect (const Vec3d &v1, const Vec3d &v2, const Vec3d &v3, double &ratioFromStartToEnd) |
void | mult (const LineSegment &seg, const Matrix &m) |
void | mult (const Matrix &m, const LineSegment &seg) |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
Protected Member Functions | |
virtual | ~LineSegment () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Static Protected Member Functions | |
static bool | intersectAndClip (vec_type &s, vec_type &e, const BoundingBox &bb) |
Protected Attributes | |
vec_type | _s |
vec_type | _e |
![]() | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
LineSegment class for representing a line segment.
typedef Vec3d osg::LineSegment::vec_type |
|
inline |
|
inline |
|
protectedvirtual |
|
inline |
|
inline |
bool osg::LineSegment::intersect | ( | const BoundingBox & | bb | ) | const |
return true if segment intersects BoundingBox.
bool osg::LineSegment::intersect | ( | const BoundingSphere & | bs | ) | const |
return true if segment intersects BoundingSphere.
bool osg::LineSegment::intersect | ( | const Vec3f & | v1, |
const Vec3f & | v2, | ||
const Vec3f & | v3, | ||
float & | ratioFromStartToEnd | ||
) |
return true if segment intersects triangle and set float ratios where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
bool osg::LineSegment::intersect | ( | const Vec3d & | v1, |
const Vec3d & | v2, | ||
const Vec3d & | v3, | ||
double & | ratioFromStartToEnd | ||
) |
return true if segment intersects triangle and set double ratios where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
|
staticprotected |
bool osg::LineSegment::intersectAndComputeRatios | ( | const BoundingBox & | bb, |
float & | ratioFromStartToEnd1, | ||
float & | ratioFromStartToEnd2 | ||
) | const |
return true if segment intersects BoundingBox and set float ratios for the first and second intersections, where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
bool osg::LineSegment::intersectAndComputeRatios | ( | const BoundingBox & | bb, |
double & | ratioFromStartToEnd1, | ||
double & | ratioFromStartToEnd2 | ||
) | const |
return true if segment intersects BoundingBox and set double ratios for the first and second intersections, where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
bool osg::LineSegment::intersectAndComputeRatios | ( | const BoundingSphere & | bs, |
float & | ratioFromStartToEnd1, | ||
float & | ratioFromStartToEnd2 | ||
) | const |
return true if segment intersects BoundingSphere and set float ratios for the first and second intersections, where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
bool osg::LineSegment::intersectAndComputeRatios | ( | const BoundingSphere & | bs, |
double & | ratioFromStartToEnd1, | ||
double & | ratioFromStartToEnd2 | ||
) | const |
return true if segment intersects BoundingSphere and set double ratios for the first and second intersections, where the ratio is 0.0 at the segment start point, and 1.0 at the segment end point.
|
inline |
post multiply a segment by matrix.
|
inline |
pre multiply a segment by matrix.
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |