OpenVDB  0.104.0
Classes | Namespaces | Typedefs | Functions
Mat3.h File Reference
#include <iomanip>
#include <assert.h>
#include <math.h>
#include <openvdb/Exceptions.h>
#include "Vec3.h"
#include "Mat.h"

Go to the source code of this file.

Classes

class  Vec3< T >
 
class  Mat4< T >
 4x4 -matrix class. More...
 
class  Quat< T >
 
class  Mat3< T >
 3x3 matrix class. More...
 

Namespaces

namespace  openvdb
 
namespace  openvdb::v0_104_0
 
namespace  openvdb::v0_104_0::math
 

Typedefs

typedef Mat3< float > Mat3s
 
typedef Mat3< double > Mat3d
 
typedef Mat3s Mat3f
 

Functions

template<typename T0 , typename T1 >
Mat3< typename promote< T0, T1 >
::type > 
operator* (const Mat3< T0 > &m0, const Mat3< T1 > &m1)
 Matrix multiplication. More...
 
template<typename T >
Mat3< T > outerProduct (const Vec3< T > &v1, const Vec3< T > &v2)
 
template<typename T , typename T0 >
Mat3< T > powLerp (const Mat3< T0 > &m1, const Mat3< T0 > &m2, T t)
 
template<typename T >
bool diagonalizeSymmetricMatrix (const Mat3< T > &input, Mat3< T > &Q, Vec3< T > &D, unsigned int MAX_ITERATIONS=250)
 Use jacobi iterations to decompose a symmetric 3x3 matrix (diagonalize and compute eigenvectors) This is based on the "Efficient numerical diagonalization of Hermitian 3x3 matrices" Joachim Kopp. arXiv.org preprint: physics/0610206 with the addition of largest pivot. More...