|
CeresEngine 0.2.0
A game development framework
|
Represents a convex volume defined by planes representing the volume border. More...
#include <CeresEngine/Math/Geometry.hpp>
Public Member Functions | |
| TConvexVolume ()=default | |
| TConvexVolume (SmallVector< TPlane< T >, 10 > planes) | |
| TConvexVolume (const TMatrix4< T > &projectionMatrix, bool useNearPlane=true) | |
| Creates frustum planes from the provided projection matrix. | |
| void | transform (const TMatrix4< T > &matrix) |
| Transforms the convex volume by the given matrix. | |
| void | transform (const TTransform< T > &aTransform) |
| Transforms the convex volume by the given matrix. | |
| bool | intersects (const TAABox< T > &box) const |
| Checks does the volume intersects the provided axis aligned box. | |
| bool | intersects (const TSphere< T > &sphere) const |
| Checks does the volume intersects the provided sphere. | |
| TRayIntersection< T > | intersects (const TRay< T > &ray) const |
| Ray/convex volume intersection, returns boolean result and distance to nearest intersection. | |
| bool | contains (const TVector3< T > &p, T expand=0.0) const |
| Checks if the convex volume contains the provided point. | |
| const TPlane< T > & | getPlane (FrustumPlane whichPlane) const |
| Returns the specified plane that represents the volume. | |
Public Attributes | |
| SmallVector< TPlane< T >, 10 > | planes |
| The set of planes that represent the volume. | |
Friends | |
| TConvexVolume | operator* (const TMatrix4< T > &lhs, TConvexVolume rhs) |
| Transforms the convex volume by the given matrix. | |
| TConvexVolume | operator* (const TTransform< T > &lhs, TConvexVolume rhs) |
| Transforms the convex volume by the given transform. | |
Represents a convex volume defined by planes representing the volume border.
|
default |
|
inlineexplicit |
|
explicit |
Creates frustum planes from the provided projection matrix.
| bool Math::TConvexVolume< T >::contains | ( | const TVector3< T > & | p, |
| T | expand = 0.0 |
||
| ) | const |
Checks if the convex volume contains the provided point.
| p | Point to check. |
| expand | Optional value to expand the size of the convex volume by the specified value during the check. Negative values shrink the volume. |
| const TPlane< T > & Math::TConvexVolume< T >::getPlane | ( | FrustumPlane | whichPlane | ) | const |
Returns the specified plane that represents the volume.
| bool Math::TConvexVolume< T >::intersects | ( | const TAABox< T > & | box | ) | const |
Checks does the volume intersects the provided axis aligned box.
This will return true if the box is fully inside the volume.
| TRayIntersection< T > Math::TConvexVolume< T >::intersects | ( | const TRay< T > & | ray | ) | const |
Ray/convex volume intersection, returns boolean result and distance to nearest intersection.
| ray | Ray to intersect with the sphere. |
| bool Math::TConvexVolume< T >::intersects | ( | const TSphere< T > & | sphere | ) | const |
Checks does the volume intersects the provided sphere.
This will return true if the sphere is fully inside the volume.
| void Math::TConvexVolume< T >::transform | ( | const TMatrix4< T > & | matrix | ) |
Transforms the convex volume by the given matrix.
|
inline |
Transforms the convex volume by the given matrix.
|
friend |
Transforms the convex volume by the given matrix.
|
friend |
Transforms the convex volume by the given transform.
| SmallVector<TPlane<T>, 10> Math::TConvexVolume< T >::planes |
The set of planes that represent the volume.