HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_Matrix4.h File Reference
#include "UT_API.h"
#include "UT_Assert.h"
#include "UT_Axis.h"
#include "UT_FixedVector.h"
#include "UT_SymMatrix4.h"
#include "UT_Vector3.h"
#include "UT_Vector4.h"
#include "UT_VectorTypes.h"
#include "UT_XformOrder.h"
#include <SYS/SYS_Math.h>
#include <iosfwd>
#include <VM/VM_SIMD.h>
#include "UT_Matrix3.h"
+ Include dependency graph for UT_Matrix4.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  UT_Matrix4T< T >
 
struct  UT_Matrix4T< T >::PivotSpaceT< S >
 Define parameters for Houdini's pivot space. More...
 
struct  UT_Matrix4T< T >::FullTransformModel
 Define parameters for Houdini's full transform model. More...
 
struct  UT_FixedVectorTraits< UT_Matrix4T< T > >
 

Macros

#define __UT_Matrix4_h__
 

Functions

template<typename T >
UT_Matrix4T< T > operator+ (const UT_Matrix4T< T > &m1, const UT_Matrix4T< T > &m2)
 
template<typename T >
UT_Matrix4T< T > operator- (const UT_Matrix4T< T > &m1, const UT_Matrix4T< T > &m2)
 
template<typename T >
UT_Matrix4T< T > operator* (const UT_Matrix4T< T > &m1, const UT_Matrix4T< T > &m2)
 
template<typename T , typename S >
UT_Matrix4T< T > operator+ (const UT_Matrix4T< T > &mat, const UT_Vector4T< S > &vec)
 
template<typename T , typename S >
UT_Matrix4T< T > operator+ (const UT_Vector4T< S > &vec, const UT_Matrix4T< T > &mat)
 
template<typename T , typename S >
UT_Matrix4T< T > operator- (const UT_Matrix4T< T > &mat, const UT_Vector4T< S > &vec)
 
template<typename T , typename S >
UT_Matrix4T< T > operator- (const UT_Vector4T< S > &vec, const UT_Matrix4T< T > &mat)
 
template<typename T , typename S >
UT_Matrix4T< T > operator+ (const UT_Matrix4T< T > &mat, S sc)
 
template<typename T , typename S >
UT_Matrix4T< T > operator- (const UT_Matrix4T< T > &mat, S sc)
 
template<typename T , typename S >
UT_Matrix4T< T > operator* (const UT_Matrix4T< T > &mat, S sc)
 
template<typename T , typename S >
UT_Matrix4T< T > operator/ (const UT_Matrix4T< T > &mat, S sc)
 
template<typename T , typename S >
UT_Matrix4T< T > operator+ (S sc, const UT_Matrix4T< T > &mat)
 
template<typename T , typename S >
UT_Matrix4T< T > operator- (S sc, const UT_Matrix4T< T > &mat)
 
template<typename T , typename S >
UT_Matrix4T< T > operator* (S sc, const UT_Matrix4T< T > &mat)
 
template<typename T , typename S >
UT_Matrix4T< T > operator/ (S sc, const UT_Matrix4T< T > &mat)
 
template<typename T >
UT_Matrix4T< T > SYSmin (const UT_Matrix4T< T > &v1, const UT_Matrix4T< T > &v2)
 
template<typename T >
UT_Matrix4T< T > SYSmax (const UT_Matrix4T< T > &v1, const UT_Matrix4T< T > &v2)
 
template<typename T , typename S >
UT_Matrix4T< T > SYSlerp (const UT_Matrix4T< T > &v1, const UT_Matrix4T< T > &v2, S t)
 
template<typename T , typename S >
UT_Matrix4T< T > SYSbilerp (const UT_Matrix4T< T > &u0v0, const UT_Matrix4T< T > &u1v0, const UT_Matrix4T< T > &u0v1, const UT_Matrix4T< T > &u1v1, S u, S v)
 
template<>
UT_Matrix4T< float > operator* (const UT_Matrix4T< float > &m1, const UT_Matrix4T< float > &m2)
 
template<typename T , typename S >
UT_Vector3T< T > operator* (const UT_Vector3T< T > &v, const UT_Matrix4T< S > &m)
 
template<>
UT_Vector3T< float > rowVecMult (const UT_Vector3T< float > &v, const UT_Matrix4T< float > &m)
 
template<>
UT_Vector3T< float > rowVecMult3 (const UT_Vector3T< float > &v, const UT_Matrix4T< float > &m)
 
template<>
UT_Vector3T< float > colVecMult (const UT_Matrix4T< float > &m, const UT_Vector3T< float > &v)
 
template<>
UT_Vector3T< float > colVecMult3 (const UT_Matrix4T< float > &m, const UT_Vector3T< float > &v)
 
template<>
UT_Matrix4T< float > SYSlerp (const UT_Matrix4T< float > &v1, const UT_Matrix4T< float > &v2, float t)
 
template<typename T >
UT_API size_t format (char *buffer, size_t buffer_size, const UT_Matrix4T< T > &v)
 
template<typename T , typename S >
UT_Vector3T< T > rowVecMult (const UT_Vector3T< T > &v, const UT_Matrix4T< S > &m)
 
template<typename T , typename S >
UT_Vector3T< T > colVecMult (const UT_Matrix4T< S > &m, const UT_Vector3T< T > &v)
 
template<typename T , typename S >
UT_Vector3T< T > rowVecMult3 (const UT_Vector3T< T > &v, const UT_Matrix4T< S > &m)
 
template<typename T , typename S >
UT_Vector3T< T > colVecMult3 (const UT_Matrix4T< S > &m, const UT_Vector3T< T > &v)
 

Macro Definition Documentation

#define __UT_Matrix4_h__

Definition at line 11 of file UT_Matrix4.h.

Function Documentation

template<typename T , typename S >
UT_Vector3T< T > colVecMult ( const UT_Matrix4T< S > &  m,
const UT_Vector3T< T > &  v 
)
inline

Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult(). The functions that take a 4x4 matrix first extend the vector to 4D (with a trailing 1.0 element).

Definition at line 1801 of file UT_Matrix4.h.

template<>
UT_Vector3T<float> colVecMult ( const UT_Matrix4T< float > &  m,
const UT_Vector3T< float > &  v 
)
inline

Definition at line 1848 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Vector3T< T > colVecMult3 ( const UT_Matrix4T< S > &  m,
const UT_Vector3T< T > &  v 
)
inline

Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult(). The functions that take a 4x4 matrix first extend the vector to 4D (with a trailing 1.0 element).

Definition at line 1812 of file UT_Matrix4.h.

template<>
UT_Vector3T<float> colVecMult3 ( const UT_Matrix4T< float > &  m,
const UT_Vector3T< float > &  v 
)
inline

Definition at line 1861 of file UT_Matrix4.h.

template<typename T >
UT_API size_t format ( char *  buffer,
size_t  buffer_size,
const UT_Matrix4T< T > &  v 
)
template<typename T >
UT_Matrix4T< T > operator* ( const UT_Matrix4T< T > &  m1,
const UT_Matrix4T< T > &  m2 
)
inline

Definition at line 1546 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator* ( const UT_Matrix4T< T > &  mat,
sc 
)
inline

Definition at line 1711 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator* ( sc,
const UT_Matrix4T< T > &  mat 
)
inline

Definition at line 1704 of file UT_Matrix4.h.

template<>
UT_Matrix4T<float> operator* ( const UT_Matrix4T< float > &  m1,
const UT_Matrix4T< float > &  m2 
)
inline

Definition at line 1589 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Vector3T<T> operator* ( const UT_Vector3T< T > &  v,
const UT_Matrix4T< S > &  m 
)
inline

Definition at line 1783 of file UT_Matrix4.h.

template<typename T >
UT_Matrix4T< T > operator+ ( const UT_Matrix4T< T > &  m1,
const UT_Matrix4T< T > &  m2 
)
inline

Definition at line 1510 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator+ ( const UT_Matrix4T< T > &  mat,
const UT_Vector4T< S > &  vec 
)
inline

Definition at line 1613 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator+ ( const UT_Vector4T< S > &  vec,
const UT_Matrix4T< T > &  mat 
)
inline

Definition at line 1633 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator+ ( const UT_Matrix4T< T > &  mat,
sc 
)
inline

Definition at line 1680 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T<T> operator+ ( sc,
const UT_Matrix4T< T > &  mat 
)
inline
template<typename T >
UT_Matrix4T< T > operator- ( const UT_Matrix4T< T > &  m1,
const UT_Matrix4T< T > &  m2 
)
inline

Definition at line 1528 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator- ( const UT_Matrix4T< T > &  mat,
const UT_Vector4T< S > &  vec 
)
inline

Definition at line 1640 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator- ( const UT_Vector4T< S > &  vec,
const UT_Matrix4T< T > &  mat 
)
inline

Definition at line 1660 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T<T> operator- ( const UT_Matrix4T< T > &  mat,
sc 
)
inline
template<typename T , typename S >
UT_Matrix4T< T > operator- ( sc,
const UT_Matrix4T< T > &  mat 
)
inline

Definition at line 1692 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator/ ( const UT_Matrix4T< T > &  mat,
sc 
)
inline

Definition at line 1724 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > operator/ ( sc,
const UT_Matrix4T< T > &  mat 
)
inline

Definition at line 1731 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Vector3T< T > rowVecMult ( const UT_Vector3T< T > &  v,
const UT_Matrix4T< S > &  m 
)
inline

Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult(). The functions that take a 4x4 matrix first extend the vector to 4D (with a trailing 1.0 element).

Definition at line 1773 of file UT_Matrix4.h.

template<>
UT_Vector3T<float> rowVecMult ( const UT_Vector3T< float > &  v,
const UT_Matrix4T< float > &  m 
)
inline

Definition at line 1823 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Vector3T< T > rowVecMult3 ( const UT_Vector3T< T > &  v,
const UT_Matrix4T< S > &  m 
)
inline

Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult(). The functions that take a 4x4 matrix first extend the vector to 4D (with a trailing 1.0 element).

Examples:
SOP/MSS_CustomBrushState.C.

Definition at line 1790 of file UT_Matrix4.h.

template<>
UT_Vector3T<float> rowVecMult3 ( const UT_Vector3T< float > &  v,
const UT_Matrix4T< float > &  m 
)
inline

Definition at line 1836 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T<T> SYSbilerp ( const UT_Matrix4T< T > &  u0v0,
const UT_Matrix4T< T > &  u1v0,
const UT_Matrix4T< T > &  u0v1,
const UT_Matrix4T< T > &  u1v1,
u,
v 
)
inline

Definition at line 76 of file UT_Matrix4.h.

template<typename T , typename S >
UT_Matrix4T< T > SYSlerp ( const UT_Matrix4T< T > &  v1,
const UT_Matrix4T< T > &  v2,
t 
)
inline

Definition at line 2016 of file UT_Matrix4.h.

template<>
UT_Matrix4T<float> SYSlerp ( const UT_Matrix4T< float > &  v1,
const UT_Matrix4T< float > &  v2,
float  t 
)
inline

Definition at line 2040 of file UT_Matrix4.h.

template<typename T >
UT_Matrix4T< T > SYSmax ( const UT_Matrix4T< T > &  v1,
const UT_Matrix4T< T > &  v2 
)
inline

Definition at line 1992 of file UT_Matrix4.h.

template<typename T >
UT_Matrix4T< T > SYSmin ( const UT_Matrix4T< T > &  v1,
const UT_Matrix4T< T > &  v2 
)
inline

Definition at line 1968 of file UT_Matrix4.h.