A frustum class that can be used for efficient primitive intersection tests. More...
#include <Frustum.h>
Public Types | |
| enum | PlaneId { Near , Far , Left , Right , Top , Bottom , MAX } |
| enum class | ReverseDepth { True , False } |
| enum | CornerIndices { NearTopLeft , NearTopRight , NearBottomLeft , NearBottomRight , FarTopLeft , FarTopRight , FarBottomLeft , FarBottomRight , Count } |
| using | CornerVertexArray = AZStd::array< AZ::Vector3, CornerIndices::Count > |
Static Public Member Functions | |
| static void | Reflect (ReflectContext *context) |
| static Frustum | CreateFromMatrixRowMajor (const Matrix4x4 &matrix, ReverseDepth reverseDepth=ReverseDepth::False) |
| static Frustum | CreateFromMatrixColumnMajor (const Matrix4x4 &matrix, ReverseDepth reverseDepth=ReverseDepth::False) |
| static Frustum | CreateFromMatrixRowMajorSymmetricZ (const Matrix4x4 &matrix, ReverseDepth reverseDepth=ReverseDepth::False) |
| static Frustum | CreateFromMatrixColumnMajorSymmetricZ (const Matrix4x4 &matrix, ReverseDepth reverseDepth=ReverseDepth::False) |
A frustum class that can be used for efficient primitive intersection tests.
|
explicit |
Construct a view frustum from ViewFrustumAttributes.
| viewFrustumAttributes | Attributes to build a Frustum from a view volume. |
|
static |
Extract frustum from matrix. Matrix Usage and Z conventions form the matrix of use cases. Symmetric-z (OpenGL convention) implies -w <= z <= w Non-symmetric (DirectX convention) implies 0 <= z <= w RowMajor implies x*M convention ColumnMajor implies M*x convention
| bool AZ::Frustum::GetCorners | ( | CornerVertexArray & | corners | ) | const |
Fills an array with corner vertices and returns true for valid Frustums.
| corners | The array of corner vertices to fill. |
| AZ_MATH_INLINE Plane AZ::Frustum::GetPlane | ( | PlaneId | planeId | ) | const |
Returns the requested plane.
| planeId | the index of the plane to retrieve |
| AZ_MATH_INLINE IntersectResult AZ::Frustum::IntersectAabb | ( | const Aabb & | aabb | ) | const |
Intersects an axis-aligned bounding box.
| aabb | the axis-aligned bounding box to test against |
| AZ_MATH_INLINE IntersectResult AZ::Frustum::IntersectAabb | ( | const Vector3 & | minimum, |
| const Vector3 & | maximum | ||
| ) | const |
Intersects an axis-aligned bounding box.
| minimum | the smallest extents of the bounding volume to test against |
| maximum | the largest extents of the bounding volume to test against |
| AZ_MATH_INLINE IntersectResult AZ::Frustum::IntersectSphere | ( | const Sphere & | sphere | ) | const |
Intersects a sphere against the frustum.
| sphere | the sphere to test against |
| AZ_MATH_INLINE IntersectResult AZ::Frustum::IntersectSphere | ( | const Vector3 & | center, |
| float | radius | ||
| ) | const |
Intersects a sphere against the frustum.
| center | the center of the sphere to test against |
| radius | the radius of the sphere to test against |
| AZ_MATH_INLINE bool AZ::Frustum::IsClose | ( | const Frustum & | rhs, |
| float | tolerance = Constants::Tolerance |
||
| ) | const |
Returns true if the current frustum and provided frustum are close to identical.
| rhs | the frustum to compare against for closeness |
|
static |
AzCore Reflection.
| context | reflection context |
Clones the provided frustum.
| frustum | the frustum instance to clone |
Sets the requested plane.
| planeId | the index of the plane to set |
| plane | the new plane value to set to |