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...
 
 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 const 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>
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 65 of file UT_SymMatrix3.h.

Member Function Documentation

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

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

Definition at line 175 of file UT_SymMatrix3.h.

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

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

Definition at line 176 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 275 of file UT_SymMatrix3.h.

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

Set this to the identity matrix.

Definition at line 86 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 92 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 157 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 180 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 114 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 123 of file UT_SymMatrix3.h.

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

Definition at line 144 of file UT_SymMatrix3.h.

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

Definition at line 132 of file UT_SymMatrix3.h.

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

Definition at line 138 of file UT_SymMatrix3.h.

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

Definition at line 150 of file UT_SymMatrix3.h.

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

Definition at line 339 of file UT_SymMatrix3.h.

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

Definition at line 346 of file UT_SymMatrix3.h.

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

Definition at line 355 of file UT_SymMatrix3.h.

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

Definition at line 362 of file UT_SymMatrix3.h.

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

Definition at line 372 of file UT_SymMatrix3.h.

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

Definition at line 379 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 100 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 108 of file UT_SymMatrix3.h.

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

Definition at line 186 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 183 of file UT_SymMatrix3.h.

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

Definition at line 391 of file UT_SymMatrix3.h.

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

Set this to the zero matrix.

Definition at line 80 of file UT_SymMatrix3.h.

Friends And Related Function Documentation

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

Definition at line 219 of file UT_SymMatrix3.h.

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

Definition at line 220 of file UT_SymMatrix3.h.

Member Data Documentation

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

Definition at line 215 of file UT_SymMatrix3.h.

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

Definition at line 216 of file UT_SymMatrix3.h.

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

Definition at line 214 of file UT_SymMatrix3.h.

template<typename T>
const 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: