JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
Vec3Math.h File Reference
#include "JPLSpatial/Math/Math.h"
#include "JPLSpatial/Math/SIMD.h"
#include "JPLSpatial/Math/SIMDMath.h"
#include "JPLSpatial/Math/Vec3Pack.h"
#include "JPLSpatial/Math/Vec3Traits.h"
#include <cmath>
#include <concepts>
#include <numbers>
#include <limits>

Go to the source code of this file.

Namespaces

namespace  JPL
 
namespace  JPL::Internal
 
namespace  JPL::Math
 

Typedefs

template<CVec3 Vec3>
using JPL::Internal::FloatOf = std::remove_cvref_t< decltype(GetX(std::declval< Vec3 >()))>
 

Functions

template<CVec3 Vec3>
JPL_INLINE constexpr bool JPL::Math::IsNearlyEqual (const Vec3 &a, const Vec3 &b, Internal::FloatOf< Vec3 > tolerance=JPL_FLOAT_EPS_V< Internal::FloatOf< Vec3 > >) noexcept
 
template<CVec3 Vec3>
JPL_INLINE constexpr bool JPL::Math::IsNearlyZero (const Vec3 &a, Internal::FloatOf< Vec3 > tolerance=JPL_FLOAT_EPS_V< Internal::FloatOf< Vec3 > >) noexcept
 
template<CVec3 Vec3>
JPL_INLINE bool JPL::Math::HasNans (const Vec3 &vec)
 
template<CVec3 Vec3>
Vec3 JPL::Math::GetNormalizedPerpendicular (const Vec3 &vec) noexcept
 
template<CVec3 Vec3>
void JPL::Math::CreateOrthonormalBasis (const Vec3 &normal, Vec3 &tangent, Vec3 &bitangent) noexcept
 
template<CVec3 Vec3>
JPL_INLINE Vec3 JPL::Math::RotateVector (const Vec3 &vector, const Vec3 &rotationAxis, float angleRad) noexcept
 
template<CVec3 Vec3>
JPL_INLINE Vec3 JPL::Math::Lerp (const Vec3 &v0, const Vec3 &v1, float t) noexcept
 
JPL_INLINE Vec3Pack JPL::Math::Lerp (const Vec3Pack &v0, const Vec3Pack &v1, simd t) noexcept
 
template<CVec3 Vec3>
JPL_INLINE Vec3 JPL::Math::Nlerp (const Vec3 &v0, const Vec3 &v1, float t) noexcept
 
JPL_INLINE Vec3Pack JPL::Math::Nlerp (const Vec3Pack &v0, const Vec3Pack &v1, simd t) noexcept
 
template<CVec3 Vec3>
Vec3 JPL::Math::Slerp (const Vec3 &v0, const Vec3 &v1, float t) noexcept
 Input vectors must be normalized.
 
void JPL::Math::Slerp (Vec3Pack &inOutV0, const Vec3Pack &V1, const simd &t) noexcept
 Input vectors must be normalized.