|
CeresEngine 0.2.0
A game development framework
|
A plane represented by a normal and a distance. More...
#include <CeresEngine/Math/Geometry.hpp>
Public Types | |
| enum | Side : UInt32 { None = 0U , Positive = (1U << 0U) , Negative = (1U << 1U) , Both = Positive | Negative } |
| The "positive side" of the plane is the half space to which the plane normal points. More... | |
Public Member Functions | |
| TPlane ()=default | |
| TPlane (const TPlane &)=default | |
| TPlane (const TVector3< T > &normal, T d) | |
| TPlane (const TVector4< T > &data) | |
| TPlane (T a, T b, T c, T d) | |
| TPlane (const TVector3< T > &normal, const TVector3< T > &point) | |
| TPlane (const TVector3< T > &point0, const TVector3< T > &point1, const TVector3< T > &point2) | |
| TPlane & | operator= (const TPlane &rhs)=default |
| void | transform (const TMatrix4< T > &matrix) |
| Transforms the plane by the given matrix. | |
| void | transform (const TTransform< T > &aTransform) |
| Transforms the plane by the given matrix. | |
| Side | getSide (const TVector3< T > &point, T epsilon=0.0) const |
| Returns the side of the plane where the point is located on. | |
| Side | getSide (const TAABox< T > &box) const |
| Returns the side where the alignedBox is. | |
| Side | getSide (const TSphere< T > &sphere) const |
| Returns the side where the sphere is. | |
| T | getDistance (const TVector3< T > &point) const |
| Returns a distance from point to plane. | |
| TVector3< T > | projectVector (const TVector3< T > &v) const |
| Project a vector onto the plane. | |
| T | normalize () |
| Normalizes the plane's normal and the length scale of d. | |
| bool | intersects (const TAABox< T > &box) const |
| Box/plane intersection. | |
| bool | intersects (const TSphere< T > &sphere) const |
| Sphere/plane intersection. | |
| TRayIntersection< T > | intersects (const TRay< T > &ray) const |
| Ray/plane intersection, returns boolean result and distance to intersection point. | |
| bool | operator== (const TPlane &rhs) const |
| bool | operator!= (const TPlane &rhs) const |
Public Attributes | |
| TVector3< T > | normal = TVector3<T>(T(0.0)) |
| T | distance = T(0.0) |
A plane represented by a normal and a distance.
| enum Math::TPlane::Side : UInt32 |
|
default |
|
default |
|
inline |
|
inlineexplicit |
|
inline |
|
inline |
| Math::TPlane< T >::TPlane | ( | const TVector3< T > & | point0, |
| const TVector3< T > & | point1, | ||
| const TVector3< T > & | point2 | ||
| ) |
| T Math::TPlane< T >::getDistance | ( | const TVector3< T > & | point | ) | const |
Returns a distance from point to plane.
| Side Math::TPlane< T >::getSide | ( | const TAABox< T > & | box | ) | const |
Returns the side where the alignedBox is.
The flag both indicates an intersecting box. One corner ON the plane is sufficient to consider the box and the plane intersecting.
| Side Math::TPlane< T >::getSide | ( | const TSphere< T > & | sphere | ) | const |
Returns the side where the sphere is.
The flag BOTH_SIDE indicates an intersecting sphere.
| Side Math::TPlane< T >::getSide | ( | const TVector3< T > & | point, |
| T | epsilon = 0.0 |
||
| ) | const |
Returns the side of the plane where the point is located on.
| bool Math::TPlane< T >::intersects | ( | const TAABox< T > & | box | ) | const |
Box/plane intersection.
| TRayIntersection< T > Math::TPlane< T >::intersects | ( | const TRay< T > & | ray | ) | const |
Ray/plane intersection, returns boolean result and distance to intersection point.
| bool Math::TPlane< T >::intersects | ( | const TSphere< T > & | sphere | ) | const |
Sphere/plane intersection.
| T Math::TPlane< T >::normalize | ( | ) |
Normalizes the plane's normal and the length scale of d.
|
inline |
|
default |
|
inline |
| TVector3< T > Math::TPlane< T >::projectVector | ( | const TVector3< T > & | v | ) | const |
Project a vector onto the plane.
| void Math::TPlane< T >::transform | ( | const TMatrix4< T > & | matrix | ) |
Transforms the plane by the given matrix.
|
inline |
Transforms the plane by the given matrix.
| T Math::TPlane< T >::distance = T(0.0) |
| TVector3<T> Math::TPlane< T >::normal = TVector3<T>(T(0.0)) |