Basic Image AlgorithmS Library
2.8.0
|
3D rotation matrix More...
#include <Geometry/RMatrix.hh>
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] |
3D rotation matrix
Definition at line 49 of file RMatrix.hh.
|
inline |
Definition at line 53 of file RMatrix.hh.
Referenced by GetAverageRMatrix().
|
inlineexplicit |
Definition at line 56 of file RMatrix.hh.
|
inline |
initialization from rotation axis w and angle phi (Rodriguez)
Definition at line 60 of file RMatrix.hh.
|
virtual |
Definition at line 34 of file RMatrix.cpp.
|
inline |
Definition at line 65 of file RMatrix.hh.
RMatrix::RMatrix | ( | const TNT::Matrix< ROTATION_MATRIX_TYPE > & | mat | ) |
Definition at line 37 of file RMatrix.cpp.
References bestErrorSoFar_, bestQuaternionSoFar_, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), pvecR_, and BIAS::Vector4< T >::Set().
|
inherited |
Check if this is a rotation matrix, i.e.
if the determinant is +1 and the columns are orthonormal
eps | Numerical limit for constraint evaluation |
verbose | Show 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().
|
virtual |
Enforce orthonormality constraints and right-handed rotation with SVD.
Reimplemented from BIAS::RMatrixBase.
Definition at line 49 of file RMatrix.cpp.
References BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::Data_, BIAS::Matrix3x3< T >::GetData(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetDeterminant(), BIAS::SVD::GetU(), and BIAS::SVD::GetVT().
Referenced by BIAS::RotationAveraging::ChordalL2Mean(), GetAverageRMatrix(), and BIAS::ProjectionParametersIO::ReadFromBBCStream().
|
inherited |
Compute average rotation by pairwise weighted averaging of matrices.
vecR | vector containt rotation matrices |
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().
|
inherited |
Return the reason for the constraint check failure in a human readable string.
eps | Numerical limit for constraint evaluation |
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().
|
inherited |
extract one column ('Spalte') from this matrix (for convenience)
Referenced by BIAS::RMatrixBase::Check(), BIAS::RMatrixBase::EnforceConstraints(), and BIAS::RMatrixBase::GetCheckFailureReason().
|
inlineinherited |
Definition at line 202 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 99 of file Matrix3x3.hh.
Referenced by BIAS::RMatrixBase::SetFromQuaternion().
|
inlineinherited |
Definition at line 103 of file Matrix3x3.hh.
|
inherited |
returns the Determinant |A| of this
Referenced by BIAS::RMatrixBase::Check(), EnforceConstraints(), BIAS::RMatrixBase::EnforceConstraints(), and BIAS::RMatrixBase::GetCheckFailureReason().
|
inherited |
Matrix inversion: inverts this and stores resulty in argument inv.
Returns -1 if determinant is zero, 0 on success.
|
inherited |
|
inherited |
return biggest and smallest entry
|
inherited |
|
inlineinherited |
Definition at line 107 of file Matrix3x3.hh.
|
inherited |
Calculates quaternion representation for this rotation matrix.
Definition at line 345 of file RMatrixBase.cpp.
References BIAS::RMatrixBase::Check(), BIAS::RMatrixBase::GetCheckFailureReason(), BIAS::Vector4< QUAT_TYPE >::MultiplyIP(), and BIAS::Vector4< QUAT_TYPE >::NormL2().
Referenced by BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateMeanOrientation(), BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateRectifiedBases(), BIAS::ProjectionParametersFactory::Create(), BIAS::Parametrization::EMatrixToParams(), GetAverageRMatrix(), BIAS::RMatrixBase::GetRotationAxisAngle(), BIAS::EMatrix::GetRotationTranslation(), BIAS::PMDImageProc::PoseFromMeta(), BIAS::SimilarityTransform::SetR(), BIAS::Pose::SetR(), BIAS::CoordinateTransform3D::SetR(), BIAS::ProjectionParametersBase::SetR(), BIAS::PoseParametrizationCovariance::Transform(), and BIAS::CovEuler2Quaternion::Transform_().
|
inherited |
Interface for angle component of GetRotationAxisAngle()
Definition at line 543 of file RMatrixBase.cpp.
References BIAS::RMatrixBase::GetRotationAxisAngle().
|
inherited |
Get Euler angles for this rotation matrix in order XYZ.
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().
|
inlineinherited |
Get Euler angles for this rotation matrix in order XYZ.
Definition at line 310 of file RMatrixBase.hh.
|
inherited |
Get Euler angles for this rotation matrix in order XZY.
Definition at line 683 of file RMatrixBase.cpp.
|
inlineinherited |
Get Euler angles for this rotation matrix in order XZY.
Definition at line 373 of file RMatrixBase.hh.
|
inherited |
Get Euler angles for this rotation matrix in order YXZ.
Definition at line 656 of file RMatrixBase.cpp.
|
inlineinherited |
Get Euler angles for this rotation matrix in order YXZ.
Definition at line 349 of file RMatrixBase.hh.
|
inherited |
Get Euler angles for this rotation matrix in order YZX.
Definition at line 710 of file RMatrixBase.cpp.
|
inlineinherited |
Get Euler angles for this rotation matrix in order YZX.
Definition at line 361 of file RMatrixBase.hh.
|
inherited |
Get Euler angles for this rotation matrix in order ZXY.
Definition at line 629 of file RMatrixBase.cpp.
|
inlineinherited |
Get Euler angles for this rotation matrix in order ZXY.
Definition at line 337 of file RMatrixBase.hh.
|
inherited |
Get Euler angles for this rotation matrix in order ZYX.
Definition at line 602 of file RMatrixBase.cpp.
Referenced by BIAS::DPPanTiltControlExtended::CompensateHeliMovement(), and BIAS::CovTransformPose::Transform_().
|
inlineinherited |
Get Euler angles for this rotation matrix in order ZYX.
Definition at line 324 of file RMatrixBase.hh.
|
inherited |
Interface for axis component of GetRotationAxisAngle()
Definition at line 526 of file RMatrixBase.cpp.
References BIAS::RMatrixBase::GetRotationAxisAngle().
|
inherited |
Calculates angle and rotation axis representation for this rotation matrix.
angle | Rotation angle is returned in radians |
Definition at line 514 of file RMatrixBase.cpp.
References BIAS::Quaternion< T >::GetAxisAngle(), and BIAS::RMatrixBase::GetQuaternion().
Referenced by BIAS::ThreeDOut::AddEllipsoid(), BIAS::SimilarityTransform::Dump(), BIAS::Parametrization::EMatrixToParams(), BIAS::CamPoseCalib::Estimate(), BIAS::RotationAveraging::GeodesicL1Mean(), BIAS::RotationAveraging::GeodesicL2Mean(), GetAverageRMatrix(), BIAS::RMatrixBase::GetRotationAngle(), BIAS::RMatrixBase::GetRotationAxis(), BIAS::Projection3DData::Set(), BIAS::CamPoseCalib::SolveLM_(), BIAS::CoordinateTransform3D::Talk(), and BIAS::ThreeDOut::UpdateEllipsoid().
|
inherited |
Calculates the angle * rotation axis representation for this rotation matrix (modified Rodrigues vector)
Definition at line 560 of file RMatrixBase.cpp.
References BIAS::Quaternion< T >::GetAxisAngle(), BIAS::RMatrixBase::GetQuaternion(), and BIAS::Vector3< T >::Normalize().
|
inherited |
extract one row ('Zeile') from ths matrix (for convenience)
|
inlineinherited |
Definition at line 196 of file Matrix3x3.hh.
|
inherited |
In place matrix conversion.
Returns -1 if determinant is zero, 0 on success.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec
|
inlineinherited |
matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat
|
inherited |
|
inherited |
divide this by biggest absolute entry, returns biggest entry
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 255 of file Matrix3x3.hh.
Referenced by BIAS::RMatrixBase::Check(), BIAS::RMatrixBase::EnforceConstraints(), and BIAS::RMatrixBase::GetCheckFailureReason().
|
inlineinherited |
Definition at line 274 of file Matrix3x3.hh.
|
inlineinherited |
woelk 11/2007 (c) www.vision-n.de
Definition at line 143 of file Matrix3x3.hh.
References BIAS::Matrix3x3< T >::Mult().
|
inherited |
woelk 11/2007 (c) www.vision-n.de
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
Definition at line 91 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 95 of file Matrix3x3.hh.
|
inherited |
|
inlineinherited |
scalar-matrix multiplication
|
inherited |
Set from rotation axis w and angle phi (in rad)
w | Axis vector w will be normalized to length 1, so we need |w|>1e-6 if phi != 0, otherwise an exception is thrown |
phi | Rotation angle is given in radians |
Definition at line 291 of file RMatrixBase.cpp.
References BIAS::Equal(), BIAS::Vector3< T >::NormL2(), BIAS::RMatrixBase::RMatrixBase(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetIdentity(), and BIAS::Matrix3x3< T >::SetIdentity().
Referenced by BIAS::RotationAveraging::GeodesicL1Mean(), BIAS::RotationAveraging::GeodesicL2Mean(), GetAverageRMatrix(), BIAS::ProjectionParametersBase::GetUnProjectionJacobian(), BIAS::VideoSource_Shm::GrabSingle(), BIAS::PMatrixBase::Parametrization2R_(), BIAS::Parametrization::ParamsToEMatrix(), BIAS::RMatrixBase::RMatrixBase(), BIAS::RMatrixBase::SetFromAxisAngle(), and BIAS::Normalization::Woelk().
|
inherited |
Sets matrix from vector as cross product matrix of this vector.
|
inherited |
Sets matrix from vector as cross product matrix of a vector.
with components (x, y, z)
|
inherited |
Referenced by BIAS::RMatrixBase::EnforceConstraints().
|
inherited |
Set from rotation axis * angle (modified Rodrigues vector)
Definition at line 332 of file RMatrixBase.cpp.
References BIAS::Vector3< T >::Normalize(), BIAS::Vector3< T >::NormL2(), BIAS::RMatrixBase::Set(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetIdentity().
Referenced by BIAS::PMDImageProc::HFromMeta_(), BIAS::RotationAveraging::LogarithmicL2Mean(), BIAS::PMatrixBase::Parametrization2R_(), and BIAS::PMDImageProc::PoseFromMeta().
|
inherited |
set this matrix from 3 vectors each representating a column
Referenced by BIAS::RMatrixBase::SetFromOriUp(), and BIAS::RMatrixBase::SetFromOriUpGL().
|
inherited |
Set rotation matrix from two vectors from an orthonormal basis.
xh | represents the first base vector and is left unchanged |
vy | should 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.
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().
|
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().
|
inherited |
Set rotation matrix from orientation and up vector.
Definition at line 856 of file RMatrixBase.cpp.
References BIAS::Vector3< T >::CrossProduct(), BIAS::Vector3< T >::Normalize(), and BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::SetFromColumnVectors().
|
inherited |
|
inherited |
Set rotation matrix from a quaternion.
Definition at line 751 of file RMatrixBase.cpp.
References BIAS::Equal(), BIAS::Matrix3x3< ROTATION_MATRIX_TYPE >::GetData(), BIAS::MatrixZero, BIAS::Quaternion< T >::Normalize(), and BIAS::Vector4< QUAT_TYPE >::NormL2().
Referenced by BIAS::ThreeDOut::AddProjection(), BIAS::clfTrimmedICP::ComputeOptimalMotion_(), BIAS::SimilarityTransform::Dump(), GetAverageRMatrix(), BIAS::EParametrization::GetEssentialMatrix(), BIAS::SimilarityTransform::GetR(), BIAS::CoordinateTransform3D::GetR(), BIAS::ProjectionParametersBase::GetR(), BIAS::RParametrization::GetRotationMatrix(), BIAS::SimilarityTransform::GetTransformMatrix(), BIAS::PMatrixBase::Parametrization2R_(), BIAS::Parametrization::ParamsToEMatrix(), BIAS::RotationAveraging::QuaternionL2Mean(), BIAS::Projection3DData::Set(), BIAS::CoordinateTransform3D::Talk(), BIAS::CovTransformPose::Transform_(), and BIAS::CoordinateTransform3D::UpdateMatrix_().
|
inherited |
set this matrix from 3 vectors, each representating a row
Referenced by BIAS::RMatrixBase::SetFromOrthogonalBasis().
|
inherited |
sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector
|
inlineinherited |
set the elements of this matrix to the identity matrix (possibly overriding the inherited method)
Referenced by BIAS::RMatrixBase::Set(), and BIAS::RMatrixBase::SetFromAxisAngle().
|
inherited |
|
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
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().
|
inlineinherited |
Set Euler angles (in rad) in order XYZ from vector.
Definition at line 101 of file RMatrixBase.hh.
|
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.
Definition at line 265 of file RMatrixBase.cpp.
References BIAS::MatrixIdentity.
|
inlineinherited |
Set Euler angles (in rad) in order XZY from vector.
Definition at line 193 of file RMatrixBase.hh.
|
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
Definition at line 185 of file RMatrixBase.cpp.
References BIAS::MatrixIdentity.
|
inlineinherited |
Set Euler angles (in rad) in order YXZ from vector.
Definition at line 179 of file RMatrixBase.hh.
|
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.
Definition at line 238 of file RMatrixBase.cpp.
References BIAS::MatrixIdentity.
|
inlineinherited |
Set Euler angles (in rad) in order YZX from vector.
Definition at line 208 of file RMatrixBase.hh.
|
inlineinherited |
Setting to zero is forbidden since the zero matrix is not a valid rotation matrix!
Definition at line 401 of file RMatrixBase.hh.
|
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
Definition at line 212 of file RMatrixBase.cpp.
References BIAS::MatrixIdentity.
|
inlineinherited |
Set Euler angles (in rad) in order ZXY from vector.
Definition at line 157 of file RMatrixBase.hh.
|
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
Definition at line 158 of file RMatrixBase.cpp.
References BIAS::MatrixIdentity.
Referenced by BIAS::CovEuler2Quaternion::Transform_().
|
inlineinherited |
Set Euler angles (in rad) in order ZYX from vector.
Definition at line 129 of file RMatrixBase.hh.
|
inlineinherited |
return the trace of the matrix
Definition at line 230 of file Matrix3x3.hh.
|
inherited |
returns transposed matrix tested 12.06.2002
|
inlineinherited |
sets this as transposed arg, fw
|
inlineinherited |
multiplies matrix from left with transposed argvec, resulting in transposed destvec
|
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
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().
|
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().