Home | History | Annotate | Download | only in Geometry

Lines Matching refs:Transform

19 template<typename Transform>
24 Dim = Transform::Dim,
25 HDim = Transform::HDim,
26 Mode = Transform::Mode,
71 * \class Transform
88 * this class you have to think a Transform object as its internal
103 * However, unlike a plain matrix, the Transform class provides many features
105 * with any other transformations (Transform,Translation,RotationBase,Matrix)
106 * and can be directly used to transform implicit homogeneous vectors. All these
111 * according to the nature of each terms. Likewise, when applying the transform
152 * The concatenation of a Transform object with any kind of other transformation
153 * always returns a Transform object.
161 * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
178 class Transform
221 /** The return type of the product between a diagonal matrix and a transform */
222 typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
232 inline Transform()
238 inline Transform(const Transform& other)
244 inline explicit Transform(const TranslationType& t)
249 inline explicit Transform(const UniformScaling<Scalar>& s)
255 inline explicit Transform(const RotationBase<Derived, Dim>& r)
261 inline Transform& operator=(const Transform& other)
264 typedef internal::transform_take_affine_part<Transform> take_affine_part;
268 inline explicit Transform(const EigenBase<OtherDerived>& other)
279 inline Transform& operator=(const EigenBase<OtherDerived>& other)
289 inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
297 inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
324 typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
338 Transform(const ReturnByValue<OtherDerived>& other)
345 Transform& operator=(const ReturnByValue<OtherDerived>& other)
352 inline Transform(const QMatrix& other);
353 inline Transform& operator=(const QMatrix& other);
355 inline Transform(const QTransform& other);
356 inline Transform& operator=(const QTransform& other);
387 /** \returns an expression of the product between the transform \c *this and a matrix expression \a other
400 EIGEN_STRONG_INLINE const typename internal::transform_right_product_impl<Transform, OtherDerived>::ResultType
402 { return internal::transform_right_product_impl<Transform
404 /** \returns the product expression of a transformation matrix \a a times a transform \a b
413 operator * (const EigenBase<OtherDerived> &a, const Transform &b)
416 /** \returns The product expression of a transform \a a times a diagonal matrix \a b
419 * product results in a Transform of the same type (mode) as the lhs only if the lhs
420 * mode is no isometry. In that case, the returned transform is an affinity.
431 /** \returns The product expression of a diagonal matrix \a a times a transform \a b
434 * product results in a Transform of the same type (mode) as the lhs only if the lhs
435 * mode is no isometry. In that case, the returned transform is an affinity.
439 operator * (const DiagonalBase<DiagonalDerived> &a, const Transform &b)
450 inline Transform& operator*=(const EigenBase<OtherDerived>& other) { return *this = *this * other; }
453 inline const Transform operator * (const Transform& other) const
455 return internal::transform_transform_product_impl<Transform,Transform>::run(*this,other);
461 // error: template instantiation resulted in unexpected function type of "Eigen::Transform<double, 3, 32, 0>
462 // (const Eigen::Transform<double, 3, 2, 0> &) const"
464 // "Eigen::internal::transform_transform_product_impl<Eigen::Transform<double, 3, 32, 0>,
465 // Eigen::Transform<double, 3, Mode, Options>, <expression>>::ResultType (const Eigen::Transform<double, 3, Mode, Options> &) const")
469 typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> > ProductType;
477 operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
485 inline typename internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType
486 operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
488 return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::run(*this,other);
497 * \todo In the future this function should be returning a Transform expression.
499 static const Transform Identity()
501 return Transform(MatrixType::Identity());
505 inline Transform& scale(const MatrixBase<OtherDerived> &other);
508 inline Transform& prescale(const MatrixBase<OtherDerived> &other);
510 inline Transform& scale(const Scalar& s);
511 inline Transform& prescale(const Scalar& s);
514 inline Transform& translate(const MatrixBase<OtherDerived> &other);
517 inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
520 inline Transform& rotate(const RotationType& rotation);
523 inline Transform& prerotate(const RotationType& rotation);
525 Transform& shear(const Scalar& sx, const Scalar& sy);
526 Transform& preshear(const Scalar& sx, const Scalar& sy);
528 inline Transform& operator=(const TranslationType& t);
529 inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
530 inline Transform operator*(const TranslationType& t) const;
532 inline Transform& operator=(const UniformScaling<Scalar>& t);
533 inline Transform& operator*=(const UniformScaling<Scalar>& s) { return scale(s.factor()); }
534 inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode))> operator*(const UniformScaling<Scalar>& s) const
536 Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode)),Options> res = *this;
541 inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linear() *= s; return *this; }
544 inline Transform& operator=(const RotationBase<Derived,Dim>& r);
546 inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
548 inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
557 Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
560 inline Transform inverse(TransformTraits traits = (TransformTraits)Mode) const;
573 inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type cast() const
574 { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type(*this); }
578 inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& other)
588 bool isApprox(const Transform& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
640 typedef Transform<float,2,Isometry> Isometry2f;
642 typedef Transform<float,3,Isometry> Isometry3f;
644 typedef Transform<double,2,Isometry> Isometry2d;
646 typedef Transform<double,3,Isometry> Isometry3d;
649 typedef Transform<float,2,Affine> Affine2f;
651 typedef Transform<float,3,Affine> Affine3f;
653 typedef Transform<double,2,Affine> Affine2d;
655 typedef Transform<double,3,Affine> Affine3d;
658 typedef Transform<float,2,AffineCompact> AffineCompact2f;
660 typedef Transform<float,3,AffineCompact> AffineCompact3f;
662 typedef Transform<double,2,AffineCompact> AffineCompact2d;
664 typedef Transform<double,3,AffineCompact> AffineCompact3d;
667 typedef Transform<float,2,Projective> Projective2f;
669 typedef Transform<float,3,Projective> Projective3f;
671 typedef Transform<double,2,Projective> Projective2d;
673 typedef Transform<double,3,Projective> Projective3d;
685 Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
696 Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& other)
712 QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
726 Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
737 Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform& other)
756 QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
780 Transform<Scalar,Dim,Mode,Options>&
781 Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
794 inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::scale(const Scalar& s)
807 Transform<Scalar,Dim,Mode,Options>&
808 Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
821 inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::prescale(const Scalar& s)
834 Transform<Scalar,Dim,Mode,Options>&
835 Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
848 Transform<Scalar,Dim,Mode,Options>&
849 Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
878 Transform<Scalar,Dim,Mode,Options>&
879 Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
894 Transform<Scalar,Dim,Mode,Options>&
895 Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
908 Transform<Scalar,Dim,Mode,Options>&
909 Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
924 Transform<Scalar,Dim,Mode,Options>&
925 Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
938 inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const TranslationType& t)
947 inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const TranslationType& t) const
949 Transform res = *this;
955 inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const UniformScaling<Scalar>& s)
965 inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const RotationBase<Derived,Dim>& r)
975 inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const RotationBase<Derived,Dim>& r) const
977 Transform res = *this;
994 const typename Transform<Scalar,Dim,Mode,Options>::LinearMatrixType
995 Transform<Scalar,Dim,Mode,Options>::rotation() const
1016 void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
1045 void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
1066 Transform<Scalar,Dim,Mode,Options>&
1067 Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
1138 Transform<Scalar,Dim,Mode,Options>
1139 Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
1141 Transform res;
1144 internal::projective_transform_inverse<Transform>::run(*this, res);
1158 eigen_assert(false && "Invalid transform traits in Transform::Inverse");
1185 struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
1186 typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
1198 static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
1200 transform->linear() = other;
1201 transform->translation().setZero();
1202 transform->makeAffine();
1209 static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
1211 transform->affine() = other;
1212 transform->makeAffine();
1219 static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
1220 { transform->matrix() = other; }
1226 static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, const Other& other)
1227 { transform->matrix() = other.template block<Dim,HDim>(0,0); }
1316 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1318 typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
1327 typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
1329 typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
1343 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1359 typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
1375 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1390 *** Specializations of operator* with another Transform ***
1394 struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,false >
1397 typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
1398 typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
1399 typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
1411 struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,true >
1413 typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
1414 typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
1415 typedef Transform<Scalar,Dim,Projective> ResultType;
1423 struct transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,Dim,Projective,RhsOptions>,true >
1425 typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
1426 typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
1427 typedef Transform<Scalar,Dim,Projective> ResultType;
1438 struct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,Dim,AffineCompact,RhsOptions>,true >
1440 typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
1441 typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
1442 typedef Transform<Scalar,Dim,Projective> ResultType;