HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_SymMatrix3T< T > Class Template Reference

Generic symmetric 3x3 matrix. More...

#include <UT_SymMatrix3.h>

Classes

struct  LowerTri
 Inner class to access the elements symbolically. More...
 
struct  UpperTri
 

Public Types

typedef T value_type
 
typedef UT_SymMatrix3T< Ttype
 

Public Member Functions

SYS_FORCE_INLINE UT_SymMatrix3T ()=default
 Construct uninitialized matrix. More...
 
 UT_SymMatrix3T (T s)
 Construct matrix with uniform scale. More...
 
 UT_SymMatrix3T (const UT_Vector3T< T > &s)
 Construct matrix with arbitrary scale. More...
 
template<typename S >
 UT_SymMatrix3T (const UT_SymMatrix3T< S > &other)
 Convert from another floating point type. More...
 
 UT_SymMatrix3T (T q00, T q10, T q11, T q20, T q21, T q22)
 Construct matrix with full components. More...
 
void zero ()
 Set this to the zero matrix. More...
 
void identity ()
 Set this to the identity matrix. More...
 
bool isIdentity () const
 Return whether this is the identity matrix. More...
 
void setScale (T sx, T sy, T sz)
 Set this to a scale matrix. More...
 
void setScale (const UT_Vector3T< T > &s)
 Set this to a scale matrix. More...
 
T operator() (const int i, const int j) const
 Return element (i,j) More...
 
Toperator() (const int i, const int j)
 Return reference to element (i,j) More...
 
typeoperator+= (const type &m)
 
typeoperator-= (const type &m)
 
typeoperator*= (T scalar)
 
typeoperator/= (T scalar)
 
void lerp (const type &a, const type &b, T t)
 
const LowerTrilowerTri () const
 Return reference to the lower triangular elements for symbolic access. More...
 
const UpperTriupperTri () const
 Return reference to the upper triangular elements for symbolic access. More...
 
void transpose ()
 
void outerproduct (const UT_Vector3T< T > &v)
 
void outerproduct (T a, T b, T c)
 
void outerproductUpdate (const UT_Vector3T< T > &v)
 
void outerproductUpdate (T a, T b, T c)
 
void outerproductUpdate (const UT_Vector3T< T > &v, T coef)
 
void outerproductUpdate (T a, T b, T c, T coef)
 
T vQv (const UT_Vector3T< T > &v) const
 
const Tdata () const
 
Tdata ()
 

Static Public Member Functions

template<int N>
static UT_SymMatrix3T< ThouseholderZeroUpper (const UT_Matrix3T< T > &m)
 

Static Public Attributes

static constexpr int tuple_size = 6
 

Friends

template<typename S >
class UT_Matrix3T
 
template<typename S >
class UT_Matrix4T
 

Detailed Description

template<typename T>
class UT_SymMatrix3T< T >

Generic symmetric 3x3 matrix.

Definition at line 27 of file UT_SymMatrix3.h.

Member Typedef Documentation

template<typename T>
typedef UT_SymMatrix3T<T> UT_SymMatrix3T< T >::type

Definition at line 46 of file UT_SymMatrix3.h.

template<typename T>
typedef T UT_SymMatrix3T< T >::value_type

Definition at line 45 of file UT_SymMatrix3.h.

Constructor & Destructor Documentation

template<typename T>
SYS_FORCE_INLINE UT_SymMatrix3T< T >::UT_SymMatrix3T ( )
default

Construct uninitialized matrix.

template<typename T>
UT_SymMatrix3T< T >::UT_SymMatrix3T ( T  s)
inlineexplicit

Construct matrix with uniform scale.

Definition at line 53 of file UT_SymMatrix3.h.

template<typename T>
UT_SymMatrix3T< T >::UT_SymMatrix3T ( const UT_Vector3T< T > &  s)
inlineexplicit

Construct matrix with arbitrary scale.

Definition at line 59 of file UT_SymMatrix3.h.

template<typename T>
template<typename S >
UT_SymMatrix3T< T >::UT_SymMatrix3T ( const UT_SymMatrix3T< S > &  other)
inlineexplicit

Convert from another floating point type.

Definition at line 66 of file UT_SymMatrix3.h.

template<typename T>
UT_SymMatrix3T< T >::UT_SymMatrix3T ( T  q00,
T  q10,
T  q11,
T  q20,
T  q21,
T  q22 
)
inline

Construct matrix with full components.

Definition at line 73 of file UT_SymMatrix3.h.

Member Function Documentation

template<typename T>
const T* UT_SymMatrix3T< T >::data ( ) const
inline

Return the raw pointer to an array of tuple_size (6) elements

Definition at line 183 of file UT_SymMatrix3.h.

template<typename T>
T* UT_SymMatrix3T< T >::data ( )
inline

Return the raw pointer to an array of tuple_size (6) elements

Definition at line 184 of file UT_SymMatrix3.h.

template<typename T >
template<int N>
UT_SymMatrix3T< T > UT_SymMatrix3T< T >::householderZeroUpper ( const UT_Matrix3T< T > &  m)
inlinestatic

Create Householder Reflection matrix R such that R*M will be M with the upper N components of column N zeroed out.

Note
This is only useful when N is 1 or 2 for a 3x3 matrix.

Definition at line 283 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::identity ( )
inline

Set this to the identity matrix.

Definition at line 94 of file UT_SymMatrix3.h.

template<typename T>
bool UT_SymMatrix3T< T >::isIdentity ( ) const
inline

Return whether this is the identity matrix.

Definition at line 100 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::lerp ( const type a,
const type b,
T  t 
)
inline

Set this to a linear interpolation of the two given transforms: this = a + t(b - a)

Definition at line 165 of file UT_SymMatrix3.h.

template<typename T>
const LowerTri& UT_SymMatrix3T< T >::lowerTri ( ) const
inline

Return reference to the lower triangular elements for symbolic access.

Definition at line 188 of file UT_SymMatrix3.h.

template<typename T>
T UT_SymMatrix3T< T >::operator() ( const int  i,
const int  j 
) const
inline

Return element (i,j)

Definition at line 122 of file UT_SymMatrix3.h.

template<typename T>
T& UT_SymMatrix3T< T >::operator() ( const int  i,
const int  j 
)
inline

Return reference to element (i,j)

Definition at line 131 of file UT_SymMatrix3.h.

template<typename T>
type& UT_SymMatrix3T< T >::operator*= ( T  scalar)
inline

Definition at line 152 of file UT_SymMatrix3.h.

template<typename T>
type& UT_SymMatrix3T< T >::operator+= ( const type m)
inline

Definition at line 140 of file UT_SymMatrix3.h.

template<typename T>
type& UT_SymMatrix3T< T >::operator-= ( const type m)
inline

Definition at line 146 of file UT_SymMatrix3.h.

template<typename T>
type& UT_SymMatrix3T< T >::operator/= ( T  scalar)
inline

Definition at line 158 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproduct ( const UT_Vector3T< T > &  v)

Definition at line 347 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproduct ( T  a,
T  b,
T  c 
)

Definition at line 354 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproductUpdate ( const UT_Vector3T< T > &  v)

Definition at line 363 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproductUpdate ( T  a,
T  b,
T  c 
)

Definition at line 370 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproductUpdate ( const UT_Vector3T< T > &  v,
T  coef 
)

Definition at line 380 of file UT_SymMatrix3.h.

template<typename T >
void UT_SymMatrix3T< T >::outerproductUpdate ( T  a,
T  b,
T  c,
T  coef 
)

Definition at line 387 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::setScale ( T  sx,
T  sy,
T  sz 
)
inline

Set this to a scale matrix.

Definition at line 108 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::setScale ( const UT_Vector3T< T > &  s)
inline

Set this to a scale matrix.

Definition at line 116 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::transpose ( )
inline

Definition at line 194 of file UT_SymMatrix3.h.

template<typename T>
const UpperTri& UT_SymMatrix3T< T >::upperTri ( ) const
inline

Return reference to the upper triangular elements for symbolic access.

Definition at line 191 of file UT_SymMatrix3.h.

template<typename T >
T UT_SymMatrix3T< T >::vQv ( const UT_Vector3T< T > &  v) const

Definition at line 399 of file UT_SymMatrix3.h.

template<typename T>
void UT_SymMatrix3T< T >::zero ( )
inline

Set this to the zero matrix.

Definition at line 88 of file UT_SymMatrix3.h.

Friends And Related Function Documentation

template<typename T>
template<typename S >
friend class UT_Matrix3T
friend

Definition at line 227 of file UT_SymMatrix3.h.

template<typename T>
template<typename S >
friend class UT_Matrix4T
friend

Definition at line 228 of file UT_SymMatrix3.h.

Member Data Documentation

template<typename T>
LowerTri UT_SymMatrix3T< T >::myLower

Definition at line 223 of file UT_SymMatrix3.h.

template<typename T>
UpperTri UT_SymMatrix3T< T >::myUpper

Definition at line 224 of file UT_SymMatrix3.h.

template<typename T>
T UT_SymMatrix3T< T >::myV[6]

Definition at line 222 of file UT_SymMatrix3.h.

template<typename T>
constexpr int UT_SymMatrix3T< T >::tuple_size = 6
static

Definition at line 47 of file UT_SymMatrix3.h.


The documentation for this class was generated from the following file: