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

3D rotation matrix More...

#include <Geometry/RMatrix.hh>

+ Inheritance diagram for BIAS::RMatrix:
+ Collaboration diagram for BIAS::RMatrix:

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 constraints and right-handed rotation with SVD. More...
 
void GetAbsMaxMin (ROTATION_MATRIX_TYPE &max, ROTATION_MATRIX_TYPE &min) const
 
RMatrix GetAverageRMatrix (std::vector< RMatrix > &vecR, bool RefineRotation=true)
 Compute average rotation by pairwise weighted averaging of matrices. More...
 
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
 
 RMatrix ()
 
 RMatrix (const MatrixInitType &i)
 
 RMatrix (Vector3< ROTATION_MATRIX_TYPE > w, ROTATION_MATRIX_TYPE phi)
 initialization from rotation axis w and angle phi (Rodriguez) More...
 
 RMatrix (const Matrix3x3< ROTATION_MATRIX_TYPE > &mat)
 
 RMatrix (const TNT::Matrix< ROTATION_MATRIX_TYPE > &mat)
 
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 ~RMatrix ()
 

Public Attributes

double bestErrorSoFar_
 
Quaternion< double > bestQuaternionSoFar_
 
std::vector< RMatrix > * pvecR_
 

Protected Attributes

ROTATION_MATRIX_TYPE Data_ [9]
 

Detailed Description

3D rotation matrix

Test:
tested with TestRMatrix.cpp
Author
JMF finished (07/05/2002)
Examples:
EvaluateAlignment.cpp, ExampleAbsoluteOrientation.cpp, ExampleAutoCalib.cpp, ExampleCamera.cpp, ExampleCamPoseCalib.cpp, ExampleDrawLines.cpp, ExampleEpipolarLine.cpp, ExampleFMatrix.cpp, ExampleLoadBOG_P.cpp, ExamplePMatrix.cpp, ExampleProjectionMapping.cpp, ExampleProjectionParametersPerspective2.cpp, ExampleProjectionParametersProjective.cpp, ExampleStencilBuffer.cpp, ExampleThreeDOutVRML.cpp, ExampleTriangulate.cpp, ExampleVRMLOutProjection.cpp, InvestigatePRelations.cpp, PMatrixTest.cpp, and PMatrixTest2.cpp.

Definition at line 49 of file RMatrix.hh.

Constructor & Destructor Documentation

BIAS::RMatrix::RMatrix ( )
inline

Definition at line 53 of file RMatrix.hh.

Referenced by GetAverageRMatrix().

BIAS::RMatrix::RMatrix ( const MatrixInitType i)
inlineexplicit

Definition at line 56 of file RMatrix.hh.

BIAS::RMatrix::RMatrix ( Vector3< ROTATION_MATRIX_TYPE >  w,
ROTATION_MATRIX_TYPE  phi 
)
inline

initialization from rotation axis w and angle phi (Rodriguez)

Definition at line 60 of file RMatrix.hh.

RMatrix::~RMatrix ( )
virtual

Definition at line 34 of file RMatrix.cpp.

BIAS::RMatrix::RMatrix ( const Matrix3x3< ROTATION_MATRIX_TYPE > &  mat)
inline

Definition at line 65 of file RMatrix.hh.

RMatrix::RMatrix ( const TNT::Matrix< ROTATION_MATRIX_TYPE > &  mat)

Member Function Documentation

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

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(), BIAS::RMatrixBase::GetCheckFailureReason(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetColumn(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetDeterminant(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::NormL2().

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

void RMatrix::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
RMatrix RMatrix::GetAverageRMatrix ( std::vector< RMatrix > &  vecR,
bool  RefineRotation = true 
)

Compute average rotation by pairwise weighted averaging of matrices.

Parameters
vecRvector containt rotation matrices
Returns
average rotation matrix with minimal distance to all in vecR
Attention
unfinished code
Author
koeser

Definition at line 94 of file RMatrix.cpp.

References bestErrorSoFar_, bestQuaternionSoFar_, EnforceConstraints(), BIAS::RMatrixBase::GetQuaternion(), BIAS::RMatrixBase::GetRotationAxisAngle(), BIAS::LevenbergMarquardtExtended(), BIAS::MatrixIdentity, pvecR_, RMatrix(), BIAS::RMatrixBase::Set(), and BIAS::RMatrixBase::SetFromQuaternion().

std::string RMatrixBase::GetCheckFailureReason ( const double  eps = std::numeric_limits<double>::epsilon()) const
inherited

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 BIAS::RMatrixBase::Check(), BIAS::RMatrixBase::GetQuaternion(), BIAS::RMatrixBase::RMatrixBase(), BIAS::RMatrixBase::SetFromHV(), and BIAS::RMatrixBase::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 BIAS::RMatrixBase::Check(), BIAS::RMatrixBase::EnforceConstraints(), and BIAS::RMatrixBase::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 BIAS::RMatrixBase::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
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
inherited
ROTATION_MATRIX_TYPE RMatrixBase::GetRotationAngle ( ) const
inherited

Interface for angle component of GetRotationAxisAngle()

Definition at line 543 of file RMatrixBase.cpp.

References BIAS::RMatrixBase::GetRotationAxisAngle().

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

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

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
inlineinherited

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
inherited

Interface for axis component of GetRotationAxisAngle()

Definition at line 526 of file RMatrixBase.cpp.

References BIAS::RMatrixBase::GetRotationAxisAngle().

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

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(), BIAS::RMatrixBase::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
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 
)
inherited
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 BIAS::RMatrixBase::EnforceConstraints().

void RMatrixBase::SetFromAxisAngle ( Vector3< ROTATION_MATRIX_TYPE >  w)
inherited
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 BIAS::RMatrixBase::SetFromOriUp(), and BIAS::RMatrixBase::SetFromOriUpGL().

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

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 BIAS::RMatrixBase::Check(), BIAS::Vector3< T >::CrossProduct(), BIAS::RMatrixBase::EnforceConstraints(), BIAS::RMatrixBase::GetCheckFailureReason(), and BIAS::Vector3< T >::GetNormalized().

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

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 
)
inherited

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 
)
inherited
int RMatrixBase::SetFromQuaternion ( const Quaternion< ROTATION_MATRIX_TYPE > &  q)
inherited
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 BIAS::RMatrixBase::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 BIAS::RMatrixBase::Set(), and BIAS::RMatrixBase::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 
)
inherited

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)
inlineinherited

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 
)
inherited

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)
inlineinherited

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 
)
inherited

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)
inlineinherited

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 
)
inherited

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)
inlineinherited

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

Definition at line 208 of file RMatrixBase.hh.

void BIAS::RMatrixBase::SetZero ( )
inlineinherited

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 
)
inherited

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)
inlineinherited

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 
)
inherited

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)
inlineinherited

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

Member Data Documentation

double BIAS::RMatrix::bestErrorSoFar_

Definition at line 84 of file RMatrix.hh.

Referenced by GetAverageRMatrix(), and RMatrix().

Quaternion<double> BIAS::RMatrix::bestQuaternionSoFar_

Definition at line 86 of file RMatrix.hh.

Referenced by GetAverageRMatrix(), and RMatrix().

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

Definition at line 282 of file Matrix3x3.hh.

Referenced by EnforceConstraints().

std::vector<RMatrix>* BIAS::RMatrix::pvecR_

Definition at line 82 of file RMatrix.hh.

Referenced by GetAverageRMatrix(), and RMatrix().


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