Shapeworks Studio
2.1
Shape analysis software suite
|
Classes | |
class | Eigen::Map< const Quaternion< _Scalar >, _Options > |
Quaternion expression mapping a constant memory buffer. More... | |
class | Eigen::Map< Quaternion< _Scalar >, _Options > |
Expression of a quaternion from a memory buffer. More... | |
class | Eigen::AlignedBox< _Scalar, _AmbientDim > |
An axis aligned box. More... | |
class | Eigen::AngleAxis< _Scalar > |
Represents a 3D rotation as a rotation angle around an arbitrary 3D axis. More... | |
class | Eigen::Hyperplane< _Scalar, _AmbientDim > |
A hyperplane. More... | |
class | Eigen::ParametrizedLine< _Scalar, _AmbientDim > |
A parametrized line. More... | |
class | Eigen::Quaternion< _Scalar > |
The quaternion class used to represent 3D orientations and rotations. More... | |
class | Eigen::Rotation2D< _Scalar > |
Represents a rotation/orientation in a 2 dimensional space. More... | |
class | Eigen::Scaling< _Scalar, _Dim > |
Represents a possibly non uniform scaling transformation. More... | |
class | Eigen::Transform< _Scalar, _Dim > |
Represents an homogeneous transformation in a N dimensional space. More... | |
class | Eigen::Translation< _Scalar, _Dim > |
Represents a translation transformation. More... | |
class | Eigen::Homogeneous< MatrixType, _Direction > |
Expression of one (or a set of) homogeneous vector(s) More... | |
class | Eigen::QuaternionBase< Derived > |
Base class for quaternion expressions. More... | |
Modules | |
Global aligned box typedefs | |
Typedefs | |
typedef AngleAxis< float > | Eigen::AngleAxisf |
typedef AngleAxis< double > | Eigen::AngleAxisd |
typedef Quaternion< float > | Eigen::Quaternionf |
typedef Quaternion< double > | Eigen::Quaterniond |
typedef Rotation2D< float > | Eigen::Rotation2Df |
typedef Rotation2D< double > | Eigen::Rotation2Dd |
typedef Scaling< float, 2 > | Eigen::Scaling2f |
typedef Scaling< double, 2 > | Eigen::Scaling2d |
typedef Scaling< float, 3 > | Eigen::Scaling3f |
typedef Scaling< double, 3 > | Eigen::Scaling3d |
typedef Transform< float, 2 > | Eigen::Transform2f |
typedef Transform< float, 3 > | Eigen::Transform3f |
typedef Transform< double, 2 > | Eigen::Transform2d |
typedef Transform< double, 3 > | Eigen::Transform3d |
typedef Translation< float, 2 > | Eigen::Translation2f |
typedef Translation< double, 2 > | Eigen::Translation2d |
typedef Translation< float, 3 > | Eigen::Translation3f |
typedef Translation< double, 3 > | Eigen::Translation3d |
typedef Map< Quaternion< float >, 0 > | Eigen::QuaternionMapf |
typedef Map< Quaternion< double >, 0 > | Eigen::QuaternionMapd |
typedef Map< Quaternion< float >, Aligned > | Eigen::QuaternionMapAlignedf |
typedef Map< Quaternion< double >, Aligned > | Eigen::QuaternionMapAlignedd |
typedef DiagonalMatrix< float, 2 > | Eigen::AlignedScaling2f |
typedef DiagonalMatrix< double, 2 > | Eigen::AlignedScaling2d |
typedef DiagonalMatrix< float, 3 > | Eigen::AlignedScaling3f |
typedef DiagonalMatrix< double, 3 > | Eigen::AlignedScaling3d |
typedef Transform< float, 2, Isometry > | Eigen::Isometry2f |
typedef Transform< float, 3, Isometry > | Eigen::Isometry3f |
typedef Transform< double, 2, Isometry > | Eigen::Isometry2d |
typedef Transform< double, 3, Isometry > | Eigen::Isometry3d |
typedef Transform< float, 2, Affine > | Eigen::Affine2f |
typedef Transform< float, 3, Affine > | Eigen::Affine3f |
typedef Transform< double, 2, Affine > | Eigen::Affine2d |
typedef Transform< double, 3, Affine > | Eigen::Affine3d |
typedef Transform< float, 2, AffineCompact > | Eigen::AffineCompact2f |
typedef Transform< float, 3, AffineCompact > | Eigen::AffineCompact3f |
typedef Transform< double, 2, AffineCompact > | Eigen::AffineCompact2d |
typedef Transform< double, 3, AffineCompact > | Eigen::AffineCompact3d |
typedef Transform< float, 2, Projective > | Eigen::Projective2f |
typedef Transform< float, 3, Projective > | Eigen::Projective3f |
typedef Transform< double, 2, Projective > | Eigen::Projective2d |
typedef Transform< double, 3, Projective > | Eigen::Projective3d |
Functions | |
template<typename Derived , typename OtherDerived > | |
internal::umeyama_transform_matrix_type< Derived, OtherDerived >::type | Eigen::umeyama (const MatrixBase< Derived > &src, const MatrixBase< OtherDerived > &dst, bool with_scaling=true) |
Returns the transformation between two point sets. More... | |
Matrix< Scalar, 3, 1 > | Eigen::MatrixBase< Derived >::eulerAngles (Index a0, Index a1, Index a2) const |
typedef Transform<double,2,Affine> Eigen::Affine2d |
Definition at line 656 of file Transform.h.
typedef Transform<float,2,Affine> Eigen::Affine2f |
Definition at line 652 of file Transform.h.
typedef Transform<double,3,Affine> Eigen::Affine3d |
Definition at line 658 of file Transform.h.
typedef Transform<float,3,Affine> Eigen::Affine3f |
Definition at line 654 of file Transform.h.
typedef Transform<double,2,AffineCompact> Eigen::AffineCompact2d |
Definition at line 665 of file Transform.h.
typedef Transform<float,2,AffineCompact> Eigen::AffineCompact2f |
Definition at line 661 of file Transform.h.
typedef Transform<double,3,AffineCompact> Eigen::AffineCompact3d |
Definition at line 667 of file Transform.h.
typedef Transform<float,3,AffineCompact> Eigen::AffineCompact3f |
Definition at line 663 of file Transform.h.
typedef DiagonalMatrix<double,2> Eigen::AlignedScaling2d |
typedef DiagonalMatrix<float, 2> Eigen::AlignedScaling2f |
typedef DiagonalMatrix<double,3> Eigen::AlignedScaling3d |
typedef DiagonalMatrix<float, 3> Eigen::AlignedScaling3f |
typedef AngleAxis< double > Eigen::AngleAxisd |
double precision angle-axis type
Definition at line 152 of file AngleAxis.h.
typedef AngleAxis< float > Eigen::AngleAxisf |
single precision angle-axis type
Definition at line 149 of file AngleAxis.h.
typedef Transform<double,2,Isometry> Eigen::Isometry2d |
Definition at line 647 of file Transform.h.
typedef Transform<float,2,Isometry> Eigen::Isometry2f |
Definition at line 643 of file Transform.h.
typedef Transform<double,3,Isometry> Eigen::Isometry3d |
Definition at line 649 of file Transform.h.
typedef Transform<float,3,Isometry> Eigen::Isometry3f |
Definition at line 645 of file Transform.h.
typedef Transform<double,2,Projective> Eigen::Projective2d |
Definition at line 674 of file Transform.h.
typedef Transform<float,2,Projective> Eigen::Projective2f |
Definition at line 670 of file Transform.h.
typedef Transform<double,3,Projective> Eigen::Projective3d |
Definition at line 676 of file Transform.h.
typedef Transform<float,3,Projective> Eigen::Projective3f |
Definition at line 672 of file Transform.h.
typedef Quaternion< double > Eigen::Quaterniond |
double precision quaternion type
Definition at line 211 of file Quaternion.h.
typedef Quaternion< float > Eigen::Quaternionf |
single precision quaternion type
Definition at line 208 of file Quaternion.h.
typedef Map<Quaternion<double>, Aligned> Eigen::QuaternionMapAlignedd |
Map a 16-bits aligned array of double precision scalars as a quaternion
Definition at line 412 of file Quaternion.h.
typedef Map<Quaternion<float>, Aligned> Eigen::QuaternionMapAlignedf |
Map a 16-bits aligned array of double precision scalars as a quaternion
Definition at line 409 of file Quaternion.h.
typedef Map<Quaternion<double>, 0> Eigen::QuaternionMapd |
Map an unaligned array of double precision scalar as a quaternion
Definition at line 406 of file Quaternion.h.
typedef Map<Quaternion<float>, 0> Eigen::QuaternionMapf |
Map an unaligned array of single precision scalar as a quaternion
Definition at line 403 of file Quaternion.h.
typedef Rotation2D< double > Eigen::Rotation2Dd |
double precision 2D rotation type
Definition at line 119 of file Rotation2D.h.
typedef Rotation2D< float > Eigen::Rotation2Df |
single precision 2D rotation type
Definition at line 116 of file Rotation2D.h.
typedef Transform<double,2> Eigen::Transform2d |
Definition at line 286 of file Transform.h.
typedef Transform<float,2> Eigen::Transform2f |
Definition at line 282 of file Transform.h.
typedef Transform<double,3> Eigen::Transform3d |
Definition at line 288 of file Transform.h.
typedef Transform<float,3> Eigen::Transform3f |
Definition at line 284 of file Transform.h.
|
inline |
*this
using the convention defined by the triplet (a0,a1,a2)Each of the three parameters a0,a1,a2 represents the respective rotation axis as an integer in {0,1,2}. For instance, in:
"2" represents the z axis and "0" the x axis, etc. The returned angles are such that we have the following equality:
This corresponds to the right-multiply conventions (with right hand side frames).
The returned angles are in the ranges [0:pi]x[0:pi]x[-pi:pi].
Definition at line 37 of file EulerAngles.h.
internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type Eigen::umeyama | ( | const MatrixBase< Derived > & | src, |
const MatrixBase< OtherDerived > & | dst, | ||
bool | with_scaling = true |
||
) |
Returns the transformation between two point sets.
The algorithm is based on: "Least-squares estimation of transformation parameters between two point patterns", Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
It estimates parameters and such that
is minimized.
The algorithm is based on the analysis of the covariance matrix of the input point sets and where is corresponding to the dimension (which is typically small). The analysis is involving the SVD having a complexity of though the actual computational effort lies in the covariance matrix computation which has an asymptotic lower bound of when the input point sets have dimension .
Currently the method is working only for floating point matrices.
src | Source points . |
dst | Destination points . |
with_scaling | Sets when false is passed. |
minimizing the resudiual above. This transformation is always returned as an Eigen::Matrix.
Definition at line 95 of file Umeyama.h.