Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

irr::core::line3d< T > Class Template Reference

3D line between two points with intersection methods. More...

#include <line3d.h>

List of all members.

Public Member Functions

vector3d< T > getClosestPoint (const vector3d< T > &point) const
 Get the closest point on this line to a point.
bool getIntersectionWithSphere (vector3d< T > sorigin, T sradius, f64 &outdistance) const
 Check if the line intersects with a shpere.
getLength () const
 Get length of line.
getLengthSQ () const
 Get squared length of line.
vector3d< T > getMiddle () const
 Get middle of line.
vector3d< T > getVector () const
 Get vector of line.
bool isPointBetweenStartAndEnd (const vector3d< T > &point) const
 Check if the given point is between start and end of the line.
 line3d (const vector3d< T > &start, const vector3d< T > &end)
 Constructor with two points as vectors.
 line3d (T xa, T ya, T za, T xb, T yb, T zb)
 Constructor with two points.
 line3d ()
 Default constructor.
bool operator!= (const line3d< T > &other) const
line3d< T > operator+ (const vector3d< T > &point) const
line3d< T > & operator+= (const vector3d< T > &point)
line3d< T > operator- (const vector3d< T > &point) const
line3d< T > & operator-= (const vector3d< T > &point)
bool operator== (const line3d< T > &other) const
void setLine (const line3d< T > &line)
 Set this line to new line given as parameter.
void setLine (const vector3d< T > &nstart, const vector3d< T > &nend)
 Set this line to a new line going through the two points.
void setLine (const T &xa, const T &ya, const T &za, const T &xb, const T &yb, const T &zb)
 Set this line to a new line going through the two points.

Public Attributes

vector3d< T > end
 End point of line.
vector3d< T > start
 Start point of line.

Detailed Description

template<class T>
class irr::core::line3d< T >

3D line between two points with intersection methods.

Definition at line 18 of file line3d.h.


Constructor & Destructor Documentation

template<class T>
irr::core::line3d< T >::line3d (  )  [inline]

Default constructor.

line from (0,0,0) to (1,1,1)

Definition at line 24 of file line3d.h.

template<class T>
irr::core::line3d< T >::line3d ( xa,
ya,
za,
xb,
yb,
zb 
) [inline]

Constructor with two points.

Definition at line 26 of file line3d.h.

template<class T>
irr::core::line3d< T >::line3d ( const vector3d< T > &  start,
const vector3d< T > &  end 
) [inline]

Constructor with two points as vectors.

Definition at line 28 of file line3d.h.


Member Function Documentation

template<class T>
vector3d<T> irr::core::line3d< T >::getClosestPoint ( const vector3d< T > &  point  )  const [inline]

Get the closest point on this line to a point.

Parameters:
point The point to compare to.
Returns:
The nearest point which is part of the line.

Definition at line 89 of file line3d.h.

References irr::core::vector3d< T >::dotProduct(), irr::core::line3d< T >::end, irr::core::vector3d< T >::getLength(), and irr::core::line3d< T >::start.

template<class T>
bool irr::core::line3d< T >::getIntersectionWithSphere ( vector3d< T >  sorigin,
sradius,
f64 outdistance 
) const [inline]

Check if the line intersects with a shpere.

Parameters:
sorigin,: Origin of the shpere.
sradius,: Radius of the sphere.
outdistance,: The distance to the first intersection point.
Returns:
True if there is an intersection. If there is one, the distance to the first intersection point is stored in outdistance.

Definition at line 113 of file line3d.h.

References irr::core::vector3d< T >::dotProduct(), irr::core::vector3d< T >::getLength(), irr::core::line3d< T >::getVector(), irr::core::squareroot(), and irr::core::line3d< T >::start.

template<class T>
T irr::core::line3d< T >::getLength (  )  const [inline]

Get length of line.

Returns:
Length of line.

Definition at line 56 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

Referenced by irr::core::aabbox3d< f32 >::intersectsWithLine().

template<class T>
T irr::core::line3d< T >::getLengthSQ (  )  const [inline]

Get squared length of line.

Returns:
Squared length of line.

Definition at line 60 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
vector3d<T> irr::core::line3d< T >::getMiddle (  )  const [inline]

Get middle of line.

Returns:
Center of line.

Definition at line 64 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

Referenced by irr::core::aabbox3d< f32 >::intersectsWithLine().

template<class T>
vector3d<T> irr::core::line3d< T >::getVector (  )  const [inline]
template<class T>
bool irr::core::line3d< T >::isPointBetweenStartAndEnd ( const vector3d< T > &  point  )  const [inline]

Check if the given point is between start and end of the line.

Assumes that the point is already somewhere on the line.

Parameters:
point The point to test.
Returns:
True if point is on the line between start and end, else false.

Definition at line 81 of file line3d.h.

References irr::core::line3d< T >::end, irr::core::vector3d< T >::isBetweenPoints(), and irr::core::line3d< T >::start.

template<class T>
bool irr::core::line3d< T >::operator!= ( const line3d< T > &  other  )  const [inline]

Definition at line 40 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
line3d<T> irr::core::line3d< T >::operator+ ( const vector3d< T > &  point  )  const [inline]

Definition at line 32 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
line3d<T>& irr::core::line3d< T >::operator+= ( const vector3d< T > &  point  )  [inline]

Definition at line 33 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
line3d<T> irr::core::line3d< T >::operator- ( const vector3d< T > &  point  )  const [inline]

Definition at line 35 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
line3d<T>& irr::core::line3d< T >::operator-= ( const vector3d< T > &  point  )  [inline]

Definition at line 36 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
bool irr::core::line3d< T >::operator== ( const line3d< T > &  other  )  const [inline]

Definition at line 38 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
void irr::core::line3d< T >::setLine ( const line3d< T > &  line  )  [inline]

Set this line to new line given as parameter.

Definition at line 51 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
void irr::core::line3d< T >::setLine ( const vector3d< T > &  nstart,
const vector3d< T > &  nend 
) [inline]

Set this line to a new line going through the two points.

Definition at line 48 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.

template<class T>
void irr::core::line3d< T >::setLine ( const T &  xa,
const T &  ya,
const T &  za,
const T &  xb,
const T &  yb,
const T &  zb 
) [inline]

Set this line to a new line going through the two points.

Definition at line 45 of file line3d.h.

References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.


Member Data Documentation

template<class T>
vector3d<T> irr::core::line3d< T >::end
template<class T>
vector3d<T> irr::core::line3d< T >::start

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

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:42:03 2010 by Doxygen (1.6.2)