30 template<CVec3 Vec3Type>
42 return { .Up = Vec3Type(0, 1, 0), .Forward = Vec3Type(0, 0, 1) };
48 return { .Up = Vec3Type(0, 1, 0), .Forward = Vec3Type(0, 0, -1) };
73 return Math::QuatFromUpAndForward(
Up, -
Forward);
78 template<CVec3 Vec3Type>
85 template<CVec3 Vec3Type>
91 template<CVec3 Vec3Type>
94 return lhs.Location ==
rhs.Location &&
lhs.Orientation ==
rhs.Orientation;
#define JPL_ASSERT(inExpression,...)
Main assert macro, usage: JPL_ASSERT(condition, message) or JPL_ASSERT(condition)
Definition ErrorReporting.h:76
JPL_INLINE constexpr bool IsNearlyZero(T value, T errorTolerance=JPL_FLOAT_EPS_V< T >) noexcept
Definition Math.h:146
Definition AcousticMaterial.h:36
JPL_INLINE constexpr bool operator==(const Vec2 &A, const Vec2 &B) noexcept
Definition MinimalVec2.h:59
JPL_INLINE simd min(const simd &a, const simd &b) noexcept
Element-wise min.
Definition SIMD.h:1813
Orthonormal basis (column-major)
Definition MinimalBasis.h:35
Vec3 X
Definition MinimalBasis.h:38
Minimum data required to do our orientation math.
Definition Position.h:32
static JPL_INLINE OrientationData< Vec3Type > Identity() noexcept
Definition Position.h:40
static JPL_INLINE OrientationData< Vec3Type > IdentityForward() noexcept
Identity facing forward as per right-handed rotation.
Definition Position.h:46
Vec3Type Up
Definition Position.h:37
JPL_INLINE Basis< Vec3Type > ToBasis() const noexcept
Definition Position.h:51
JPL_INLINE Basis< Vec3Type > ToBasisUnsafe() const
Definition Position.h:58
JPL_INLINE Quat< Vec3Type > ToQuat() const noexcept
Definition Position.h:70
Vec3Type Forward
Definition Position.h:38
Location and orientation in one place.
Definition Position.h:80
OrientationData< Vec3Type > Orientation
Definition Position.h:82
Vec3Type Location
Definition Position.h:81
Minimal quaternion (w + xi + yj + zk)
Definition MinimalQuat.h:38