|
JPL Spatial
Sound spatialization and propagation library
|
Orthonormal basis (column-major) More...
#include <JPLSpatial/Math/MinimalBasis.h>
Public Types | |
| using | Float = Internal::FloatOf< Vec3 > |
Public Member Functions | |
| JPL_INLINE Vec3 | InverseTransform (const Vec3 &pWorld) const noexcept |
| Apply rotation world -> local. | |
| JPL_INLINE Vec3 | Transform (const Vec3 &vector) const noexcept |
| Apply rotation local -> world. | |
| JPL_INLINE void | Transform (simd &inOutX, simd &inOutY, simd &inOutZ) const noexcept |
| JPL_INLINE Basis | Transform (const Basis &otherBasis) const noexcept |
| Compose orientations: apply 'this' basis mapping to the other's axes. | |
| JPL_INLINE Basis | InverseTransform (const Basis &otherBasis) const noexcept |
| Re-express 'other' in 'this' local frame. | |
Static Public Member Functions | |
| static const Basis & | Identity () noexcept |
| static JPL_INLINE Basis | FromForward (const Vec3 &forward) noexcept |
| static Basis | FromUpAndForward (const Vec3 &up, const Vec3 &forward) noexcept |
| Creates a basis from the given up and forward normalized unit vectors. | |
| static Basis | Rotation (const Vec3 &axis, Float angleRad) noexcept |
Public Attributes | |
| Vec3 | X |
| Vec3 | Y |
| Vec3 | Z |
Orthonormal basis (column-major)
| using JPL::Basis< Vec3 >::Float = Internal::FloatOf<Vec3> |
|
inlinestaticnoexcept |
Creates a basis from the given forward (normal vector).
| n | : normal vector, must be normalized |
|
inlinestaticnoexcept |
Creates a basis from the given up and forward normalized unit vectors.
|
inlinestaticnoexcept |
|
inlinenoexcept |
Re-express 'other' in 'this' local frame.
|
inlinenoexcept |
Apply rotation world -> local.
|
inlinestaticnoexcept |
Build a rotation "matrix" axis–angle. Columns are R*ex, R*ey, R*ez (column-major). (this is cheaper than Quat if > 2 vectors need the same rotation)
| axis | : must be a normalized direction vector |
|
inlinenoexcept |
Compose orientations: apply 'this' basis mapping to the other's axes.
|
inlinenoexcept |
Apply rotation local -> world.
|
inlinenoexcept |
Apply rotation local -> world. Performs transform on 4 directions packed into simd vectors at the same time.
| Vec3 JPL::Basis< Vec3 >::X |
| Vec3 JPL::Basis< Vec3 >::Y |
| Vec3 JPL::Basis< Vec3 >::Z |