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

| Irrlicht 3D Engine |

Public Member Functions | Public Attributes
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

- line3d ()
    Default constructor.
- line3d (T xa, T ya, T za, T xb, T yb, T zb)
    Constructor with two points.
- line3d (const vector3d< T > &start, const vector3d< T > &end)
    Constructor with two points as vectors.
- 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 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.
- void setLine (const line3d< T > &line)
    Set this line to new line given as parameter.

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

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

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

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::triangle3d< T >::getIntersectionWithLimitedLine(), 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]`

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

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

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::line3d< T >::getClosestPoint(), irr::core::triangle3d< T >::getIntersectionWithLimitedLine(), 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::scene::SViewFrustum::clipLine(), irr::core::line3d< T >::getClosestPoint(), irr::core::triangle3d< T >::getIntersectionWithLimitedLine(), 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:

- line3d.h