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... | |
T | getLength () const |
Get length of line. More... | |
T | 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... | |
3D line between two points with intersection methods.
|
inline |
|
inline |
|
inline |
|
inline |
Get the closest point on this line to a point.
point | The point to compare to. |
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().
|
inline |
Check if the line intersects with a sphere.
sorigin | Origin of the sphere. |
sradius | Radius of the sphere. |
outdistance | The distance to the first intersection point. |
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.
|
inline |
Get 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().
|
inline |
Get squared length of line.
Definition at line 60 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Get middle 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().
|
inline |
Get 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().
|
inline |
Check if the given point is between start and end of the line.
Assumes that the point is already somewhere on the line.
point | The point to test. |
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.
|
inline |
Definition at line 40 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Definition at line 32 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Definition at line 33 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Definition at line 35 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Definition at line 36 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
inline |
Definition at line 38 of file line3d.h.
References irr::core::line3d< T >::end, and irr::core::line3d< T >::start.
|
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.
|
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.
|
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.
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().
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().