HDK
|
#include "ImathExport.h"
#include "ImathMatrix.h"
#include "ImathQuat.h"
#include "ImathEuler.h"
#include "ImathExc.h"
#include "ImathVec.h"
#include "ImathLimits.h"
#include "ImathNamespace.h"
#include <math.h>
Go to the source code of this file.
Functions | |
template<class T > | |
bool | extractScaling (const Matrix44< T > &mat, Vec3< T > &scl, bool exc=true) |
template<class T > | |
Matrix44< T > | sansScaling (const Matrix44< T > &mat, bool exc=true) |
template<class T > | |
bool | removeScaling (Matrix44< T > &mat, bool exc=true) |
template<class T > | |
bool | extractScalingAndShear (const Matrix44< T > &mat, Vec3< T > &scl, Vec3< T > &shr, bool exc=true) |
template<class T > | |
Matrix44< T > | sansScalingAndShear (const Matrix44< T > &mat, bool exc=true) |
template<class T > | |
void | sansScalingAndShear (Matrix44< T > &result, const Matrix44< T > &mat, bool exc=true) |
template<class T > | |
bool | removeScalingAndShear (Matrix44< T > &mat, bool exc=true) |
template<class T > | |
bool | extractAndRemoveScalingAndShear (Matrix44< T > &mat, Vec3< T > &scl, Vec3< T > &shr, bool exc=true) |
template<class T > | |
void | extractEulerXYZ (const Matrix44< T > &mat, Vec3< T > &rot) |
template<class T > | |
void | extractEulerZYX (const Matrix44< T > &mat, Vec3< T > &rot) |
template<class T > | |
Quat< T > | extractQuat (const Matrix44< T > &mat) |
template<class T > | |
bool | extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Vec3< T > &r, Vec3< T > &t, bool exc, typename Euler< T >::Order rOrder) |
template<class T > | |
bool | extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Vec3< T > &r, Vec3< T > &t, bool exc=true) |
template<class T > | |
bool | extractSHRT (const Matrix44< T > &mat, Vec3< T > &s, Vec3< T > &h, Euler< T > &r, Vec3< T > &t, bool exc=true) |
template<class T > | |
bool | checkForZeroScaleInRow (const T &scl, const Vec3< T > &row, bool exc=true) |
template<class T > | |
Matrix44< T > | outerProduct (const Vec4< T > &a, const Vec4< T > &b) |
template<class T > | |
Matrix44< T > | rotationMatrix (const Vec3< T > &fromDirection, const Vec3< T > &toDirection) |
template<class T > | |
Matrix44< T > | rotationMatrixWithUpDir (const Vec3< T > &fromDir, const Vec3< T > &toDir, const Vec3< T > &upDir) |
template<class T > | |
void | alignZAxisWithTargetDir (Matrix44< T > &result, Vec3< T > targetDir, Vec3< T > upDir) |
template<class T > | |
Matrix44< T > | computeLocalFrame (const Vec3< T > &p, const Vec3< T > &xDir, const Vec3< T > &normal) |
template<class T > | |
Matrix44< T > | addOffset (const Matrix44< T > &inMat, const Vec3< T > &tOffset, const Vec3< T > &rOffset, const Vec3< T > &sOffset, const Vec3< T > &ref) |
template<class T > | |
Matrix44< T > | computeRSMatrix (bool keepRotateA, bool keepScaleA, const Matrix44< T > &A, const Matrix44< T > &B) |
template<class T > | |
bool | extractScaling (const Matrix33< T > &mat, Vec2< T > &scl, bool exc=true) |
template<class T > | |
Matrix33< T > | sansScaling (const Matrix33< T > &mat, bool exc=true) |
template<class T > | |
bool | removeScaling (Matrix33< T > &mat, bool exc=true) |
template<class T > | |
bool | extractScalingAndShear (const Matrix33< T > &mat, Vec2< T > &scl, T &h, bool exc=true) |
template<class T > | |
Matrix33< T > | sansScalingAndShear (const Matrix33< T > &mat, bool exc=true) |
template<class T > | |
bool | removeScalingAndShear (Matrix33< T > &mat, bool exc=true) |
template<class T > | |
bool | extractAndRemoveScalingAndShear (Matrix33< T > &mat, Vec2< T > &scl, T &shr, bool exc=true) |
template<class T > | |
void | extractEuler (const Matrix33< T > &mat, T &rot) |
template<class T > | |
bool | extractSHRT (const Matrix33< T > &mat, Vec2< T > &s, T &h, T &r, Vec2< T > &t, bool exc=true) |
template<class T > | |
bool | checkForZeroScaleInRow (const T &scl, const Vec2< T > &row, bool exc=true) |
template<class T > | |
Matrix33< T > | outerProduct (const Vec3< T > &a, const Vec3< T > &b) |
template<class T > | |
Matrix44< T > | addOffset (const Matrix44< T > &inMat, const Vec3< T > &tOffset, const Vec3< T > &rOffset, const Vec3< T > &sOffset, const Matrix44< T > &ref) |
template<typename T > | |
IMATH_INTERNAL_NAMESPACE::M44d | procrustesRotationAndTranslation (const IMATH_INTERNAL_NAMESPACE::Vec3< T > *A, const IMATH_INTERNAL_NAMESPACE::Vec3< T > *B, const T *weights, const size_t numPoints, const bool doScaling=false) |
template<typename T > | |
IMATH_INTERNAL_NAMESPACE::M44d | procrustesRotationAndTranslation (const IMATH_INTERNAL_NAMESPACE::Vec3< T > *A, const IMATH_INTERNAL_NAMESPACE::Vec3< T > *B, const size_t numPoints, const bool doScaling=false) |
template<typename T > | |
void | jacobiSVD (const IMATH_INTERNAL_NAMESPACE::Matrix33< T > &A, IMATH_INTERNAL_NAMESPACE::Matrix33< T > &U, IMATH_INTERNAL_NAMESPACE::Vec3< T > &S, IMATH_INTERNAL_NAMESPACE::Matrix33< T > &V, const T tol=IMATH_INTERNAL_NAMESPACE::limits< T >::epsilon(), const bool forcePositiveDeterminant=false) |
template<typename T > | |
void | jacobiSVD (const IMATH_INTERNAL_NAMESPACE::Matrix44< T > &A, IMATH_INTERNAL_NAMESPACE::Matrix44< T > &U, IMATH_INTERNAL_NAMESPACE::Vec4< T > &S, IMATH_INTERNAL_NAMESPACE::Matrix44< T > &V, const T tol=IMATH_INTERNAL_NAMESPACE::limits< T >::epsilon(), const bool forcePositiveDeterminant=false) |
template<typename T > | |
void | jacobiEigenSolver (Matrix33< T > &A, Vec3< T > &S, Matrix33< T > &V, const T tol) |
template<typename T > | |
void | jacobiEigenSolver (Matrix33< T > &A, Vec3< T > &S, Matrix33< T > &V) |
template<typename T > | |
void | jacobiEigenSolver (Matrix44< T > &A, Vec4< T > &S, Matrix44< T > &V, const T tol) |
template<typename T > | |
void | jacobiEigenSolver (Matrix44< T > &A, Vec4< T > &S, Matrix44< T > &V) |
template<typename TM , typename TV > | |
void | maxEigenVector (TM &A, TV &S) |
template<typename TM , typename TV > | |
void | minEigenVector (TM &A, TV &S) |
Variables | |
IMATH_INTERNAL_NAMESPACE_HEADER_ENTER IMATH_EXPORT_CONST M33f | identity33f |
IMATH_EXPORT_CONST M44f | identity44f |
IMATH_EXPORT_CONST M33d | identity33d |
IMATH_EXPORT_CONST M44d | identity44d |
Matrix44<T> addOffset | ( | const Matrix44< T > & | inMat, |
const Vec3< T > & | tOffset, | ||
const Vec3< T > & | rOffset, | ||
const Vec3< T > & | sOffset, | ||
const Vec3< T > & | ref | ||
) |
Matrix44<T> addOffset | ( | const Matrix44< T > & | inMat, |
const Vec3< T > & | tOffset, | ||
const Vec3< T > & | rOffset, | ||
const Vec3< T > & | sOffset, | ||
const Matrix44< T > & | ref | ||
) |
Definition at line 982 of file ImathMatrixAlgo.h.
void alignZAxisWithTargetDir | ( | Matrix44< T > & | result, |
Vec3< T > | targetDir, | ||
Vec3< T > | upDir | ||
) |
Definition at line 860 of file ImathMatrixAlgo.h.
bool checkForZeroScaleInRow | ( | const T & | scl, |
const Vec3< T > & | row, | ||
bool | exc = true |
||
) |
Definition at line 786 of file ImathMatrixAlgo.h.
bool checkForZeroScaleInRow | ( | const T & | scl, |
const Vec2< T > & | row, | ||
bool | exc = true |
||
) |
Definition at line 1283 of file ImathMatrixAlgo.h.
Matrix44< T > computeLocalFrame | ( | const Vec3< T > & | p, |
const Vec3< T > & | xDir, | ||
const Vec3< T > & | normal | ||
) |
Definition at line 938 of file ImathMatrixAlgo.h.
Matrix44< T > computeRSMatrix | ( | bool | keepRotateA, |
bool | keepScaleA, | ||
const Matrix44< T > & | A, | ||
const Matrix44< T > & | B | ||
) |
Definition at line 1015 of file ImathMatrixAlgo.h.
bool extractAndRemoveScalingAndShear | ( | Matrix44< T > & | mat, |
Vec3< T > & | scl, | ||
Vec3< T > & | shr, | ||
bool | exc = true |
||
) |
Definition at line 467 of file ImathMatrixAlgo.h.
bool extractAndRemoveScalingAndShear | ( | Matrix33< T > & | mat, |
Vec2< T > & | scl, | ||
T & | shr, | ||
bool | exc = true |
||
) |
Definition at line 1148 of file ImathMatrixAlgo.h.
Definition at line 1237 of file ImathMatrixAlgo.h.
Definition at line 582 of file ImathMatrixAlgo.h.
Definition at line 629 of file ImathMatrixAlgo.h.
Definition at line 676 of file ImathMatrixAlgo.h.
bool extractScaling | ( | const Matrix44< T > & | mat, |
Vec3< T > & | scl, | ||
bool | exc = true |
||
) |
Definition at line 355 of file ImathMatrixAlgo.h.
bool extractScaling | ( | const Matrix33< T > & | mat, |
Vec2< T > & | scl, | ||
bool | exc = true |
||
) |
Definition at line 1050 of file ImathMatrixAlgo.h.
bool extractScalingAndShear | ( | const Matrix44< T > & | mat, |
Vec3< T > & | scl, | ||
Vec3< T > & | shr, | ||
bool | exc = true |
||
) |
Definition at line 412 of file ImathMatrixAlgo.h.
bool extractScalingAndShear | ( | const Matrix33< T > & | mat, |
Vec2< T > & | scl, | ||
T & | h, | ||
bool | exc = true |
||
) |
Definition at line 1107 of file ImathMatrixAlgo.h.
bool extractSHRT | ( | const Matrix44< T > & | mat, |
Vec3< T > & | s, | ||
Vec3< T > & | h, | ||
Vec3< T > & | r, | ||
Vec3< T > & | t, | ||
bool | exc, | ||
typename Euler< T >::Order | rOrder | ||
) |
Definition at line 729 of file ImathMatrixAlgo.h.
bool extractSHRT | ( | const Matrix44< T > & | mat, |
Vec3< T > & | s, | ||
Vec3< T > & | h, | ||
Vec3< T > & | r, | ||
Vec3< T > & | t, | ||
bool | exc = true |
||
) |
Definition at line 761 of file ImathMatrixAlgo.h.
bool extractSHRT | ( | const Matrix44< T > & | mat, |
Vec3< T > & | s, | ||
Vec3< T > & | h, | ||
Euler< T > & | r, | ||
Vec3< T > & | t, | ||
bool | exc = true |
||
) |
Definition at line 773 of file ImathMatrixAlgo.h.
bool extractSHRT | ( | const Matrix33< T > & | mat, |
Vec2< T > & | s, | ||
T & | h, | ||
T & | r, | ||
Vec2< T > & | t, | ||
bool | exc = true |
||
) |
Definition at line 1259 of file ImathMatrixAlgo.h.
void jacobiEigenSolver | ( | Matrix33< T > & | A, |
Vec3< T > & | S, | ||
Matrix33< T > & | V, | ||
const T | tol | ||
) |
|
inline |
Definition at line 1390 of file ImathMatrixAlgo.h.
void jacobiEigenSolver | ( | Matrix44< T > & | A, |
Vec4< T > & | S, | ||
Matrix44< T > & | V, | ||
const T | tol | ||
) |
|
inline |
Definition at line 1407 of file ImathMatrixAlgo.h.
void jacobiSVD | ( | const IMATH_INTERNAL_NAMESPACE::Matrix33< T > & | A, |
IMATH_INTERNAL_NAMESPACE::Matrix33< T > & | U, | ||
IMATH_INTERNAL_NAMESPACE::Vec3< T > & | S, | ||
IMATH_INTERNAL_NAMESPACE::Matrix33< T > & | V, | ||
const T | tol = IMATH_INTERNAL_NAMESPACE::limits< T >::epsilon() , |
||
const bool | forcePositiveDeterminant = false |
||
) |
void jacobiSVD | ( | const IMATH_INTERNAL_NAMESPACE::Matrix44< T > & | A, |
IMATH_INTERNAL_NAMESPACE::Matrix44< T > & | U, | ||
IMATH_INTERNAL_NAMESPACE::Vec4< T > & | S, | ||
IMATH_INTERNAL_NAMESPACE::Matrix44< T > & | V, | ||
const T | tol = IMATH_INTERNAL_NAMESPACE::limits< T >::epsilon() , |
||
const bool | forcePositiveDeterminant = false |
||
) |
void maxEigenVector | ( | TM & | A, |
TV & | S | ||
) |
void minEigenVector | ( | TM & | A, |
TV & | S | ||
) |
Definition at line 807 of file ImathMatrixAlgo.h.
Definition at line 1305 of file ImathMatrixAlgo.h.
IMATH_INTERNAL_NAMESPACE::M44d procrustesRotationAndTranslation | ( | const IMATH_INTERNAL_NAMESPACE::Vec3< T > * | A, |
const IMATH_INTERNAL_NAMESPACE::Vec3< T > * | B, | ||
const T * | weights, | ||
const size_t | numPoints, | ||
const bool | doScaling = false |
||
) |
IMATH_INTERNAL_NAMESPACE::M44d procrustesRotationAndTranslation | ( | const IMATH_INTERNAL_NAMESPACE::Vec3< T > * | A, |
const IMATH_INTERNAL_NAMESPACE::Vec3< T > * | B, | ||
const size_t | numPoints, | ||
const bool | doScaling = false |
||
) |
bool removeScaling | ( | Matrix44< T > & | mat, |
bool | exc = true |
||
) |
Definition at line 391 of file ImathMatrixAlgo.h.
bool removeScaling | ( | Matrix33< T > & | mat, |
bool | exc = true |
||
) |
Definition at line 1086 of file ImathMatrixAlgo.h.
bool removeScalingAndShear | ( | Matrix44< T > & | mat, |
bool | exc = true |
||
) |
Definition at line 453 of file ImathMatrixAlgo.h.
bool removeScalingAndShear | ( | Matrix33< T > & | mat, |
bool | exc = true |
||
) |
Definition at line 1135 of file ImathMatrixAlgo.h.
Matrix44< T > rotationMatrix | ( | const Vec3< T > & | fromDirection, |
const Vec3< T > & | toDirection | ||
) |
Definition at line 817 of file ImathMatrixAlgo.h.
Matrix44< T > rotationMatrixWithUpDir | ( | const Vec3< T > & | fromDir, |
const Vec3< T > & | toDir, | ||
const Vec3< T > & | upDir | ||
) |
Definition at line 827 of file ImathMatrixAlgo.h.
Definition at line 369 of file ImathMatrixAlgo.h.
Definition at line 1064 of file ImathMatrixAlgo.h.
Definition at line 426 of file ImathMatrixAlgo.h.
void sansScalingAndShear | ( | Matrix44< T > & | result, |
const Matrix44< T > & | mat, | ||
bool | exc = true |
||
) |
Definition at line 441 of file ImathMatrixAlgo.h.
Definition at line 1120 of file ImathMatrixAlgo.h.
IMATH_EXPORT_CONST M33d identity33d |
Definition at line 69 of file ImathMatrixAlgo.h.
Definition at line 67 of file ImathMatrixAlgo.h.
IMATH_EXPORT_CONST M44d identity44d |
Definition at line 70 of file ImathMatrixAlgo.h.
IMATH_EXPORT_CONST M44f identity44f |
Definition at line 68 of file ImathMatrixAlgo.h.