OpenSceneGraph  3.4.0
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
osg::LineSegment Class Reference

LineSegment class for representing a line segment. More...

Inheritance diagram for osg::LineSegment:
Inheritance graph
[legend]

List of all members.

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)
LineSegmentoperator= (const LineSegment &seg)
void set (const vec_type &s, const vec_type &e)
vec_typestart ()
const vec_typestart () const
vec_typeend ()
const vec_typeend () const
bool valid () const
bool intersect (const BoundingBox &bb) const
 return true if segment intersects BoundingBox.
bool 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 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 intersect (const BoundingSphere &bs) const
 return true if segment intersects BoundingSphere.
bool 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 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.
bool 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 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.
void mult (const LineSegment &seg, const Matrix &m)
 post multiply a segment by matrix.
void mult (const Matrix &m, const LineSegment &seg)
 pre multiply a segment by matrix.

Protected Member Functions

virtual ~LineSegment ()

Static Protected Member Functions

static bool intersectAndClip (vec_type &s, vec_type &e, const BoundingBox &bb)

Protected Attributes

vec_type _s
vec_type _e

Detailed Description

LineSegment class for representing a line segment.


Member Typedef Documentation


Constructor & Destructor Documentation

osg::LineSegment::LineSegment ( const LineSegment seg) [inline]
osg::LineSegment::LineSegment ( const vec_type s,
const vec_type e 
) [inline]
virtual osg::LineSegment::~LineSegment ( ) [protected, virtual]

Member Function Documentation

const vec_type& osg::LineSegment::end ( ) const [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.

static bool osg::LineSegment::intersectAndClip ( vec_type s,
vec_type e,
const BoundingBox bb 
) [static, protected]
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.

void osg::LineSegment::mult ( const LineSegment seg,
const Matrix m 
) [inline]

post multiply a segment by matrix.

References _e, and _s.

void osg::LineSegment::mult ( const Matrix m,
const LineSegment seg 
) [inline]

pre multiply a segment by matrix.

References _e, and _s.

LineSegment& osg::LineSegment::operator= ( const LineSegment seg) [inline]

References _e, and _s.

void osg::LineSegment::set ( const vec_type s,
const vec_type e 
) [inline]
const vec_type& osg::LineSegment::start ( ) const [inline]
bool osg::LineSegment::valid ( ) const [inline]

Member Data Documentation

Referenced by mult(), and operator=().

Referenced by mult(), and operator=().


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

osg logo
Generated at Tue Dec 8 2015 00:14:24 for the OpenSceneGraph by doxygen 1.7.6.1.