omni::math::linalg::matrix4

Defined in usdrt/gf/matrix.h

Inheritance Relationships

Base Type

template<typename T>
class omni::math::linalg::matrix4 : public omni::math::linalg::base_matrix<T, 4>

Public Types

using base_type = base_matrix<T, 4>
using this_type = matrix4<T>
using ScalarType = T

Public Functions

matrix4() = default
constexpr matrix4(const this_type&) = default
constexpr this_type &operator=(const this_type&) = default
inline matrix4(const base_type &other)
template<typename OTHER_T>
inline explicit matrix4(const matrix4<OTHER_T> &other)
inline matrix4(T v00, T v01, T v02, T v03, T v10, T v11, T v12, T v13, T v20, T v21, T v22, T v23, T v30, T v31, T v32, T v33)
inline this_type &Set(const T m[numRows][numColumns])
inline this_type &Set(T v00, T v01, T v02, T v03, T v10, T v11, T v12, T v13, T v20, T v21, T v22, T v23, T v30, T v31, T v32, T v33)
inline this_type &SetIdentity()
inline this_type &SetZero()
inline this_type &SetDiagonal(T scalar)
inline this_type &SetDiagonal(const base_vec<T, numRows> &diagonal)
inline this_type GetTranspose() const
inline this_type GetInverse(T *det = nullptr, T epsilon = T(0)) const
inline T GetDeterminant() const
inline T GetDeterminant3() const
inline int GetHandedness() const
inline bool Orthonormalize()
inline this_type GetOrthonormalized() const
inline this_type &operator*=(const base_type &other)
inline this_type &operator*=(T scalar)
inline this_type &operator+=(const base_type &other)
inline this_type &operator-=(const base_type &other)
inline this_type operator-() const
inline this_type &SetScale(T scale)
inline this_type &SetScale(const vec3<T> &scales)
inline this_type RemoveScaleShear() const
inline this_type &SetRotate(const quat<double> &rotation)
inline this_type &SetRotateOnly(const quat<double> &rotation)
inline this_type &SetRotate(const matrix3<T> &m3)
inline this_type &SetRotateOnly(const matrix3<T> &m3)
inline this_type &SetTranslate(const vec3<T> &translation)
inline this_type &SetTranslateOnly(const vec3<T> &translation)
inline void SetRow3(size_t rowIndex, const vec3<T> &rowValues)
inline vec3<T> GetRow3(size_t rowIndex)
inline this_type &SetLookAt(const vec3<T> &cameraPosition, const vec3<T> &focusPosition, const vec3<T> &upDirection)
inline this_type &SetLookAt(const vec3<T> &cameraPosition, const quat<double> &orientation)
inline vec3<T> ExtractTranslation() const
inline quat<double> ExtractRotation() const
inline matrix3<T> ExtractRotationMatrix() const
template<typename OTHER_T>
inline vec3<OTHER_T> Transform(const vec3<OTHER_T> &u) const
template<typename OTHER_T>
inline vec3<OTHER_T> TransformDir(const vec3<OTHER_T> &u) const
template<typename OTHER_T>
inline vec3<OTHER_T> TransformAffine(const vec3<OTHER_T> &u) const
inline void SetRow(size_t rowIndex, const base_vec<T, N> &rowValues)
inline void SetColumn(size_t colIndex, const base_vec<T, N> &colValues)
inline base_vec<T, N> GetRow(size_t rowIndex) const
inline base_vec<T, N> GetColumn(size_t colIndex) const
inline base_matrix<T, N> &Set(const T m[N][N])
inline base_matrix<T, N> &SetDiagonal(const base_vec<T, N> &diagonal)
inline T *Get(T m[N][N]) const
inline T *data()
inline const T *data() const
inline T *GetArray()
inline const T *GetArray() const
inline T *operator[](size_t row)
inline const T *operator[](size_t row) const
inline bool operator==(const base_matrix<T, N> &other) const
inline bool operator==(const base_matrix<OTHER_T, N> &other) const
inline bool operator!=(const base_matrix<T, N> &other) const
inline bool operator!=(const base_matrix<OTHER_T, N> &other) const
inline base_matrix<T, N> &operator*=(const base_matrix<T, N> &other)
inline base_matrix<T, N> &operator+=(const base_matrix<T, N> &other)
inline base_matrix<T, N> &operator-=(const base_matrix<T, N> &other)

Public Static Attributes

static const size_t numRows
static const size_t numColumns

Protected Attributes

T v[N][N]