Irrlicht 3D Engine
irr::core::line3d< T > Class Template Reference

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

#include <line3d.h>

Public Member Functions

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

Public Attributes

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

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

◆ line3d() [1/3]

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.

◆ line3d() [2/3]

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.

◆ line3d() [3/3]

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

◆ getClosestPoint()

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
pointThe 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.

Referenced by irr::core::triangle3d< T >::closestPointOnTriangle().

◆ getIntersectionWithSphere()

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

Check if the line intersects with a sphere.

Parameters
soriginOrigin of the sphere.
sradiusRadius of the sphere.
outdistanceThe 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.

◆ getLength()

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().

◆ getLengthSQ()

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.

◆ getMiddle()

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().

◆ getVector()

template<class T>
vector3d<T> irr::core::line3d< T >::getVector ( ) const
inline

◆ isPointBetweenStartAndEnd()

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
pointThe 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.

◆ operator!=()

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.

◆ operator+()

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.

◆ operator+=()

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.

◆ operator-()

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.

◆ operator-=()

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.

◆ operator==()

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.

◆ setLine() [1/3]

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.

◆ setLine() [2/3]

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.

◆ setLine() [3/3]

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.

Member Data Documentation

◆ end

◆ start


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