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.
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.
| 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 | ( | 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< float >::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< float >::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< float >::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 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::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

| The Irrlicht Engine Documentation © 2003-2009 by Nikolaus Gebhardt. Generated on Sun Jan 10 09:24:09 2010 by Doxygen (1.5.6)