Namespace P64::Math

Functions

constexpr uint32_t P64::Math::alignUp(uint32_t val, uint32_t alignTo)
constexpr uint32_t P64::Math::alignDown(uint32_t val, uint32_t alignTo)
constexpr float P64::Math::s10ToFloat(uint32_t value, float offset, float scale)
fm_quat_t P64::Math::unpackQuat(uint32_t quatPacked)
inline float P64::Math::easeOutCubic(float x)
inline float P64::Math::easeInOutCubic(float x)
inline float P64::Math::easeOutSin(float x)
inline int P64::Math::noise2d(int x, int y)
inline float P64::Math::rand01()
inline float P64::Math::lerp(float a, float b, float t)
template<typename T>
inline auto P64::Math::min(T a, T b)
template<typename T>
inline auto P64::Math::max(T a, T b)
template<typename T>
inline auto P64::Math::clamp(T val, T min, T max)
inline auto P64::Math::min(const fm_vec3_t &a)
inline auto P64::Math::max(const fm_vec3_t &a)
inline auto P64::Math::min(const fm_vec3_t &a, const fm_vec3_t &b)
inline auto P64::Math::max(const fm_vec3_t &a, const fm_vec3_t &b)
inline auto P64::Math::abs(const fm_vec3_t &a)
inline auto P64::Math::cross(const fm_vec3_t &a, const fm_vec3_t &b)
inline fm_vec3_t P64::Math::sign(const fm_vec3_t &v)
inline fm_vec3_t P64::Math::randDir3D()
inline fm_vec3_t P64::Math::randDir2D()
fm_quat_t P64::Math::quatFromInvRotMat(const fm_mat4_t &m)

Variables

constexpr float P64::Math::SQRT_2_INV = 0.70710678118f
constexpr float P64::Math::PI = 3.14159265358979f
constexpr fm_quat_t P64::Math::QUAT_IDENTITY = {0.0f, 0.0f, 0.0f, 1.0f}
constexpr fm_vec3_t P64::Math::VEC3_UP = {0.0f, 1.0f, 0.0f}
constexpr fm_vec3_t P64::Math::VEC3_RIGHT = {1.0f, 0.0f, 0.0f}
constexpr fm_vec3_t P64::Math::VEC3_FORWARD = {0.0f, 0.0f, 1.0f}
constexpr fm_vec3_t P64::Math::VEC3_ZERO = {0.0f, 0.0f, 0.0f}