Loading...
Searching...
No Matches
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.
| 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.
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.
T | getLength () const
| Get length of line.
T | 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.
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 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.
void | setLine (const vector3d< T > &nstart, const vector3d< T > &nend)
| 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

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

Referenced by irr::core::line3d< f32 >::operator+(), and irr::core::line3d< f32 >::operator-().

## line3d() [2/3]

template<class T>

irr::core::line3d< T >::line3d | ( | T | xa,
|  | T | ya,
|  | T | za,
|  | T | xb,
|  | T | yb,
|  | T | 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

  point | The point to compare to.

Returns
  The nearest point which is part of the line.

Definition at line 89 of file line3d.h.

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

## getIntersectionWithSphere()

template<class T>

bool irr::core::line3d< T >::getIntersectionWithSphere | ( | vector3d< T > | sorigin,
|  | T | 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.

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

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.

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

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

## getVector()

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.

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

## 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

  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.

## operator!=()

template<class T>

bool irr::core::line3d< T >::operator!= | ( | const line3d< T > & | other | ) | const

inline

Definition at line 40 of file line3d.h.

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

## operator+=()

template<class T>

line3d< T > & irr::core::line3d< T >::operator+= | ( | const vector3d< T > & | point | ) |

inline

Definition at line 33 of file line3d.h.

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

## operator-=()

template<class T>

line3d< T > & irr::core::line3d< T >::operator-= | ( | const vector3d< T > & | point | ) |

inline

Definition at line 36 of file line3d.h.

## operator==()

template<class T>

bool irr::core::line3d< T >::operator== | ( | const line3d< T > & | other | ) | const

inline

Definition at line 38 of file line3d.h.

## setLine() [1/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.

## setLine() [2/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.

## setLine() [3/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.

## Member Data Documentation

## end

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::scene::SViewFrustum::clipLine(), irr::core::triangle3d< f32 >::getIntersectionWithLimitedLine(), irr::core::line3d< f32 >::operator!=(), irr::core::line3d< f32 >::operator==(), and irr::core::line3d< f32 >::setLine().

## start

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::scene::SViewFrustum::clipLine(), irr::core::triangle3d< f32 >::getIntersectionWithLimitedLine(), irr::core::line3d< f32 >::operator!=(), irr::core::line3d< f32 >::operator==(), and irr::core::line3d< f32 >::setLine().

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

- line3d.h

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0