Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | Friends | List of all members
BIAS::RMatrixBase Class Reference

Implements a 3D rotation matrix. More...

#include <Base/Geometry/RMatrixBase.hh>

+ Inheritance diagram for BIAS::RMatrixBase:
+ Collaboration diagram for BIAS::RMatrixBase:

Public Member Functions

bool Check (const double eps=std::numeric_limits< double >::epsilon(), const bool verbose=false) const
 Check if this is a rotation matrix, i.e. More...
 
virtual void EnforceConstraints ()
 Enforce orthonormality constraint on rotation matrix and sets determinant to +1. More...
 
void GetAbsMaxMin (ROTATION_MATRIX_TYPE &max, ROTATION_MATRIX_TYPE &min) const
 
std::string GetCheckFailureReason (const double eps=std::numeric_limits< double >::epsilon()) const
 Return the reason for the constraint check failure in a human readable string. More...
 
void GetColumn (const unsigned int col, Vector3< ROTATION_MATRIX_TYPE > &r) const
 extract one column ('Spalte') from this matrix (for convenience) More...
 
BIAS::Vector3
< ROTATION_MATRIX_TYPE > 
GetColumn (const unsigned int col) const
 
ROTATION_MATRIX_TYPE * GetData ()
 
const ROTATION_MATRIX_TYPE * GetData () const
 
ROTATION_MATRIX_TYPE GetDeterminant () const
 returns the Determinant |A| of this More...
 
int GetInverse (Matrix3x3< ROTATION_MATRIX_TYPE > &inv) const
 Matrix inversion: inverts this and stores resulty in argument inv. More...
 
ROTATION_MATRIX_TYPE GetMax () const
 
void GetMaxMin (ROTATION_MATRIX_TYPE &max, ROTATION_MATRIX_TYPE &min) const
 return biggest and smallest entry More...
 
ROTATION_MATRIX_TYPE GetMin () const
 
unsigned GetNumElements () const
 
int GetQuaternion (Quaternion< ROTATION_MATRIX_TYPE > &quat) const
 Calculates quaternion representation for this rotation matrix. More...
 
ROTATION_MATRIX_TYPE GetRotationAngle () const
 Interface for angle component of GetRotationAxisAngle() More...
 
int GetRotationAnglesXYZ (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order XYZ. More...
 
int GetRotationAnglesXYZ (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order XYZ. More...
 
int GetRotationAnglesXZY (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order XZY. More...
 
int GetRotationAnglesXZY (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order XZY. More...
 
int GetRotationAnglesYXZ (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order YXZ. More...
 
int GetRotationAnglesYXZ (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order YXZ. More...
 
int GetRotationAnglesYZX (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order YZX. More...
 
int GetRotationAnglesYZX (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order YZX. More...
 
int GetRotationAnglesZXY (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order ZXY. More...
 
int GetRotationAnglesZXY (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order ZXY. More...
 
int GetRotationAnglesZYX (double &PhiX, double &PhiY, double &PhiZ) const
 Get Euler angles for this rotation matrix in order ZYX. More...
 
int GetRotationAnglesZYX (Vector3< ROTATION_MATRIX_TYPE > &r) const
 Get Euler angles for this rotation matrix in order ZYX. More...
 
BIAS::Vector3
< ROTATION_MATRIX_TYPE > 
GetRotationAxis () const
 Interface for axis component of GetRotationAxisAngle() More...
 
int GetRotationAxisAngle (Vector3< ROTATION_MATRIX_TYPE > &axis, ROTATION_MATRIX_TYPE &angle) const
 Calculates angle and rotation axis representation for this rotation matrix. More...
 
int GetRotationAxisAngle (Vector3< ROTATION_MATRIX_TYPE > &w) const
 Calculates the angle * rotation axis representation for this rotation matrix (modified Rodrigues vector) More...
 
void GetRow (const unsigned int row, Vector3< ROTATION_MATRIX_TYPE > &r) const
 extract one row ('Zeile') from ths matrix (for convenience) More...
 
Vector3< ROTATION_MATRIX_TYPE > GetRow (const unsigned int row) const
 
int InvertIP ()
 In place matrix conversion. More...
 
bool IsIdentity (const ROTATION_MATRIX_TYPEeps=std::numeric_limits< ROTATION_MATRIX_TYPE >::epsilon()) const
 
bool IsZero (const ROTATION_MATRIX_TYPEeps=std::numeric_limits< ROTATION_MATRIX_TYPE >::epsilon()) const
 
bool Load (const std::string &fname)
 
void MakeSymmetric ()
 
void Mult (const Vector3< ROTATION_MATRIX_TYPE > &argvec, Vector3< ROTATION_MATRIX_TYPE > &destvec) const
 matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec More...
 
void Mult (const Matrix3x3< ROTATION_MATRIX_TYPE > &argmat, Matrix3x3< ROTATION_MATRIX_TYPE > &destmat) const
 matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More...
 
void Mult (const Matrix3x4< ROTATION_MATRIX_TYPE > &argmat, Matrix3x4< ROTATION_MATRIX_TYPE > &destmat) const
 
ROTATION_MATRIX_TYPE Normalize ()
 divide this by biggest absolute entry, returns biggest entry More...
 
double NormFrobenius () const
 
ROTATION_MATRIX_TYPE NormL1 () const
 
double NormL2 () const
 
bool operator!= (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg) const
 
Matrix3x3< ROTATION_MATRIX_TYPE > & operator*= (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< ROTATION_MATRIX_TYPE > & operator*= (const ROTATION_MATRIX_TYPE &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< ROTATION_MATRIX_TYPE > & operator+= (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg)
 
Matrix3x3< ROTATION_MATRIX_TYPE > & operator-= (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg)
 
Matrix3x3< ROTATION_MATRIX_TYPE > & operator/= (const ROTATION_MATRIX_TYPE &arg)
 
bool operator== (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg) const
 
ROTATION_MATRIX_TYPE * operator[] (const unsigned row)
 
const ROTATION_MATRIX_TYPE * operator[] (const unsigned row) const
 
 RMatrixBase ()
 Constructor setting matrix to identity. More...
 
 RMatrixBase (const MatrixInitType &i)
 Constructor setting matrix to identity or zero. More...
 
 RMatrixBase (const RMatrixBase &r)
 Copy constructor from rotation matrix. More...
 
 RMatrixBase (const Matrix3x3< ROTATION_MATRIX_TYPE > &mat)
 Copy constructor from 3x3 matrix. More...
 
 RMatrixBase (const Vector3< ROTATION_MATRIX_TYPE > w, const ROTATION_MATRIX_TYPE phi)
 Initialization from rotation axis w and angle phi (in rad) using Rodrigues' formula. More...
 
 RMatrixBase (const TNT::Matrix< ROTATION_MATRIX_TYPE > &r)
 Copy constructor from 3x3 matrix. More...
 
bool Save (const std::string &fname) const
 
void Scale (const ROTATION_MATRIX_TYPE &scalar, Matrix3x3< ROTATION_MATRIX_TYPE > &destmat) const
 scalar-matrix multiplication More...
 
void Set (const Vector3< ROTATION_MATRIX_TYPE > &w, const ROTATION_MATRIX_TYPE phi)
 Set from rotation axis w and angle phi (in rad) More...
 
void SetAsCrossProductMatrix (const Vector3< ROTATION_MATRIX_TYPE > &vec)
 Sets matrix from vector as cross product matrix of this vector. More...
 
void SetAsCrossProductMatrix (const ROTATION_MATRIX_TYPE &x, const ROTATION_MATRIX_TYPE &y, const ROTATION_MATRIX_TYPE &z)
 Sets matrix from vector as cross product matrix of a vector. More...
 
void SetColumn (const unsigned int col, const Vector3< ROTATION_MATRIX_TYPE > &c)
 
void SetFromAxisAngle (Vector3< ROTATION_MATRIX_TYPE > w)
 Set from rotation axis * angle (modified Rodrigues vector) More...
 
void SetFromColumnVectors (const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v0, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v1, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v2)
 set this matrix from 3 vectors each representating a column More...
 
void SetFromHV (const BIAS::Vector3< ROTATION_MATRIX_TYPE > &xh, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &vy)
 Set rotation matrix from two vectors from an orthonormal basis. More...
 
int SetFromOriUp (BIAS::Vector3< ROTATION_MATRIX_TYPE > ori, BIAS::Vector3< ROTATION_MATRIX_TYPE > up)
 Set rotation matrix from orientation and up vector. More...
 
int SetFromOriUpGL (BIAS::Vector3< ROTATION_MATRIX_TYPE > ori, BIAS::Vector3< ROTATION_MATRIX_TYPE > up)
 Set rotation matrix from orientation and up vector. More...
 
void SetFromOrthogonalBasis (const BIAS::Vector3< ROTATION_MATRIX_TYPE > &ex, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &ey, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &ez)
 
int SetFromQuaternion (const Quaternion< ROTATION_MATRIX_TYPE > &q)
 Set rotation matrix from a quaternion. More...
 
void SetFromRowVectors (const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v0, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v1, const BIAS::Vector3< ROTATION_MATRIX_TYPE > &v2)
 set this matrix from 3 vectors, each representating a row More...
 
void SetFromVector (const TNT::Vector< ROTATION_MATRIX_TYPE > &vec)
 sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector More...
 
void SetIdentity ()
 set the elements of this matrix to the identity matrix (possibly overriding the inherited method) More...
 
void SetRow (const unsigned int row, const Vector3< ROTATION_MATRIX_TYPE > &r)
 
void SetXYZ (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order XYZ. More...
 
void SetXYZ (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order XYZ from vector. More...
 
void SetXZY (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order XZY. More...
 
void SetXZY (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order XZY from vector. More...
 
void SetYXZ (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order YXZ. More...
 
void SetYXZ (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order YXZ from vector. More...
 
void SetYZX (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order YZX. More...
 
void SetYZX (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order YZX from vector. More...
 
void SetZero ()
 Setting to zero is forbidden since the zero matrix is not a valid rotation matrix! More...
 
void SetZXY (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order ZXY. More...
 
void SetZXY (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order ZXY from vector. More...
 
void SetZYX (ROTATION_MATRIX_TYPE PhiX, ROTATION_MATRIX_TYPE PhiY, ROTATION_MATRIX_TYPE PhiZ)
 Set Euler angles (in rad) in order ZYX. More...
 
void SetZYX (const Vector3< ROTATION_MATRIX_TYPE > &r)
 Set Euler angles (in rad) in order ZYX from vector. More...
 
ROTATION_MATRIX_TYPE Trace () const
 return the trace of the matrix More...
 
Matrix3x3< ROTATION_MATRIX_TYPE > Transpose () const
 returns transposed matrix tested 12.06.2002 More...
 
void Transpose (const Matrix3x3< ROTATION_MATRIX_TYPE > &arg)
 sets this as transposed arg, fw More...
 
void TransposedMult (const Vector3< ROTATION_MATRIX_TYPE > &argvec, Vector3< ROTATION_MATRIX_TYPE > &destvec) const
 multiplies matrix from left with transposed argvec, resulting in transposed destvec More...
 
void TransposeIP ()
 tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8 More...
 
virtual ~RMatrixBase ()
 

Protected Attributes

ROTATION_MATRIX_TYPE Data_ [9]
 

Friends

bool BIASGeometryBase_EXPORT operator== (const RMatrixBase &left, const RMatrixBase &right)
 

Detailed Description

Implements a 3D rotation matrix.

Author
frahm, woelk
Examples:
ExampleEParametrization.cpp, ExampleQuaternion.cpp, ExampleRMatrix.cpp, ExampleTriangulateOptimal.cpp, and InvestigateEpipoleEstimation.cpp.

Definition at line 44 of file RMatrixBase.hh.

Constructor & Destructor Documentation

RMatrixBase::RMatrixBase ( )

Constructor setting matrix to identity.

Definition at line 53 of file RMatrixBase.cpp.

Referenced by Set().

RMatrixBase::RMatrixBase ( const MatrixInitType i)
explicit

Constructor setting matrix to identity or zero.

Deprecated:
Only identity is allowed here!
Author
koeser

Definition at line 74 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

RMatrixBase::RMatrixBase ( const RMatrixBase r)

Copy constructor from rotation matrix.

Definition at line 59 of file RMatrixBase.cpp.

References Check(), EnforceConstraints(), and GetCheckFailureReason().

RMatrixBase::RMatrixBase ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  mat)

Copy constructor from 3x3 matrix.

Attention
Orthonormality of matrix is enforced automatically!

Definition at line 104 of file RMatrixBase.cpp.

References Check(), EnforceConstraints(), and GetCheckFailureReason().

RMatrixBase::RMatrixBase ( const Vector3< ROTATION_MATRIX_TYPE >  w,
const ROTATION_MATRIX_TYPE  phi 
)

Initialization from rotation axis w and angle phi (in rad) using Rodrigues' formula.

Definition at line 119 of file RMatrixBase.cpp.

References Set().

RMatrixBase::RMatrixBase ( const TNT::Matrix< ROTATION_MATRIX_TYPE > &  r)
explicit

Copy constructor from 3x3 matrix.

Attention
Orthonormality of matrix is enforced automatically!

Definition at line 85 of file RMatrixBase.cpp.

References Check(), EnforceConstraints(), GetCheckFailureReason(), TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().

RMatrixBase::~RMatrixBase ( )
virtual

Definition at line 126 of file RMatrixBase.cpp.

Member Function Documentation

bool RMatrixBase::Check ( const double  eps = std::numeric_limits<double>::epsilon(),
const bool  verbose = false 
) const

Check if this is a rotation matrix, i.e.

if the determinant is +1 and the columns are orthonormal

Parameters
epsNumerical limit for constraint evaluation
verboseShow reason in case of failure

Definition at line 891 of file RMatrixBase.cpp.

References BIAS::Equal(), GetCheckFailureReason(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetColumn(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetDeterminant(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormL2().

Referenced by GetQuaternion(), RMatrixBase(), SetFromHV(), and SetFromOrthogonalBasis().

void RMatrixBase::EnforceConstraints ( )
virtual
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetAbsMaxMin ( ROTATION_MATRIX_TYPE &  max,
ROTATION_MATRIX_TYPE &  min 
) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
std::string RMatrixBase::GetCheckFailureReason ( const double  eps = std::numeric_limits<double>::epsilon()) const

Return the reason for the constraint check failure in a human readable string.

Parameters
epsNumerical limit for constraint evaluation
Returns
empty string when check succeeds, error message otherwise

Definition at line 919 of file RMatrixBase.cpp.

References BIAS::Equal(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetColumn(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetDeterminant(), BIAS::Vector3< T >::NormL2(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormL2(), and BIAS::Vector3< T >::ScalarProduct().

Referenced by Check(), GetQuaternion(), RMatrixBase(), SetFromHV(), and SetFromOrthogonalBasis().

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetColumn ( const unsigned int  col,
Vector3< ROTATION_MATRIX_TYPE > &  r 
) const
inherited

extract one column ('Spalte') from this matrix (for convenience)

Examples:
ExampleFMatrix.cpp.

Referenced by Check(), EnforceConstraints(), and GetCheckFailureReason().

BIAS::Vector3<ROTATION_MATRIX_TYPE > BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetColumn ( const unsigned int  col) const
inlineinherited

Definition at line 202 of file Matrix3x3.hh.

ROTATION_MATRIX_TYPE * BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetData ( )
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 99 of file Matrix3x3.hh.

Referenced by SetFromQuaternion().

const ROTATION_MATRIX_TYPE * BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetData ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 103 of file Matrix3x3.hh.

ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetDeterminant ( ) const
inherited

returns the Determinant |A| of this

Author
grest
Examples:
ExampleFMatrix.cpp.

Referenced by Check(), BIAS::RMatrix::EnforceConstraints(), EnforceConstraints(), and GetCheckFailureReason().

int BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetInverse ( Matrix3x3< ROTATION_MATRIX_TYPE > &  inv) const
inherited

Matrix inversion: inverts this and stores resulty in argument inv.

Returns -1 if determinant is zero, 0 on success.

Author
woelk 07/2005
ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetMax ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetMaxMin ( ROTATION_MATRIX_TYPE &  max,
ROTATION_MATRIX_TYPE &  min 
) const
inherited

return biggest and smallest entry

Author
woelk 08/2004
ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetMin ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
unsigned BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetNumElements ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 107 of file Matrix3x3.hh.

int RMatrixBase::GetQuaternion ( Quaternion< ROTATION_MATRIX_TYPE > &  quat) const
ROTATION_MATRIX_TYPE RMatrixBase::GetRotationAngle ( ) const

Interface for angle component of GetRotationAxisAngle()

Definition at line 543 of file RMatrixBase.cpp.

References GetRotationAxisAngle().

int RMatrixBase::GetRotationAnglesXYZ ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order XYZ.

Attention
Representation is not unique and has singularities at +-pi/2. Assume for example (*this) = Rx * Ry * Rz, then we have either Euler angles in order 1. x, 2. y, 3. z and moving axes or in order 1. z, 2. y, 3. x and fixed axes.
Author
woelk 01/2003
Examples:
ExampleAutoCalib.cpp, ExampleFMatrix.cpp, and ExampleRMatrix.cpp.

Definition at line 575 of file RMatrixBase.cpp.

Referenced by BIAS::PMatrixEstimation::AutoCalib_(), BIAS::GenGroundTruth::CreateMatches(), BIAS::EuclideanTransf3D::GetAnglesXYZ(), BIAS::CamPoseCalib::GetResult(), BIAS::OnlyRotationControl::LeftMouseDoubleClicked(), BIAS::OnlyRotationControl::LeftMouseMoved(), BIAS::OnlyRotationControl::MiddleMouseMoved(), BIAS::ProjectionParametersIO::ReadFromBBCStream(), BIAS::OnlyRotationControl::RightMouseMoved(), BIAS::GenSynthMatchesRig::Setup_(), and BIAS::CamPoseCalib::TransformVec().

int BIAS::RMatrixBase::GetRotationAnglesXYZ ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order XYZ.

See Also
GetRotationAnglesXYZ(double&, double&, double&)

Definition at line 310 of file RMatrixBase.hh.

int RMatrixBase::GetRotationAnglesXZY ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order XZY.

Attention
Representation is not unique and has singularities at +-pi/2. Rotation order is 1. x, 2. z, 3. y with moving axes or
  1. y, 2. z, 3. x with fixed axes.
Author
esquivel 2014
Examples:
ExampleRMatrix.cpp.

Definition at line 683 of file RMatrixBase.cpp.

int BIAS::RMatrixBase::GetRotationAnglesXZY ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order XZY.

See Also
GetRotationAnglesXZY(double&, double&, double&)

Definition at line 373 of file RMatrixBase.hh.

int RMatrixBase::GetRotationAnglesYXZ ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order YXZ.

Attention
Representation is not unique and has singularities at +-pi/2. Rotation order is 1. y, 2. x, 3. z with moving axes or
  1. z, 2. x, 3. y with fixed axes.
Author
haase 2007
Examples:
ExampleRMatrix.cpp.

Definition at line 656 of file RMatrixBase.cpp.

int BIAS::RMatrixBase::GetRotationAnglesYXZ ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order YXZ.

See Also
GetRotationAnglesYXZ(double&, double&, double&)

Definition at line 349 of file RMatrixBase.hh.

int RMatrixBase::GetRotationAnglesYZX ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order YZX.

Attention
Representation is not unique and has singularities at +-pi/2. Rotation order is 1. y, 2. z, 3. x with moving axes or
  1. x, 2. z, 3. y with fixed axes.
Author
esquivel 2014
Examples:
ExampleRMatrix.cpp.

Definition at line 710 of file RMatrixBase.cpp.

int BIAS::RMatrixBase::GetRotationAnglesYZX ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order YZX.

See Also
GetRotationAnglesYZX(double&, double&, double&)

Definition at line 361 of file RMatrixBase.hh.

int RMatrixBase::GetRotationAnglesZXY ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order ZXY.

Attention
Representation is not unique and has singularities at +-pi/2. Rotation order is 1. z, 2. x, 3. y with moving axes or
  1. y, 2. x, 3. z with fixed axes.
Author
haase 2007
Examples:
ExampleRMatrix.cpp.

Definition at line 629 of file RMatrixBase.cpp.

int BIAS::RMatrixBase::GetRotationAnglesZXY ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order ZXY.

See Also
GetRotationAnglesZXY(double&, double&, double&)

Definition at line 337 of file RMatrixBase.hh.

int RMatrixBase::GetRotationAnglesZYX ( double &  PhiX,
double &  PhiY,
double &  PhiZ 
) const

Get Euler angles for this rotation matrix in order ZYX.

Attention
Representation is not unique and has singularities at +-pi/2. Assume for example (*this) = Rz * Ry * Rx, then we have either Euler angles in order 1. z, 2. y, 3. x and moving axes or in order 1. x, 2. y, 3. z and fixed axes.
Author
woelk 01/2003
Examples:
ExampleRMatrix.cpp.

Definition at line 602 of file RMatrixBase.cpp.

Referenced by BIAS::DPPanTiltControlExtended::CompensateHeliMovement(), and BIAS::CovTransformPose::Transform_().

int BIAS::RMatrixBase::GetRotationAnglesZYX ( Vector3< ROTATION_MATRIX_TYPE > &  r) const
inline

Get Euler angles for this rotation matrix in order ZYX.

See Also
GetRotationAnglesZYX(double&, double&, double&)

Definition at line 324 of file RMatrixBase.hh.

Vector3< ROTATION_MATRIX_TYPE > RMatrixBase::GetRotationAxis ( ) const

Interface for axis component of GetRotationAxisAngle()

Definition at line 526 of file RMatrixBase.cpp.

References GetRotationAxisAngle().

int RMatrixBase::GetRotationAxisAngle ( Vector3< ROTATION_MATRIX_TYPE > &  axis,
ROTATION_MATRIX_TYPE &  angle 
) const
int RMatrixBase::GetRotationAxisAngle ( Vector3< ROTATION_MATRIX_TYPE > &  w) const

Calculates the angle * rotation axis representation for this rotation matrix (modified Rodrigues vector)

Author
evers

Definition at line 560 of file RMatrixBase.cpp.

References BIAS::Quaternion< T >::GetAxisAngle(), GetQuaternion(), and BIAS::Vector3< T >::Normalize().

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetRow ( const unsigned int  row,
Vector3< ROTATION_MATRIX_TYPE > &  r 
) const
inherited

extract one row ('Zeile') from ths matrix (for convenience)

Vector3<ROTATION_MATRIX_TYPE > BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetRow ( const unsigned int  row) const
inlineinherited

Definition at line 196 of file Matrix3x3.hh.

int BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::InvertIP ( )
inherited

In place matrix conversion.

Returns -1 if determinant is zero, 0 on success.

Author
woelk 07/2005
bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::IsIdentity ( const ROTATION_MATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 12/2007 (c) www.vision-n.de
Examples:
ExampleFMatrix.cpp.
bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::IsZero ( const ROTATION_MATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Load ( const std::string &  fname)
inherited
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::MakeSymmetric ( )
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Mult ( const Vector3< ROTATION_MATRIX_TYPE > &  argvec,
Vector3< ROTATION_MATRIX_TYPE > &  destvec 
) const
inlineinherited

matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec

Author
Ingo Thomsen, Jan Woetzel untested (04/17/2002)
Examples:
ExampleDrawLines.cpp, and ExampleProjectionMapping.cpp.
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Mult ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  argmat,
Matrix3x3< ROTATION_MATRIX_TYPE > &  destmat 
) const
inlineinherited

matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat

Author
Ingo Thomsen, Jan Woetzel untested (04/17/2002)
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Mult ( const Matrix3x4< ROTATION_MATRIX_TYPE > &  argmat,
Matrix3x4< ROTATION_MATRIX_TYPE > &  destmat 
) const
inherited
Author
woelk 06 2003
ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Normalize ( )
inherited

divide this by biggest absolute entry, returns biggest entry

Author
woelk 11/2007 (c) www.vision-n.de
double BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormFrobenius ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormL1 ( ) const
inlineinherited
double BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormL2 ( ) const
inlineinherited

Definition at line 255 of file Matrix3x3.hh.

Referenced by Check(), EnforceConstraints(), and GetCheckFailureReason().

bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator!= ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg) const
inlineinherited

Definition at line 274 of file Matrix3x3.hh.

Matrix3x3<ROTATION_MATRIX_TYPE >& BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator*= ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg)
inlineinherited

woelk 11/2007 (c) www.vision-n.de

Definition at line 143 of file Matrix3x3.hh.

References BIAS::Matrix3x3< T >::Mult().

Matrix3x3<ROTATION_MATRIX_TYPE >& BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator*= ( const ROTATION_MATRIX_TYPE &  arg)
inherited

woelk 11/2007 (c) www.vision-n.de

Matrix3x3<ROTATION_MATRIX_TYPE >& BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator+= ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<ROTATION_MATRIX_TYPE >& BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator-= ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<ROTATION_MATRIX_TYPE >& BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator/= ( const ROTATION_MATRIX_TYPE &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator== ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg) const
inherited
ROTATION_MATRIX_TYPE * BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator[] ( const unsigned  row)
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 91 of file Matrix3x3.hh.

const ROTATION_MATRIX_TYPE * BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::operator[] ( const unsigned  row) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 95 of file Matrix3x3.hh.

bool BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Save ( const std::string &  fname) const
inherited
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Scale ( const ROTATION_MATRIX_TYPE &  scalar,
Matrix3x3< ROTATION_MATRIX_TYPE > &  destmat 
) const
inlineinherited

scalar-matrix multiplication

void RMatrixBase::Set ( const Vector3< ROTATION_MATRIX_TYPE > &  w,
const ROTATION_MATRIX_TYPE  phi 
)
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetAsCrossProductMatrix ( const Vector3< ROTATION_MATRIX_TYPE > &  vec)
inherited

Sets matrix from vector as cross product matrix of this vector.

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetAsCrossProductMatrix ( const ROTATION_MATRIX_TYPE &  x,
const ROTATION_MATRIX_TYPE &  y,
const ROTATION_MATRIX_TYPE &  z 
)
inherited

Sets matrix from vector as cross product matrix of a vector.

with components (x, y, z)

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetColumn ( const unsigned int  col,
const Vector3< ROTATION_MATRIX_TYPE > &  c 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de

Referenced by EnforceConstraints().

void RMatrixBase::SetFromAxisAngle ( Vector3< ROTATION_MATRIX_TYPE >  w)
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromColumnVectors ( const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v0,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v1,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v2 
)
inherited

set this matrix from 3 vectors each representating a column

Referenced by SetFromOriUp(), and SetFromOriUpGL().

void RMatrixBase::SetFromHV ( const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  xh,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  vy 
)

Set rotation matrix from two vectors from an orthonormal basis.

Parameters
xhrepresents the first base vector and is left unchanged
vyshould be orthogonal to xh, it is orthogonalized otherwise

You can think of this routine as computing R from an image plane given by two (usually orthogonal) base vectors. If the given base vectors are not orthogonal, xh is kept and yv is orthogonalized appropriately.

Author
jw

Definition at line 829 of file RMatrixBase.cpp.

References Check(), BIAS::Vector3< T >::CrossProduct(), EnforceConstraints(), GetCheckFailureReason(), and BIAS::Vector3< T >::GetNormalized().

int RMatrixBase::SetFromOriUp ( BIAS::Vector3< ROTATION_MATRIX_TYPE >  ori,
BIAS::Vector3< ROTATION_MATRIX_TYPE >  up 
)

Set rotation matrix from orientation and up vector.

Definition at line 874 of file RMatrixBase.cpp.

References BIAS::Vector3< T >::CrossProduct(), BIAS::Vector3< T >::Normalize(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromColumnVectors().

Referenced by BIAS::Pose::LookAt().

int RMatrixBase::SetFromOriUpGL ( BIAS::Vector3< ROTATION_MATRIX_TYPE >  ori,
BIAS::Vector3< ROTATION_MATRIX_TYPE >  up 
)

Set rotation matrix from orientation and up vector.

Note
This is openGL conform, similar to gluLookAt(), i.e. if ori is (0,0,-1) and up is (0,1,0) the resulting matrix is identity.
Author
grest 12/2005

Definition at line 856 of file RMatrixBase.cpp.

References BIAS::Vector3< T >::CrossProduct(), BIAS::Vector3< T >::Normalize(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromColumnVectors().

void RMatrixBase::SetFromOrthogonalBasis ( const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  ex,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  ey,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  ez 
)
int RMatrixBase::SetFromQuaternion ( const Quaternion< ROTATION_MATRIX_TYPE > &  q)
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromRowVectors ( const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v0,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v1,
const BIAS::Vector3< ROTATION_MATRIX_TYPE > &  v2 
)
inherited

set this matrix from 3 vectors, each representating a row

Referenced by SetFromOrthogonalBasis().

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromVector ( const TNT::Vector< ROTATION_MATRIX_TYPE > &  vec)
inherited

sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector

Author
Ingo Thomsen, Jan Woetzel
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetIdentity ( )
inlineinherited

set the elements of this matrix to the identity matrix (possibly overriding the inherited method)

Author
Ingo Thomsen, Jan Woetzel
Date
04/17/2002 untested
Examples:
ExampleAutoCalib.cpp, ExampleFMatrix.cpp, and InvestigateEpipoleEstimation.cpp.

Referenced by Set(), and SetFromAxisAngle().

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetRow ( const unsigned int  row,
const Vector3< ROTATION_MATRIX_TYPE > &  r 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void RMatrixBase::SetXYZ ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order XYZ.

Set angles either in order 1. x, 2. y, 3. z and moving axes or in order 1. z, 2. y, 3. x and fixed axes. Angles are measured as in mathematics (counter-clockwise), i.e. Set(x, 0, 0) results in the following matrix:

| 1 0 0 | | 0 cos(x) -sin(x) | | 0 sin(x) cos(x) |

(*this) = Rx*Ry*Rz =

| c(y)c(z) -c(y)s(z) s(y) | | c(z)s(x)s(y)+c(x)s(z) c(x)c(z)-s(x)s(y)s(z) -c(y)s(x) | | -c(x)c(z)s(y)+s(x)s(z) c(z)s(x)+c(x)s(y)s(z) c(x)c(y) |

with s(g) = sin(g), c(g) = cos(g), x = PhiX, y = PhiY and z = PhiZ

Author
frahm, woelk
Examples:
ExampleAutoCalib.cpp, ExampleCamera.cpp, ExampleCamPoseCalib.cpp, ExampleDrawLines.cpp, ExampleEParametrization.cpp, ExampleFMatrix.cpp, ExampleProjectionParametersPerspective2.cpp, ExampleProjectionParametersProjective.cpp, ExampleRMatrix.cpp, ExampleTriangulate.cpp, ExampleTriangulateOptimal.cpp, ExampleVRMLOutProjection.cpp, InvestigateEpipoleEstimation.cpp, and InvestigatePRelations.cpp.

Definition at line 131 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::CamPoseCalib::ApplySolution_(), BIAS::PMatrixEstimation::AutoCalib_(), BIAS::ProjectionParametersFactory::Create(), BIAS::GenGroundTruth::CreateMatches(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::ProjectionError::Init(), BIAS::PMatrixBase::Parametrization2R_(), BIAS::FMatrixBase::Set(), BIAS::GenSynthMatchesRig::Setup_(), BIAS::EuclideanTransf3D::SetXYZ(), and BIAS::CamPoseCalib::TransformVec().

void BIAS::RMatrixBase::SetXYZ ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order XYZ from vector.

Definition at line 101 of file RMatrixBase.hh.

void RMatrixBase::SetXZY ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order XZY.

Set angles either in order 1. x, 2. z, 3. y and moving axes or in order 1. y, 2. z, 3. x and fixed axes.

Author
esquivel
Examples:
ExampleRMatrix.cpp.

Definition at line 265 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

void BIAS::RMatrixBase::SetXZY ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order XZY from vector.

Definition at line 193 of file RMatrixBase.hh.

void RMatrixBase::SetYXZ ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order YXZ.

Set angles either in order 1. y, 2. x, 3. z and moving axes or in order 1. z, 2. x, 3. y and fixed axes. Angles are measured as in mathematics (counter-clockwise), i.e. Set(x, 0, 0) results in the following matrix:

| 1 0 0 | | 0 cos(x) -sin(x) | | 0 sin(x) cos(x) |

(*this) = Ry*Rx*Rz

Author
haase
Examples:
ExampleRMatrix.cpp.

Definition at line 185 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

void BIAS::RMatrixBase::SetYXZ ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order YXZ from vector.

Definition at line 179 of file RMatrixBase.hh.

void RMatrixBase::SetYZX ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order YZX.

Set angles either in order 1. y, 2. z, 3. x and moving axes or in order 1. x, 2. z, 3. y and fixed axes.

Author
esquivel
Examples:
ExampleRMatrix.cpp.

Definition at line 238 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

void BIAS::RMatrixBase::SetYZX ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order YZX from vector.

Definition at line 208 of file RMatrixBase.hh.

void BIAS::RMatrixBase::SetZero ( )
inline

Setting to zero is forbidden since the zero matrix is not a valid rotation matrix!

Definition at line 401 of file RMatrixBase.hh.

void RMatrixBase::SetZXY ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order ZXY.

Set angles either in order 1. z, 2. x, 3. y and moving axes or in order 1. y, 2. x, 3. z and fixed axes. Angles are measured as in mathematics (counter-clockwise), i.e. Set(x, 0, 0) results in the following matrix:

| 1 0 0 | | 0 cos(x) -sin(x) | | 0 sin(x) cos(x) |

(*this) = Rz*Rx*Ry =

| c(y)c(z)-s(x)s(y)s(z), c(x)s(z), s(y)c(z)+s(x)c(y)s(z) | | s(z)c(y)+s(x)s(y)c(z), c(x)c(z), s(y)*s(z)+s(x)-c(y)c(z) | | -c(x)s(y) , s(x) , c(x)c(y) |

with s(g) = sin(g), c(g) = cos(g), x = PhiX, y = PhiY and z = PhiZ

Author
haase
Examples:
ExampleRMatrix.cpp.

Definition at line 212 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

void BIAS::RMatrixBase::SetZXY ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order ZXY from vector.

Definition at line 157 of file RMatrixBase.hh.

void RMatrixBase::SetZYX ( ROTATION_MATRIX_TYPE  PhiX,
ROTATION_MATRIX_TYPE  PhiY,
ROTATION_MATRIX_TYPE  PhiZ 
)

Set Euler angles (in rad) in order ZYX.

Set angles either in order 1. z, 2. y, 3. x and moving axes or in order 1. x, 2. y, 3. z and fixed axes. Angles are measured as in mathematics (counter-clockwise), i.e. Set(x, 0, 0) results in the following matrix:

| 1 0 0 | | 0 cos(x) -sin(x) | | 0 sin(x) cos(x) |

(*this) = Rz*Ry*Rx =

| c(y)c(z) s(x)s(y)c(z)-c(x)s(z) c(x)s(y)c(z)+s(x)s(z) | | c(y)s(z) s(x)s(y)s(z)+c(x)c(z) c(x)s(y)s(z)-s(x)s(z) | | -s(y) s(x)c(y) c(x)c(y) |

with s(g) = sin(g), c(g) = cos(g), x = PhiX, y = PhiY and z = PhiZ

Author
frahm, woelk
Examples:
ExampleRMatrix.cpp.

Definition at line 158 of file RMatrixBase.cpp.

References BIAS::MatrixIdentity.

Referenced by BIAS::CovEuler2Quaternion::Transform_().

void BIAS::RMatrixBase::SetZYX ( const Vector3< ROTATION_MATRIX_TYPE > &  r)
inline

Set Euler angles (in rad) in order ZYX from vector.

Definition at line 129 of file RMatrixBase.hh.

ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Trace ( ) const
inlineinherited

return the trace of the matrix

Author
woelk 04/2006

Definition at line 230 of file Matrix3x3.hh.

Matrix3x3<ROTATION_MATRIX_TYPE > BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Transpose ( ) const
inherited

returns transposed matrix tested 12.06.2002

Author
Felix Woelk
Examples:
ExampleAbsoluteOrientation.cpp, ExampleEParametrization.cpp, ExampleFMatrix.cpp, and ExampleTriangulate.cpp.
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Transpose ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  arg)
inlineinherited

sets this as transposed arg, fw

void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::TransposedMult ( const Vector3< ROTATION_MATRIX_TYPE > &  argvec,
Vector3< ROTATION_MATRIX_TYPE > &  destvec 
) const
inlineinherited

multiplies matrix from left with transposed argvec, resulting in transposed destvec

Author
woelk 05/2003
void BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::TransposeIP ( )
inlineinherited

tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8

Friends And Related Function Documentation

bool BIASGeometryBase_EXPORT operator== ( const RMatrixBase left,
const RMatrixBase right 
)
friend

Member Data Documentation

ROTATION_MATRIX_TYPE BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Data_[9]
protectedinherited

Definition at line 282 of file Matrix3x3.hh.

Referenced by BIAS::RMatrix::EnforceConstraints().


The documentation for this class was generated from the following files: