5#include <Foundation/Basics.h>
7#if PL_ENABLED(PL_MATH_CHECK_FOR_NAN)
8# define PL_NAN_ASSERT(obj) (obj)->AssertNotNaN();
10# define PL_NAN_ASSERT(obj)
13#define PL_DECLARE_IF_FLOAT_TYPE template <typename = typename std::enable_if<std::is_floating_point_v<Type> == true>>
14#define PL_IMPLEMENT_IF_FLOAT_TYPE template <typename ENABLE_IF_FLOAT>
128template <
typename Type>
138template <
typename Type>
148template <
typename Type>
162template <
typename Type>
168template <
typename Type>
174template <
typename Type>
180template <
typename Type>
186template <
typename Type>
193template <
typename Type>
199template <
typename Type>
205template <plUInt8 DecimalBits>
210template <
typename Type>
222template <
typename Type>
238 using StorageType = plInt8;
274 using StorageType = plUInt8;
289 template <
typename T>
290 static bool Compare(plComparisonOperator::Enum cmp,
const T& a,
const T& b);
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
A combination of a bounding box and a bounding sphere with the same center.
Definition BoundingBoxSphere.h:12
An axis-aligned bounding box implementation.
Definition BoundingBox.h:12
An implementation of a bounding sphere.
Definition BoundingSphere.h:11
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:61
Implements fixed point arithmetic for fractional values.
Definition FixedPoint.h:23
Represents the frustum of some camera and can be used for culling objects.
Definition Frustum.h:32
A 3x3 component matrix class.
Definition Mat3.h:9
A 4x4 component matrix class.
Definition Mat4.h:11
Quaternions can be used to represent rotations in 3D space.
Definition Quat.h:19
A random number generator. Currently uses the WELL512 algorithm.
Definition Random.h:9
A simple rectangle class templated on the type for x, y and width, height.
Definition Rect.h:10
A 2-component vector class.
Definition Vec2.h:14
A 3-component vector class.
Definition Vec3.h:9
A 4-component vector class.
Definition Vec4.h:9
An enum that allows to select on of the six main axis (positive / negative)
Definition Declarations.h:237
Enum
An enum that allows to select on of the six main axis (positive / negative)
Definition Declarations.h:242
Describes for which depth range a projection matrix is constructed.
Definition Declarations.h:77
Enum
Definition Declarations.h:79
@ ZeroToOne
Near plane at 0, far plane at 1.
Definition Declarations.h:81
@ MinusOneToOne
Near plane at -1, far plane at +1.
Definition Declarations.h:80
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
Specifies whether a projection matrix should flip the result along the Y axis or not.
Definition Declarations.h:100
static PL_FOUNDATION_DLL Enum RenderToTextureDefault
Holds the platform default value for the clip space Y mode when rendering to a texture....
Definition Declarations.h:111
Enum
Definition Declarations.h:102
@ Flipped
Definition Declarations.h:104
@ Regular
Creates a regular projection matrix.
Definition Declarations.h:103
An enum that represents the operator of a comparison.
Definition Declarations.h:273
For selecting a left-handed or right-handed convention.
Definition Declarations.h:116
static PL_FOUNDATION_DLL Enum Default
Holds the default handedness value to use. pl uses 'LeftHanded' by default.
Definition Declarations.h:124
Enum to describe which memory layout is used to store a matrix in a float array.
Definition Declarations.h:63
Enum
Definition Declarations.h:65
@ RowMajor
The matrix is stored in row-major format.
Definition Declarations.h:66
@ ColumnMajor
The matrix is stored in column-major format.
Definition Declarations.h:67
A class that represents a mathematical plane.
Definition Plane.h:21
Simple helper union to store ints and doubles to modify their bit patterns.
Definition Declarations.h:35
Simple helper union to store ints and floats to modify their bit patterns.
Definition Declarations.h:18