omni::math::linalg::quat

Defined in usdrt/gf/quat.h

Inheritance Relationships

Base Type

template<typename T>
class omni::math::linalg::quat : private omni::math::linalg::base_vec<T, 4>

Public Types

using base_type = base_vec<T, 4>
using ScalarType = T
using ImaginaryType = vec3<T>

Public Functions

quat() = default
constexpr quat(const quat<T>&) = default
inline explicit constexpr quat(const base_type &other)
inline explicit constexpr quat(T real)
inline constexpr quat(T real, T i, T j, T k)
inline constexpr quat(T real, vec3<T> imaginary)
template<typename OTHER_T>
inline explicit quat(const quat<OTHER_T> &other)
template<typename OTHER_T>
inline quat(const std::initializer_list<OTHER_T> &other) noexcept
inline T GetReal() const
inline void SetReal(T real)
inline vec3<T> GetImaginary() const
inline void SetImaginary(const vec3<T> &imaginary)
inline void SetImaginary(T i, T j, T k)
inline constexpr T Dot(const quat<T> &other) const
inline quat<T> GetConjugate() const
inline quat<T> GetInverse() const
inline vec3<T> Transform(const vec3<T> &point) const
inline quat<T> operator-() const
inline bool operator==(const quat<T> &other) const
inline bool operator!=(const quat<T> &other) const
inline quat<T> &operator*=(const quat<T> &other)
inline quat<T> &operator*=(T scalar)
inline quat<T> &operator/=(T scalar)
inline quat<T> &operator+=(const quat<T> &other)
inline quat<T> &operator-=(const quat<T> &other)

Public Static Functions

static inline quat<T> GetIdentity()

Private Functions

inline constexpr T Dot(const base_vec<T, N> &other) const
inline constexpr base_vec<T, N> &operator+=(const base_vec<T, N> &that) noexcept
inline constexpr base_vec<T, N> &operator-=(const base_vec<T, N> &that) noexcept