KrisLibrary
1.0.0
|
Euler angle 3D rotation parameterization. More...
#include <rotation.h>
Public Member Functions | |
EulerAngleRotation (const EulerAngleRotation &) | |
EulerAngleRotation (const Vector3 &) | |
EulerAngleRotation (Real a, Real b, Real c) | |
void | setIdentity () |
bool | setMatrix (int u, int v, int w, const Matrix3 &) |
bool | setMatrixXYZ (const Matrix3 &) |
bool | setMatrixXZY (const Matrix3 &) |
bool | setMatrixYZX (const Matrix3 &) |
bool | setMatrixYXZ (const Matrix3 &) |
bool | setMatrixZXY (const Matrix3 &) |
bool | setMatrixZYX (const Matrix3 &) |
void | getMatrix (int u, int v, int w, Matrix3 &) const |
void | getMatrixXYZ (Matrix3 &) const |
void | getMatrixXZY (Matrix3 &) const |
void | getMatrixYZY (Matrix3 &) const |
void | getMatrixYXZ (Matrix3 &) const |
void | getMatrixZXY (Matrix3 &) const |
void | getMatrixZYX (Matrix3 &) const |
Public Member Functions inherited from Math3D::Vector3 | |
Vector3 (const Vector3 &) | |
Vector3 (Real x) | |
Vector3 (Real x, Real y, Real z) | |
Vector3 (const Real *data) | |
bool | operator== (const Vector3 &) const |
bool | operator!= (const Vector3 &) const |
const Vector3 & | operator= (const Vector3 &) |
void | operator+= (const Vector3 &) |
void | operator-= (const Vector3 &) |
void | operator*= (Real) |
void | operator/= (Real) |
Real & | operator[] (int) |
const Real & | operator[] (int) const |
operator Real * () | |
operator const Real * () const | |
void | add (const Vector3 &a, const Vector3 &b) |
void | sub (const Vector3 &a, const Vector3 &b) |
void | mul (const Vector3 &a, Real b) |
void | div (const Vector3 &a, Real b) |
void | madd (const Vector3 &a, Real b) |
Real | dot (const Vector3 &a) const |
Real | distance (const Vector3 &a) const |
Real | distanceSquared (const Vector3 &a) const |
Real | norm () const |
Real | normSquared () const |
Real | length () const |
= norm | |
Real | minElement (int *index=NULL) const |
Real | maxElement (int *index=NULL) const |
Real | minAbsElement (int *index=NULL) const |
Real | maxAbsElement (int *index=NULL) const |
void | set (const Vector3 &) |
void | set (Real x) |
void | set (Real x, Real y, Real z) |
void | set (const Real *data) |
void | setZero () |
void | setNegative (const Vector3 &) |
void | setCross (const Vector3 &, const Vector3 &) |
void | setNormalized (const Vector3 &) |
void | setProjection (const Vector3 &, const Vector3 &) |
void | setMinimum (const Vector3 &, const Vector3 &) |
void | setMinimum (const Vector3 &) |
void | setMaximum (const Vector3 &, const Vector3 &) |
void | setMaximum (const Vector3 &) |
void | get (Vector3 &) const |
void | get (Real &x, Real &y, Real &z) const |
void | get (Real data[3]) const |
void | getNegative (Vector3 &) const |
void | getNormalized (Vector3 &) const |
void | getOrthogonalBasis (Vector3 &yb, Vector3 &zb) const |
calculates two unit vectors orthogonal to this vector (and positively oriented) | |
void | inplaceNegative () |
void | inplaceMul (Real) |
void | inplaceDiv (Real) |
void | inplaceNormalize () |
bool | isZero (Real eps=Zero) const |
bool | isEqual (const Vector3 &, Real eps=Zero) const |
bool | Read (File &) |
bool | Write (File &) const |
Additional Inherited Members | |
Public Attributes inherited from Math3D::Vector3 | |
union { | |
Real data [3] | |
struct { | |
Real x | |
Real y | |
Real z | |
} | |
}; | |
Euler angle 3D rotation parameterization.
The euler angles a,b,c are stored respectively in the x,y,z fields.
The resulting rotation matrix is Ru(a)Rv(b)Rw(c) where u,v,w are rotation axes, specified in set/getMatrixUVW().
bool Math3D::EulerAngleRotation::setMatrix | ( | int | u, |
int | v, | ||
int | w, | ||
const Matrix3 & | m | ||
) |
set/get MatrixUVW defines the resulting matrix as RU(a)RV(b)RW(c) where u,v,w are the axis names
References Math::Clamp(), Math3D::Matrix3::data, Math::IsFinite(), Math::pythag_leg(), Math3D::Matrix3::setCrossProduct(), Math3D::Matrix3::setRotateX(), Math3D::Matrix3::setRotateY(), Math3D::Matrix3::setRotateZ(), Math::Sign(), and Math::Sinc().