|
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::Homogeneous< MatrixType, _Direction > |
| Expression of one (or a set of) homogeneous vector(s) More...
|
|
class | Eigen::Hyperplane< _Scalar, _AmbientDim, _Options > |
| A hyperplane. More...
|
|
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::ParametrizedLine< _Scalar, _AmbientDim, _Options > |
| A parametrized line. More...
|
|
class | Eigen::Quaternion< _Scalar, _Options > |
| The quaternion class used to represent 3D orientations and rotations. More...
|
|
class | Eigen::QuaternionBase< Derived > |
| Base class for quaternion expressions. More...
|
|
class | Eigen::Rotation2D< _Scalar > |
| Represents a rotation/orientation in a 2 dimensional space. More...
|
|
class | Scaling |
| Represents a generic uniform scaling transformation. More...
|
|
class | Eigen::Transform< _Scalar, _Dim, _Mode, _Options > |
| Represents an homogeneous transformation in a N dimensional space. More...
|
|
class | Eigen::Translation< _Scalar, _Dim > |
| Represents a translation transformation. More...
|
|
|
typedef Transform< double, 2, Affine > | Eigen::Affine2d |
|
typedef Transform< float, 2, Affine > | Eigen::Affine2f |
|
typedef Transform< double, 3, Affine > | Eigen::Affine3d |
|
typedef Transform< float, 3, Affine > | Eigen::Affine3f |
|
typedef Transform< double, 2, AffineCompact > | Eigen::AffineCompact2d |
|
typedef Transform< float, 2, AffineCompact > | Eigen::AffineCompact2f |
|
typedef Transform< double, 3, AffineCompact > | Eigen::AffineCompact3d |
|
typedef Transform< float, 3, AffineCompact > | Eigen::AffineCompact3f |
|
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 |
|
typedef AngleAxis< float > | Eigen::AngleAxisf |
|
typedef Transform< double, 2, Isometry > | Eigen::Isometry2d |
|
typedef Transform< float, 2, Isometry > | Eigen::Isometry2f |
|
typedef Transform< double, 3, Isometry > | Eigen::Isometry3d |
|
typedef Transform< float, 3, Isometry > | Eigen::Isometry3f |
|
typedef Transform< double, 2, Projective > | Eigen::Projective2d |
|
typedef Transform< float, 2, Projective > | Eigen::Projective2f |
|
typedef Transform< double, 3, Projective > | Eigen::Projective3d |
|
typedef Transform< float, 3, Projective > | Eigen::Projective3f |
|
typedef Quaternion< double > | Eigen::Quaterniond |
|
typedef Quaternion< float > | Eigen::Quaternionf |
|
typedef Map< Quaternion< double >, Aligned > | Eigen::QuaternionMapAlignedd |
|
typedef Map< Quaternion< float >, Aligned > | Eigen::QuaternionMapAlignedf |
|
typedef Map< Quaternion< double >, 0 > | Eigen::QuaternionMapd |
|
typedef Map< Quaternion< float >, 0 > | Eigen::QuaternionMapf |
|
typedef Rotation2D< double > | Eigen::Rotation2Dd |
|
typedef Rotation2D< float > | Eigen::Rotation2Df |
|
template<typename Derived >
Matrix< typename MatrixBase< Derived >::Scalar, 3, 1 > Eigen::MatrixBase< Derived >::eulerAngles |
( |
Index |
a0, |
|
|
Index |
a1, |
|
|
Index |
a2 |
|
) |
| const |
|
inline |
This is defined in the Geometry module.
#include <Eigen/Geometry>
- Returns
- the Euler-angles of the rotation matrix
*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[-pi:pi]x[-pi:pi].
- See also
- class AngleAxis
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.
This is defined in the Geometry module.
#include <Eigen/Geometry>
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.
- Parameters
-
src | Source points . |
dst | Destination points . |
with_scaling | Sets when false is passed. |
- Returns
- The homogeneous transformation
minimizing the resudiual above. This transformation is always returned as an Eigen::Matrix.
References Eigen::DenseBase< Derived >::colwise(), Eigen::ComputeFullU, Eigen::ComputeFullV, Eigen::SVDBase< JacobiSVD< _MatrixType, QRPreconditioner > >::matrixU(), Eigen::SVDBase< JacobiSVD< _MatrixType, QRPreconditioner > >::matrixV(), Eigen::DenseBase< Derived >::rowwise(), and Eigen::SVDBase< JacobiSVD< _MatrixType, QRPreconditioner > >::singularValues().