Represents an homogeneous transformation in a N dimensional space. More...
#include <Transform.h>
Classes | |
struct | construct_from_matrix |
struct | construct_from_matrix< OtherDerived, true > |
Public Types | |
enum | { TransformTimeDiagonalMode = ((Mode==int(Isometry))?Affine:int(Mode)) } |
typedef internal::conditional < int(Mode)==int(AffineCompact), MatrixType &, Block < MatrixType, Dim, HDim > >::type | AffinePart |
typedef internal::conditional < int(Mode)==int(AffineCompact), const MatrixType &, const Block< const MatrixType, Dim, HDim > >::type | ConstAffinePart |
typedef const Block< const MatrixType, Dim, Dim > | ConstLinearPart |
typedef const Block < ConstMatrixType, Dim, Dim > | ConstLinearPart |
typedef const MatrixType | ConstMatrixType |
typedef const Block< const MatrixType, Dim, 1 > | ConstTranslationPart |
typedef const Block < ConstMatrixType, Dim, 1 > | ConstTranslationPart |
typedef DenseIndex | Index |
typedef Matrix< Scalar, Dim, Dim > | LinearMatrixType |
typedef Matrix< Scalar, Dim, Dim, Options > | LinearMatrixType |
typedef Block< MatrixType, Dim, Dim > | LinearPart |
typedef Block< MatrixType, Dim, Dim > | LinearPart |
typedef Matrix< Scalar, HDim, HDim > | MatrixType |
typedef internal::make_proper_matrix_type < Scalar, Rows, HDim, Options > ::type | MatrixType |
typedef _Scalar | Scalar |
typedef _Scalar | Scalar |
typedef Scaling< Scalar, Dim > | ScalingType |
typedef internal::transform_take_affine_part < Transform > | take_affine_part |
typedef Transform< Scalar, Dim, TransformTimeDiagonalMode > | TransformTimeDiagonalReturnType |
typedef Block< MatrixType, Dim, 1 > | TranslationPart |
typedef Block< MatrixType, Dim, 1 > | TranslationPart |
typedef Translation< Scalar, Dim > | TranslationType |
typedef Translation< Scalar, Dim > | TranslationType |
typedef Matrix< Scalar, Dim, 1 > | VectorType |
typedef Matrix< Scalar, Dim, 1 > | VectorType |
Public Member Functions | |
ConstAffinePart | affine () const |
AffinePart | affine () |
template<typename NewScalarType > | |
internal::cast_return_type < Transform, Transform < NewScalarType, Dim > >::type | cast () const |
template<typename NewScalarType > | |
internal::cast_return_type < Transform, Transform < NewScalarType, Dim, Mode, Options > >::type | cast () const |
template<typename RotationMatrixType , typename ScalingMatrixType > | |
void | computeRotationScaling (RotationMatrixType *rotation, ScalingMatrixType *scaling) const |
template<typename RotationMatrixType , typename ScalingMatrixType > | |
void | computeRotationScaling (RotationMatrixType *rotation, ScalingMatrixType *scaling) const |
template<typename ScalingMatrixType , typename RotationMatrixType > | |
void | computeScalingRotation (ScalingMatrixType *scaling, RotationMatrixType *rotation) const |
template<typename ScalingMatrixType , typename RotationMatrixType > | |
void | computeScalingRotation (ScalingMatrixType *scaling, RotationMatrixType *rotation) const |
const Scalar * | data () const |
Scalar * | data () |
const Scalar * | data () const |
Scalar * | data () |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE (_Scalar, _Dim==Dynamic?Dynamic:(_Dim+1)*(_Dim+1)) enum | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE (_Scalar, _Dim==Dynamic?Dynamic:(_Dim+1)*(_Dim+1)) enum | |
template<typename PositionDerived , typename OrientationType , typename ScaleDerived > | |
Transform & | fromPositionOrientationScale (const MatrixBase< PositionDerived > &position, const OrientationType &orientation, const MatrixBase< ScaleDerived > &scale) |
template<typename PositionDerived , typename OrientationType , typename ScaleDerived > | |
Transform & | fromPositionOrientationScale (const MatrixBase< PositionDerived > &position, const OrientationType &orientation, const MatrixBase< ScaleDerived > &scale) |
const MatrixType | inverse (TransformTraits traits=Affine) const |
Transform | inverse (TransformTraits traits=(TransformTraits) Mode) const |
bool | isApprox (const Transform &other, typename NumTraits< Scalar >::Real prec=precision< Scalar >()) const |
bool | isApprox (const Transform &other, typename NumTraits< Scalar >::Real prec=NumTraits< Scalar >::dummy_precision()) const |
ConstLinearPart | linear () const |
LinearPart | linear () |
ConstLinearPart | linear () const |
LinearPart | linear () |
Block< MatrixType, int(Mode)==int(Projective)?HDim:Dim, Dim > | linearExt () |
const Block< MatrixType, int(Mode)==int(Projective)?HDim:Dim, Dim > | linearExt () const |
void | makeAffine () |
const MatrixType & | matrix () const |
MatrixType & | matrix () |
const MatrixType & | matrix () const |
MatrixType & | matrix () |
Scalar | operator() (int row, int col) const |
Scalar & | operator() (int row, int col) |
Scalar | operator() (Index row, Index col) const |
Scalar & | operator() (Index row, Index col) |
template<typename OtherDerived > | |
const ei_transform_product_impl < OtherDerived, _Dim, _Dim+1 > ::ResultType | operator* (const MatrixBase< OtherDerived > &other) const |
const Transform | operator* (const Transform &other) const |
Transform | operator* (const TranslationType &t) const |
Transform | operator* (const ScalingType &s) const |
template<typename Derived > | |
Transform | operator* (const RotationBase< Derived, Dim > &r) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const internal::transform_right_product_impl < Transform, OtherDerived > ::ResultType | operator* (const EigenBase< OtherDerived > &other) const |
template<typename DiagonalDerived > | |
const TransformTimeDiagonalReturnType | operator* (const DiagonalBase< DiagonalDerived > &b) const |
const Transform | operator* (const Transform &other) const |
template<int OtherMode, int OtherOptions> | |
const internal::transform_transform_product_impl < Transform, Transform< Scalar, Dim, OtherMode, OtherOptions > >::ResultType | operator* (const Transform< Scalar, Dim, OtherMode, OtherOptions > &other) const |
Transform | operator* (const TranslationType &t) const |
Transform | operator* (const UniformScaling< Scalar > &s) const |
template<typename Derived > | |
Transform | operator* (const RotationBase< Derived, Dim > &r) const |
Transform & | operator*= (const TranslationType &t) |
Transform & | operator*= (const ScalingType &s) |
template<typename Derived > | |
Transform & | operator*= (const RotationBase< Derived, Dim > &r) |
template<typename OtherDerived > | |
Transform & | operator*= (const EigenBase< OtherDerived > &other) |
Transform & | operator*= (const TranslationType &t) |
Transform & | operator*= (const UniformScaling< Scalar > &s) |
Transform & | operator*= (const DiagonalMatrix< Scalar, Dim > &s) |
template<typename Derived > | |
Transform & | operator*= (const RotationBase< Derived, Dim > &r) |
Transform & | operator= (const Transform &other) |
template<typename OtherDerived > | |
Transform & | operator= (const MatrixBase< OtherDerived > &other) |
Transform & | operator= (const TranslationType &t) |
Transform & | operator= (const ScalingType &t) |
template<typename Derived > | |
Transform & | operator= (const RotationBase< Derived, Dim > &r) |
Transform & | operator= (const Transform &other) |
template<typename OtherDerived > | |
Transform & | operator= (const EigenBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Transform & | operator= (const ReturnByValue< OtherDerived > &other) |
Transform & | operator= (const TranslationType &t) |
Transform & | operator= (const UniformScaling< Scalar > &t) |
template<typename Derived > | |
Transform & | operator= (const RotationBase< Derived, Dim > &r) |
template<typename RotationType > | |
Transform & | prerotate (const RotationType &rotation) |
template<typename RotationType > | |
Transform & | prerotate (const RotationType &rotation) |
template<typename OtherDerived > | |
Transform & | prescale (const MatrixBase< OtherDerived > &other) |
Transform & | prescale (Scalar s) |
template<typename OtherDerived > | |
Transform & | prescale (const MatrixBase< OtherDerived > &other) |
Transform & | prescale (Scalar s) |
Transform & | preshear (Scalar sx, Scalar sy) |
Transform & | preshear (Scalar sx, Scalar sy) |
template<typename OtherDerived > | |
Transform & | pretranslate (const MatrixBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Transform & | pretranslate (const MatrixBase< OtherDerived > &other) |
template<typename RotationType > | |
Transform & | rotate (const RotationType &rotation) |
template<typename RotationType > | |
Transform & | rotate (const RotationType &rotation) |
LinearMatrixType | rotation () const |
const LinearMatrixType | rotation () const |
template<typename OtherDerived > | |
Transform & | scale (const MatrixBase< OtherDerived > &other) |
Transform & | scale (Scalar s) |
template<typename OtherDerived > | |
Transform & | scale (const MatrixBase< OtherDerived > &other) |
Transform & | scale (Scalar s) |
void | setIdentity () |
void | setIdentity () |
Transform & | shear (Scalar sx, Scalar sy) |
Transform & | shear (Scalar sx, Scalar sy) |
Transform () | |
Transform (const Transform &other) | |
Transform (const TranslationType &t) | |
Transform (const ScalingType &s) | |
template<typename Derived > | |
Transform (const RotationBase< Derived, Dim > &r) | |
template<typename OtherDerived > | |
Transform (const MatrixBase< OtherDerived > &other) | |
Transform () | |
Transform (const Transform &other) | |
Transform (const TranslationType &t) | |
Transform (const UniformScaling< Scalar > &s) | |
template<typename Derived > | |
Transform (const RotationBase< Derived, Dim > &r) | |
template<typename OtherScalarType > | |
Transform (const Transform< OtherScalarType, Dim > &other) | |
template<typename OtherDerived > | |
Transform (const EigenBase< OtherDerived > &other) | |
template<int OtherOptions> | |
Transform (const Transform< Scalar, Dim, Mode, OtherOptions > &other) | |
template<int OtherMode, int OtherOptions> | |
Transform (const Transform< Scalar, Dim, OtherMode, OtherOptions > &other) | |
template<typename OtherDerived > | |
Transform (const ReturnByValue< OtherDerived > &other) | |
template<typename OtherScalarType > | |
Transform (const Transform< OtherScalarType, Dim, Mode, Options > &other) | |
template<typename OtherDerived > | |
Transform & | translate (const MatrixBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Transform & | translate (const MatrixBase< OtherDerived > &other) |
ConstTranslationPart | translation () const |
TranslationPart | translation () |
ConstTranslationPart | translation () const |
TranslationPart | translation () |
Block< MatrixType, int(Mode)==int(Projective)?HDim:Dim, 1 > | translationExt () |
const Block< MatrixType, int(Mode)==int(Projective)?HDim:Dim, 1 > | translationExt () const |
Static Public Member Functions | |
static const MatrixType::IdentityReturnType | Identity () |
static const Transform | Identity () |
Returns an identity transformation. | |
Static Protected Member Functions | |
static EIGEN_STRONG_INLINE void | check_template_params () |
Protected Attributes | |
MatrixType | m_matrix |
Friends | |
template<typename OtherDerived > | |
const ProductReturnType < OtherDerived, MatrixType > ::Type | operator* (const MatrixBase< OtherDerived > &a, const Transform &b) |
Transform | operator* (const LinearMatrixType &mat, const Transform &t) |
template<typename OtherDerived > | |
const internal::transform_left_product_impl < OtherDerived, Mode, Options, _Dim, _Dim+1 >::ResultType | operator* (const EigenBase< OtherDerived > &a, const Transform &b) |
template<typename DiagonalDerived > | |
TransformTimeDiagonalReturnType | operator* (const DiagonalBase< DiagonalDerived > &a, const Transform &b) |
Represents an homogeneous transformation in a N dimensional space.
_Scalar | the scalar type, i.e., the type of the coefficients |
_Dim | the dimension of the space |
The homography is internally represented and stored as a (Dim+1)^2 matrix which is available through the matrix() method.
Conversion methods from/to Qt's QMatrix and QTransform are available if the preprocessor token EIGEN_QT_SUPPORT is defined.
_Scalar | the scalar type, i.e., the type of the coefficients |
_Dim | the dimension of the space |
_Mode | the type of the transformation. Can be:
|
_Options | has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor. These Options are passed directly to the underlying matrix type. |
The homography is internally represented and stored by a matrix which is available through the matrix() method. To understand the behavior of this class you have to think a Transform object as its internal matrix representation. The chosen convention is right multiply:
v' = T * v
Therefore, an affine transformation matrix M is shaped like this:
Note that for a projective transformation the last row can be anything, and then the interpretation of different parts might be sightly different.
However, unlike a plain matrix, the Transform class provides many features simplifying both its assembly and usage. In particular, it can be composed with any other transformations (Transform,Translation,RotationBase,Matrix) and can be directly used to transform implicit homogeneous vectors. All these operations are handled via the operator*. For the composition of transformations, its principle consists to first convert the right/left hand sides of the product to a compatible (Dim+1)^2 matrix and then perform a pure matrix product. Of course, internally, operator* tries to perform the minimal number of operations according to the nature of each terms. Likewise, when applying the transform to non homogeneous vectors, the latters are automatically promoted to homogeneous one before doing the matrix product. The convertions to homogeneous representations are performed as follow:
Translation t (Dim)x(1):
Rotation R (Dim)x(Dim):
Linear Matrix L (Dim)x(Dim):
Affine Matrix A (Dim)x(Dim+1):
Column vector v (Dim)x(1):
Set of column vectors V1...Vn (Dim)x(n):
The concatenation of a Transform object with any kind of other transformation always returns a Transform object.
A little exception to the "as pure matrix product" rule is the case of the transformation of non homogeneous vectors by an affine transformation. In that case the last matrix row can be ignored, and the product returns non homogeneous vectors.
Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation, it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix. The solution is either to use a Dim x Dynamic matrix or explicitly request a vector transformation by making the vector homogeneous:
m' = T * m.colwise().homogeneous();
Note that there is zero overhead.
Conversion methods from/to Qt's QMatrix and QTransform are available if the preprocessor token EIGEN_QT_SUPPORT is defined.
This class can be extended with the help of the plugin mechanism described on the page Customizing/Extending Eigen by defining the preprocessor symbol EIGEN_TRANSFORM_PLUGIN
.
Definition at line 57 of file Eigen2Support/Geometry/Transform.h.
typedef internal::conditional<int(Mode)==int(AffineCompact), MatrixType&, Block<MatrixType,Dim,HDim> >::type Transform< _Scalar, _Dim >::AffinePart |
type of read/write reference to the affine part of the transformation
Definition at line 216 of file Geometry/Transform.h.
typedef internal::conditional<int(Mode)==int(AffineCompact), const MatrixType&, const Block<const MatrixType,Dim,HDim> >::type Transform< _Scalar, _Dim >::ConstAffinePart |
type of read reference to the affine part of the transformation
Definition at line 220 of file Geometry/Transform.h.
typedef const Block<const MatrixType,Dim,Dim> Transform< _Scalar, _Dim >::ConstLinearPart |
type of read/write reference to the linear part of the transformation
Definition at line 74 of file Eigen2Support/Geometry/Transform.h.
typedef const Block<ConstMatrixType,Dim,Dim> Transform< _Scalar, _Dim >::ConstLinearPart |
type of read reference to the linear part of the transformation
Definition at line 212 of file Geometry/Transform.h.
typedef const MatrixType Transform< _Scalar, _Dim >::ConstMatrixType |
constified MatrixType
Definition at line 206 of file Geometry/Transform.h.
typedef const Block<const MatrixType,Dim,1> Transform< _Scalar, _Dim >::ConstTranslationPart |
type of a read/write reference to the translation part of the rotation
Definition at line 80 of file Eigen2Support/Geometry/Transform.h.
typedef const Block<ConstMatrixType,Dim,1> Transform< _Scalar, _Dim >::ConstTranslationPart |
type of a read reference to the translation part of the rotation
Definition at line 226 of file Geometry/Transform.h.
typedef DenseIndex Transform< _Scalar, _Dim >::Index |
Definition at line 202 of file Geometry/Transform.h.
typedef Matrix<Scalar,Dim,Dim> Transform< _Scalar, _Dim >::LinearMatrixType |
type of the matrix used to represent the linear part of the transformation
Definition at line 70 of file Eigen2Support/Geometry/Transform.h.
typedef Matrix<Scalar,Dim,Dim,Options> Transform< _Scalar, _Dim >::LinearMatrixType |
type of the matrix used to represent the linear part of the transformation
Definition at line 208 of file Geometry/Transform.h.
typedef Block<MatrixType,Dim,Dim> Transform< _Scalar, _Dim >::LinearPart |
type of read/write reference to the linear part of the transformation
Definition at line 72 of file Eigen2Support/Geometry/Transform.h.
typedef Block<MatrixType,Dim,Dim> Transform< _Scalar, _Dim >::LinearPart |
type of read/write reference to the linear part of the transformation
Definition at line 210 of file Geometry/Transform.h.
typedef Matrix<Scalar,HDim,HDim> Transform< _Scalar, _Dim >::MatrixType |
type of the matrix used to represent the transformation
Definition at line 68 of file Eigen2Support/Geometry/Transform.h.
typedef internal::make_proper_matrix_type<Scalar,Rows,HDim,Options>::type Transform< _Scalar, _Dim >::MatrixType |
type of the matrix used to represent the transformation
Definition at line 204 of file Geometry/Transform.h.
the scalar type of the coefficients
Definition at line 64 of file Eigen2Support/Geometry/Transform.h.
the scalar type of the coefficients
Definition at line 199 of file Geometry/Transform.h.
typedef Scaling<Scalar,Dim> Transform< _Scalar, _Dim >::ScalingType |
corresponding scaling transformation type
Definition at line 84 of file Eigen2Support/Geometry/Transform.h.
typedef internal::transform_take_affine_part<Transform> Transform< _Scalar, _Dim >::take_affine_part |
Definition at line 276 of file Geometry/Transform.h.
typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> Transform< _Scalar, _Dim >::TransformTimeDiagonalReturnType |
The return type of the product between a diagonal matrix and a transform
Definition at line 233 of file Geometry/Transform.h.
typedef Block<MatrixType,Dim,1> Transform< _Scalar, _Dim >::TranslationPart |
type of a read/write reference to the translation part of the rotation
Definition at line 78 of file Eigen2Support/Geometry/Transform.h.
typedef Block<MatrixType,Dim,1> Transform< _Scalar, _Dim >::TranslationPart |
type of a read/write reference to the translation part of the rotation
Definition at line 224 of file Geometry/Transform.h.
typedef Translation<Scalar,Dim> Transform< _Scalar, _Dim >::TranslationType |
corresponding translation type
Definition at line 82 of file Eigen2Support/Geometry/Transform.h.
typedef Translation<Scalar,Dim> Transform< _Scalar, _Dim >::TranslationType |
corresponding translation type
Definition at line 228 of file Geometry/Transform.h.
typedef Matrix<Scalar,Dim,1> Transform< _Scalar, _Dim >::VectorType |
type of a vector
Definition at line 76 of file Eigen2Support/Geometry/Transform.h.
typedef Matrix<Scalar,Dim,1> Transform< _Scalar, _Dim >::VectorType |
type of a vector
Definition at line 222 of file Geometry/Transform.h.
anonymous enum |
Definition at line 231 of file Geometry/Transform.h.
Default constructor without initialization of the coefficients.
Definition at line 93 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< _Scalar, _Dim > & | other | ) | [inline] |
Definition at line 95 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const TranslationType & | t | ) | [inline, explicit] |
Definition at line 100 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const ScalingType & | s | ) | [inline, explicit] |
Definition at line 101 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const RotationBase< Derived, Dim > & | r | ) | [inline, explicit] |
Definition at line 103 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const MatrixBase< OtherDerived > & | other | ) | [inline, explicit] |
Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix.
Definition at line 130 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< OtherScalarType, Dim > & | other | ) | [inline, explicit] |
Copy constructor with scalar type conversion
Definition at line 277 of file Eigen2Support/Geometry/Transform.h.
Default constructor without initialization of the meaningful coefficients. If Mode==Affine, then the last row is set to [0 ... 0 1]
Definition at line 243 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< _Scalar, _Dim > & | other | ) | [inline] |
Definition at line 250 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const TranslationType & | t | ) | [inline, explicit] |
Definition at line 256 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const UniformScaling< Scalar > & | s | ) | [inline, explicit] |
Definition at line 261 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const RotationBase< Derived, Dim > & | r | ) | [inline, explicit] |
Definition at line 267 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const EigenBase< OtherDerived > & | other | ) | [inline, explicit] |
Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix.
Definition at line 280 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< Scalar, Dim, Mode, OtherOptions > & | other | ) | [inline] |
Definition at line 295 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< Scalar, Dim, OtherMode, OtherOptions > & | other | ) | [inline] |
Definition at line 303 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const ReturnByValue< OtherDerived > & | other | ) | [inline] |
Definition at line 344 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::Transform | ( | const Transform< OtherScalarType, Dim, Mode, Options > & | other | ) | [inline, explicit] |
Copy constructor with scalar type conversion
Definition at line 554 of file Geometry/Transform.h.
ConstAffinePart Transform< _Scalar, _Dim >::affine | ( | ) | const [inline] |
Definition at line 384 of file Geometry/Transform.h.
AffinePart Transform< _Scalar, _Dim >::affine | ( | ) | [inline] |
Definition at line 386 of file Geometry/Transform.h.
internal::cast_return_type<Transform,Transform<NewScalarType,Dim> >::type Transform< _Scalar, _Dim >::cast | ( | ) | const [inline] |
*this
with scalar type casted to NewScalarType Note that if NewScalarType is equal to the current scalar type of *this
then this function smartly returns a const reference to *this
.
Definition at line 272 of file Eigen2Support/Geometry/Transform.h.
internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type Transform< _Scalar, _Dim >::cast | ( | ) | const [inline] |
*this
with scalar type casted to NewScalarType Note that if NewScalarType is equal to the current scalar type of *this
then this function smartly returns a const reference to *this
.
Definition at line 549 of file Geometry/Transform.h.
static EIGEN_STRONG_INLINE void Transform< _Scalar, _Dim >::check_template_params | ( | ) | [inline, static, protected] |
Definition at line 611 of file Geometry/Transform.h.
void Transform< Scalar, Dim, Mode, Options >::computeRotationScaling | ( | RotationMatrixType * | rotation, |
ScalingMatrixType * | scaling | ||
) | const |
decomposes the linear part of the transformation as a product rotation x scaling, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
decomposes the linear part of the transformation as a product rotation x scaling, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
Definition at line 633 of file Eigen2Support/Geometry/Transform.h.
void Transform< _Scalar, _Dim >::computeRotationScaling | ( | RotationMatrixType * | rotation, |
ScalingMatrixType * | scaling | ||
) | const |
void Transform< Scalar, Dim, Mode, Options >::computeScalingRotation | ( | ScalingMatrixType * | scaling, |
RotationMatrixType * | rotation | ||
) | const |
decomposes the linear part of the transformation as a product rotation x scaling, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
decomposes the linear part of the transformation as a product rotation x scaling, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
Definition at line 664 of file Eigen2Support/Geometry/Transform.h.
void Transform< _Scalar, _Dim >::computeScalingRotation | ( | ScalingMatrixType * | scaling, |
RotationMatrixType * | rotation | ||
) | const |
const Scalar* Transform< _Scalar, _Dim >::data | ( | ) | const [inline] |
Definition at line 262 of file Eigen2Support/Geometry/Transform.h.
Definition at line 264 of file Eigen2Support/Geometry/Transform.h.
const Scalar* Transform< _Scalar, _Dim >::data | ( | ) | const [inline] |
Definition at line 539 of file Geometry/Transform.h.
Definition at line 541 of file Geometry/Transform.h.
Transform< _Scalar, _Dim >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE | ( | _Scalar | , |
_Dim | = =Dynamic ? Dynamic : (_Dim+1)*(_Dim+1) |
||
) | [inline] |
< space dimension in which the transformation holds
< size of a respective homogeneous vector
Definition at line 60 of file Eigen2Support/Geometry/Transform.h.
Transform< _Scalar, _Dim >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE | ( | _Scalar | , |
_Dim | = =Dynamic ? Dynamic : (_Dim+1)*(_Dim+1) |
||
) | [inline] |
< space dimension in which the transformation holds
< size of a respective homogeneous vector
Definition at line 192 of file Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::fromPositionOrientationScale | ( | const MatrixBase< PositionDerived > & | position, |
const OrientationType & | orientation, | ||
const MatrixBase< ScaleDerived > & | scale | ||
) |
Convenient method to set *this
from a position, orientation and scale of a 3D object.
Definition at line 688 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::fromPositionOrientationScale | ( | const MatrixBase< PositionDerived > & | position, |
const OrientationType & | orientation, | ||
const MatrixBase< ScaleDerived > & | scale | ||
) |
static const MatrixType::IdentityReturnType Transform< _Scalar, _Dim >::Identity | ( | ) | [inline, static] |
Definition at line 198 of file Eigen2Support/Geometry/Transform.h.
static const Transform Transform< _Scalar, _Dim >::Identity | ( | ) | [inline, static] |
Returns an identity transformation.
Definition at line 480 of file Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > Transform< Scalar, Dim, Mode, Options >::inverse | ( | TransformTraits | hint = Affine | ) | const [inline] |
*this
.traits | allows to optimize the inversion process when the transformion is known to be not a general transformation. The possible values are:
|
*this
.hint | allows to optimize the inversion process when the transformation is known to be not a general transformation (optional). The possible values are:
|
Definition at line 720 of file Eigen2Support/Geometry/Transform.h.
Transform Transform< _Scalar, _Dim >::inverse | ( | TransformTraits | traits = (TransformTraits) Mode | ) | const [inline] |
bool Transform< _Scalar, _Dim >::isApprox | ( | const Transform< _Scalar, _Dim > & | other, |
typename NumTraits< Scalar >::Real | prec = precision<Scalar>() |
||
) | const [inline] |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 284 of file Eigen2Support/Geometry/Transform.h.
bool Transform< _Scalar, _Dim >::isApprox | ( | const Transform< _Scalar, _Dim > & | other, |
typename NumTraits< Scalar >::Real | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline] |
true
if *this
is approximately equal to other, within the precision determined by prec.Definition at line 564 of file Geometry/Transform.h.
ConstLinearPart Transform< _Scalar, _Dim >::linear | ( | ) | const [inline] |
Definition at line 162 of file Eigen2Support/Geometry/Transform.h.
LinearPart Transform< _Scalar, _Dim >::linear | ( | ) | [inline] |
Definition at line 164 of file Eigen2Support/Geometry/Transform.h.
ConstLinearPart Transform< _Scalar, _Dim >::linear | ( | ) | const [inline] |
Definition at line 379 of file Geometry/Transform.h.
LinearPart Transform< _Scalar, _Dim >::linear | ( | ) | [inline] |
Definition at line 381 of file Geometry/Transform.h.
Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> Transform< _Scalar, _Dim >::linearExt | ( | ) | [inline] |
Definition at line 582 of file Geometry/Transform.h.
const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> Transform< _Scalar, _Dim >::linearExt | ( | ) | const [inline] |
Definition at line 588 of file Geometry/Transform.h.
void Transform< _Scalar, _Dim >::makeAffine | ( | ) | [inline] |
Sets the last row to [0 ... 0 1]
Definition at line 569 of file Geometry/Transform.h.
const MatrixType& Transform< _Scalar, _Dim >::matrix | ( | ) | const [inline] |
Definition at line 157 of file Eigen2Support/Geometry/Transform.h.
MatrixType& Transform< _Scalar, _Dim >::matrix | ( | ) | [inline] |
Definition at line 159 of file Eigen2Support/Geometry/Transform.h.
const MatrixType& Transform< _Scalar, _Dim >::matrix | ( | ) | const [inline] |
Definition at line 374 of file Geometry/Transform.h.
MatrixType& Transform< _Scalar, _Dim >::matrix | ( | ) | [inline] |
Definition at line 376 of file Geometry/Transform.h.
Scalar Transform< _Scalar, _Dim >::operator() | ( | int | row, |
int | col | ||
) | const [inline] |
shortcut for m_matrix(row,col);
Definition at line 151 of file Eigen2Support/Geometry/Transform.h.
Scalar& Transform< _Scalar, _Dim >::operator() | ( | int | row, |
int | col | ||
) | [inline] |
shortcut for m_matrix(row,col);
Definition at line 154 of file Eigen2Support/Geometry/Transform.h.
Scalar Transform< _Scalar, _Dim >::operator() | ( | Index | row, |
Index | col | ||
) | const [inline] |
shortcut for m_matrix(row,col);
Definition at line 368 of file Geometry/Transform.h.
Scalar& Transform< _Scalar, _Dim >::operator() | ( | Index | row, |
Index | col | ||
) | [inline] |
shortcut for m_matrix(row,col);
Definition at line 371 of file Geometry/Transform.h.
const ei_transform_product_impl<OtherDerived,_Dim,_Dim+1>::ResultType Transform< _Scalar, _Dim >::operator* | ( | const MatrixBase< OtherDerived > & | other | ) | const [inline] |
*this
and a matrix expression other The right hand side other might be either:
Definition at line 181 of file Eigen2Support/Geometry/Transform.h.
const Transform Transform< _Scalar, _Dim >::operator* | ( | const Transform< _Scalar, _Dim > & | other | ) | const [inline] |
Contatenates two transformations
Definition at line 193 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > Transform< Scalar, Dim, Mode, Options >::operator* | ( | const TranslationType & | t | ) | const [inline] |
Definition at line 555 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim > Transform< Scalar, Dim >::operator* | ( | const ScalingType & | s | ) | const [inline] |
Definition at line 572 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > Transform< Scalar, Dim, Mode, Options >::operator* | ( | const RotationBase< Derived, Dim > & | r | ) | const [inline] |
Definition at line 592 of file Eigen2Support/Geometry/Transform.h.
EIGEN_STRONG_INLINE const internal::transform_right_product_impl<Transform, OtherDerived>::ResultType Transform< _Scalar, _Dim >::operator* | ( | const EigenBase< OtherDerived > & | other | ) | const [inline] |
*this
and a matrix expression other The right hand side other might be either:
Definition at line 407 of file Geometry/Transform.h.
const TransformTimeDiagonalReturnType Transform< _Scalar, _Dim >::operator* | ( | const DiagonalBase< DiagonalDerived > & | b | ) | const [inline] |
The rhs diagonal matrix is interpreted as an affine scaling transformation. The product results in a Transform of the same type (mode) as the lhs only if the lhs mode is no isometry. In that case, the returned transform is an affinity.
Definition at line 430 of file Geometry/Transform.h.
const Transform Transform< _Scalar, _Dim >::operator* | ( | const Transform< _Scalar, _Dim > & | other | ) | const [inline] |
Concatenates two transformations
Definition at line 459 of file Geometry/Transform.h.
const internal::transform_transform_product_impl< Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType Transform< _Scalar, _Dim >::operator* | ( | const Transform< Scalar, Dim, OtherMode, OtherOptions > & | other | ) | const [inline] |
Concatenates two different transformations
Definition at line 468 of file Geometry/Transform.h.
Transform Transform< _Scalar, _Dim >::operator* | ( | const TranslationType & | t | ) | const [inline] |
Transform< Scalar, Dim, Mode, Options > Transform< Scalar, Dim, Mode, Options >::operator* | ( | const UniformScaling< Scalar > & | s | ) | const [inline] |
Definition at line 944 of file Geometry/Transform.h.
Transform Transform< _Scalar, _Dim >::operator* | ( | const RotationBase< Derived, Dim > & | r | ) | const [inline] |
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const TranslationType & | t | ) | [inline] |
Definition at line 228 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const ScalingType & | s | ) | [inline] |
Definition at line 232 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const RotationBase< Derived, Dim > & | r | ) | [inline] |
Definition at line 245 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const EigenBase< OtherDerived > & | other | ) | [inline] |
Definition at line 456 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const TranslationType & | t | ) | [inline] |
Definition at line 510 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const UniformScaling< Scalar > & | s | ) | [inline] |
Definition at line 514 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const DiagonalMatrix< Scalar, Dim > & | s | ) | [inline] |
Definition at line 517 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator*= | ( | const RotationBase< Derived, Dim > & | r | ) | [inline] |
Definition at line 522 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const Transform< _Scalar, _Dim > & | other | ) | [inline] |
Definition at line 105 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Set *this
from a (Dim+1)^2 matrix.
Definition at line 137 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::operator= | ( | const TranslationType & | t | ) | [inline] |
Definition at line 545 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim > & Transform< Scalar, Dim >::operator= | ( | const ScalingType & | t | ) | [inline] |
Definition at line 563 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::operator= | ( | const RotationBase< Derived, Dim > & | r | ) | [inline] |
Definition at line 581 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const Transform< _Scalar, _Dim > & | other | ) | [inline] |
Definition at line 273 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const EigenBase< OtherDerived > & | other | ) | [inline] |
Set *this
from a Dim^2 or (Dim+1)^2 matrix.
Definition at line 288 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const ReturnByValue< OtherDerived > & | other | ) | [inline] |
Definition at line 351 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const TranslationType & | t | ) | [inline] |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::operator= | ( | const UniformScaling< Scalar > & | t | ) | [inline] |
Definition at line 935 of file Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::operator= | ( | const RotationBase< Derived, Dim > & | r | ) | [inline] |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::prerotate | ( | const RotationType & | rotation | ) | [inline] |
Applies on the left the rotation represented by the rotation rotation to *this
and returns a reference to *this
.
See rotate() for further details.
Definition at line 504 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::prerotate | ( | const RotationType & | rotation | ) | [inline] |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::prescale | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Applies on the left the non uniform scale transformation represented by the vector other to *this
and returns a reference to *this
.
Definition at line 422 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::prescale | ( | Scalar | s | ) | [inline] |
Applies on the left a uniform scale of a factor c to *this
and returns a reference to *this
.
Definition at line 434 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::prescale | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Transform& Transform< _Scalar, _Dim >::prescale | ( | Scalar | s | ) | [inline] |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::preshear | ( | Scalar | sx, |
Scalar | sy | ||
) |
Applies on the left the shear transformation represented by the vector other to *this
and returns a reference to *this
.
Definition at line 533 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::preshear | ( | Scalar | sx, |
Scalar | sy | ||
) |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::pretranslate | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Applies on the left the translation matrix represented by the vector other to *this
and returns a reference to *this
.
Definition at line 461 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::pretranslate | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::rotate | ( | const RotationType & | rotation | ) | [inline] |
Applies on the right the rotation represented by the rotation rotation to *this
and returns a reference to *this
.
The template parameter RotationType is the type of the rotation which must be known by ei_toRotationMatrix<>.
Natively supported types includes:
This mechanism is easily extendable to support user types such as Euler angles, or a pair of Quaternion for 4D rotations.
Applies on the right the rotation represented by the rotation rotation to *this
and returns a reference to *this
.
The template parameter RotationType is the type of the rotation which must be known by internal::toRotationMatrix<>.
Natively supported types includes:
This mechanism is easily extendable to support user types such as Euler angles, or a pair of Quaternion for 4D rotations.
Definition at line 488 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::rotate | ( | const RotationType & | rotation | ) | [inline] |
const Transform< Scalar, Dim, Mode, Options >::LinearMatrixType Transform< Scalar, Dim, Mode, Options >::rotation | ( | ) | const |
Definition at line 612 of file Eigen2Support/Geometry/Transform.h.
const LinearMatrixType Transform< _Scalar, _Dim >::rotation | ( | ) | const |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::scale | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Applies on the right the non uniform scale transformation represented by the vector other to *this
and returns a reference to *this
.
Definition at line 397 of file Eigen2Support/Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::scale | ( | Scalar | s | ) | [inline] |
Applies on the right a uniform scale of a factor c to *this
and returns a reference to *this
.
Definition at line 409 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::scale | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Transform& Transform< _Scalar, _Dim >::scale | ( | Scalar | s | ) | [inline] |
void Transform< _Scalar, _Dim >::setIdentity | ( | ) | [inline] |
Definition at line 197 of file Eigen2Support/Geometry/Transform.h.
void Transform< _Scalar, _Dim >::setIdentity | ( | ) | [inline] |
Definition at line 474 of file Geometry/Transform.h.
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::shear | ( | Scalar | sx, |
Scalar | sy | ||
) |
Applies on the right the shear transformation represented by the vector other to *this
and returns a reference to *this
.
Definition at line 518 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::shear | ( | Scalar | sx, |
Scalar | sy | ||
) |
Transform< Scalar, Dim, Mode, Options > & Transform< Scalar, Dim, Mode, Options >::translate | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
Applies on the right the translation matrix represented by the vector other to *this
and returns a reference to *this
.
Definition at line 447 of file Eigen2Support/Geometry/Transform.h.
Transform& Transform< _Scalar, _Dim >::translate | ( | const MatrixBase< OtherDerived > & | other | ) | [inline] |
ConstTranslationPart Transform< _Scalar, _Dim >::translation | ( | ) | const [inline] |
Definition at line 167 of file Eigen2Support/Geometry/Transform.h.
TranslationPart Transform< _Scalar, _Dim >::translation | ( | ) | [inline] |
Definition at line 169 of file Eigen2Support/Geometry/Transform.h.
ConstTranslationPart Transform< _Scalar, _Dim >::translation | ( | ) | const [inline] |
Definition at line 389 of file Geometry/Transform.h.
TranslationPart Transform< _Scalar, _Dim >::translation | ( | ) | [inline] |
Definition at line 391 of file Geometry/Transform.h.
Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> Transform< _Scalar, _Dim >::translationExt | ( | ) | [inline] |
Definition at line 595 of file Geometry/Transform.h.
const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> Transform< _Scalar, _Dim >::translationExt | ( | ) | const [inline] |
Definition at line 601 of file Geometry/Transform.h.
const ProductReturnType<OtherDerived,MatrixType>::Type operator* | ( | const MatrixBase< OtherDerived > & | a, |
const Transform< _Scalar, _Dim > & | b | ||
) | [friend] |
Definition at line 188 of file Eigen2Support/Geometry/Transform.h.
Transform operator* | ( | const LinearMatrixType & | mat, |
const Transform< _Scalar, _Dim > & | t | ||
) | [friend] |
Definition at line 234 of file Eigen2Support/Geometry/Transform.h.
const internal::transform_left_product_impl<OtherDerived,Mode,Options,_Dim,_Dim+1>::ResultType operator* | ( | const EigenBase< OtherDerived > & | a, |
const Transform< _Scalar, _Dim > & | b | ||
) | [friend] |
The left hand side other might be either:
Definition at line 419 of file Geometry/Transform.h.
TransformTimeDiagonalReturnType operator* | ( | const DiagonalBase< DiagonalDerived > & | a, |
const Transform< _Scalar, _Dim > & | b | ||
) | [friend] |
The lhs diagonal matrix is interpreted as an affine scaling transformation. The product results in a Transform of the same type (mode) as the lhs only if the lhs mode is no isometry. In that case, the returned transform is an affinity.
Definition at line 445 of file Geometry/Transform.h.
MatrixType Transform< _Scalar, _Dim >::m_matrix [protected] |
Definition at line 88 of file Eigen2Support/Geometry/Transform.h.