3#include <Foundation/Math/Mat4.h>
4#include <Foundation/Math/Plane.h>
5#include <Foundation/SimdMath/SimdBBox.h>
6#include <Foundation/SimdMath/SimdBSphere.h>
7#include <Foundation/SimdMath/SimdVec4b.h>
8#include <Foundation/SimdMath/SimdVec4f.h>
34 enum PlaneType : plUInt8
46 enum FrustumCorner : plUInt8
109 [[nodiscard]]
static plFrustum MakeFromCorners(
const plVec3 pCorners[FrustumCorner::CORNER_COUNT]);
114 [[nodiscard]]
static plResult TryMakeFromCorners(
plFrustum& out_frustum,
const plVec3 pCorners[FrustumCorner::CORNER_COUNT]);
117 const plPlane& GetPlane(plUInt8 uiPlane)
const;
120 plPlane& AccessPlane(plUInt8 uiPlane);
123 bool IsValid()
const;
127 void TransformFrustum(
const plMat4& mTransform);
133 void InvertFrustum();
139 plResult ComputeCornerPoints(
plVec3 out_pPoints[FrustumCorner::CORNER_COUNT])
const;
161 bool Overlaps(
const plSimdBBox&
object)
const;
173#include <Foundation/Math/Implementation/Frustum_inl.h>
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
Represents the frustum of some camera and can be used for culling objects.
Definition Frustum.h:32
plFrustum()
The constructor does NOT initialize the frustum planes, make sure to call SetFrustum() before trying ...
Definition SimdBSphere.h:6
Enum
Definition Declarations.h:79
static PL_FOUNDATION_DLL Enum Default
Holds the default value for the projection depth range on each platform. This can be overridden by re...
Definition Declarations.h:87
static PL_FOUNDATION_DLL Enum Default
Holds the default handedness value to use. pl uses 'LeftHanded' by default.
Definition Declarations.h:124
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Enum that describes where in a volume another object is located.
Definition Frustum.h:12
Enum
Enum that describes where in a volume another object is located.
Definition Frustum.h:15