![]() |
Eigen
3.3.0
|
This module provides support for:
Modules | |
Global aligned box typedefs | |
Classes | |
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... | |
Typedefs | |
typedef AngleAxis< double > | Eigen::AngleAxisd |
typedef AngleAxis< float > | Eigen::AngleAxisf |
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 |
Functions | |
template<typename OtherDerived > | |
PlainObject | Eigen::MatrixBase< Derived >::cross (const MatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CrossReturnType | Eigen::VectorwiseOp< ExpressionType, Direction >::cross (const MatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
PlainObject | Eigen::MatrixBase< Derived >::cross3 (const MatrixBase< OtherDerived > &other) const |
Matrix< Scalar, 3, 1 > | Eigen::MatrixBase< Derived >::eulerAngles (Index a0, Index a1, Index a2) const |
const HNormalizedReturnType | Eigen::MatrixBase< Derived >::hnormalized () const |
homogeneous normalization More... | |
const HNormalizedReturnType | Eigen::VectorwiseOp< ExpressionType, Direction >::hnormalized () const |
column or row-wise homogeneous normalization More... | |
HomogeneousReturnType | Eigen::MatrixBase< Derived >::homogeneous () const |
HomogeneousReturnType | Eigen::VectorwiseOp< ExpressionType, Direction >::homogeneous () const |
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... | |
PlainObject | Eigen::MatrixBase< Derived >::unitOrthogonal (void) const |
typedef AngleAxis<double> Eigen::AngleAxisd |
double precision angle-axis type
typedef AngleAxis<float> Eigen::AngleAxisf |
single precision angle-axis type
typedef Quaternion<double> Eigen::Quaterniond |
double precision quaternion type
typedef Quaternion<float> Eigen::Quaternionf |
single precision quaternion type
typedef Map<Quaternion<double>, Aligned> Eigen::QuaternionMapAlignedd |
Map a 16-byte aligned array of double precision scalars as a quaternion
typedef Map<Quaternion<float>, Aligned> Eigen::QuaternionMapAlignedf |
Map a 16-byte aligned array of single precision scalars as a quaternion
typedef Map<Quaternion<double>, 0> Eigen::QuaternionMapd |
Map an unaligned array of double precision scalars as a quaternion
typedef Map<Quaternion<float>, 0> Eigen::QuaternionMapf |
Map an unaligned array of single precision scalars as a quaternion
typedef Rotation2D<double> Eigen::Rotation2Dd |
double precision 2D rotation type
typedef Rotation2D<float> Eigen::Rotation2Df |
single precision 2D rotation type
|
inline |
This is defined in the Geometry module.
*this
and other Here is a very good explanation of cross-product: http://xkcd.com/199/
With complex numbers, the cross product is implemented as
const VectorwiseOp< ExpressionType, Direction >::CrossReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::cross | ( | const MatrixBase< OtherDerived > & | other | ) | const |
This is defined in the Geometry module.
The referenced matrix must have one dimension equal to 3. The result matrix has the same dimensions than the referenced one.
|
inline |
This is defined in the Geometry module.
*this
and other using only the x, y, and z coefficientsThe size of *this
and other must be four. This function is especially useful when using 4D vectors instead of 3D ones to get advantage of SSE/AltiVec vectorization.
|
inline |
This is defined in the Geometry module.
*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].
|
inline |
homogeneous normalization
This is defined in the Geometry module.
*this
divided by that last coefficient.This can be used to convert homogeneous coordinates to affine coordinates.
It is essentially a shortcut for:
Example:
Output:
v = 0.68 -0.211 0.566 0.597]^T v.hnormalized() = 1.14 -0.354 0.949]^T P*v = 0.663 -0.16 -0.13 0.91]^T (P*v).hnormalized() = 0.729 -0.176 -0.143]^T
|
inline |
column or row-wise homogeneous normalization
This is defined in the Geometry module.
*this
divided by the last coefficient of each column (or row).This can be used to convert homogeneous coordinates to affine coordinates.
It is conceptually equivalent to calling MatrixBase::hnormalized() to each column (or row) of *this
.
Example:
Output:
The matrix M is: 0.68 0.823 -0.444 -0.27 0.271 -0.211 -0.605 0.108 0.0268 0.435 0.566 -0.33 -0.0452 0.904 -0.717 0.597 0.536 0.258 0.832 0.214 M.colwise().hnormalized(): 1.14 1.53 -1.72 -0.325 1.27 -0.354 -1.13 0.419 0.0322 2.03 0.949 -0.614 -0.175 1.09 -3.35 P*M: 0.186 -0.589 0.369 1.33 -1.23 -0.871 -0.337 0.127 -0.715 0.091 -0.158 -0.0104 0.312 0.429 -0.478 0.992 0.777 -0.373 0.468 -0.651 (P*M).colwise().hnormalized(): 0.188 -0.759 -0.989 2.85 1.89 -0.877 -0.433 -0.342 -1.53 -0.14 -0.16 -0.0134 -0.837 0.915 0.735
|
inline |
This is defined in the Geometry module.
This can be used to convert affine coordinates to homogeneous coordinates.
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
Example:
Output:
v = [ 0.68 -0.211 0.566]^T h.homogeneous() = [ 0.68 -0.211 0.566 1]^T (P * v.homogeneous()) = [ 1.27 0.772 0.0154 -0.419]^T (P * v.homogeneous()).hnormalized() = [ -3.03 -1.84 -0.0367]^T
|
inline |
This is defined in the Geometry module.
This can be used to convert affine coordinates to homogeneous coordinates.
Example:
Output:
The matrix M is: 0.68 0.597 -0.33 0.108 -0.27 -0.211 0.823 0.536 -0.0452 0.0268 0.566 -0.605 -0.444 0.258 0.904 M.colwise().homogeneous(): 0.68 0.597 -0.33 0.108 -0.27 -0.211 0.823 0.536 -0.0452 0.0268 0.566 -0.605 -0.444 0.258 0.904 1 1 1 1 1 P * M.colwise().homogeneous(): 0.0832 -0.477 -1.21 -0.545 -0.452 0.998 0.779 0.695 0.894 0.277 -0.271 -0.608 -0.895 -0.544 -0.874 -0.728 -0.551 0.202 -0.21 -0.469 P * M.colwise().homogeneous().hnormalized(): -0.114 0.866 -6 2.6 0.962 -1.37 -1.41 3.44 -4.27 -0.591 0.373 1.1 -4.43 2.6 1.86
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.
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
is minimized.
The algorithm is based on the analysis of the covariance matrix
Currently the method is working only for floating point matrices.
src | Source points ![]() |
dst | Destination points ![]() |
with_scaling | Sets ![]() false is passed. |
|
inline |
This is defined in the Geometry module.
*this
The size of *this
must be at least 2. If the size is exactly 2, then the returned vector is a counter clock wise rotation of *this
, i.e., (-y,x).normalized().