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

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
 Returns the closest point on this line to a point.
bool getIntersectionWithSphere (vector3d< T > sorigin, T sradius, f64 &outdistance) const
 Returns 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
 Returns 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]
 

Returns 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]
 

Returns 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:
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(), 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]
 

Get vector of line.

Returns:
vector of line.

Definition at line 71 of file line3d.h.

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

Referenced by irr::core::line3d< T >::getIntersectionWithSphere(), and irr::core::aabbox3d< f32 >::intersectsWithLine().

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

Returns 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
 

End point of line.

Definition at line 132 of file line3d.h.

Referenced by irr::core::line3d< T >::getClosestPoint(), irr::core::line3d< T >::getLength(), irr::core::line3d< T >::getLengthSQ(), irr::core::line3d< T >::getMiddle(), irr::core::line3d< T >::getVector(), irr::core::line3d< T >::isPointBetweenStartAndEnd(), irr::core::line3d< T >::operator!=(), irr::core::line3d< T >::operator+(), irr::core::line3d< T >::operator+=(), irr::core::line3d< T >::operator-(), irr::core::line3d< T >::operator-=(), irr::core::line3d< T >::operator==(), and irr::core::line3d< T >::setLine().

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

Start point of line.

Definition at line 130 of file line3d.h.

Referenced by irr::core::line3d< T >::getClosestPoint(), irr::core::line3d< T >::getIntersectionWithSphere(), irr::core::line3d< T >::getLength(), irr::core::line3d< T >::getLengthSQ(), irr::core::line3d< T >::getMiddle(), irr::core::line3d< T >::getVector(), irr::core::line3d< T >::isPointBetweenStartAndEnd(), irr::core::line3d< T >::operator!=(), irr::core::line3d< T >::operator+(), irr::core::line3d< T >::operator+=(), irr::core::line3d< T >::operator-(), irr::core::line3d< T >::operator-=(), irr::core::line3d< T >::operator==(), and irr::core::line3d< T >::setLine().


The documentation for this class was generated from the following file:
The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Jun 1 07:59:13 2008 by Doxygen (1.4.2)