Lines Matching full:dim
24 Dim = Transform::Dim, enumerator
42 int Dim,
58 int Dim,
95 * - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
97 * - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
98 * - #Projective: the transformation is stored as a (Dim+1)^2 matrix
129 * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product.
136 * \b Translation t (Dim)x(1):
142 * \b Rotation R (Dim)x(Dim):
148 * \b Linear \b Matrix L (Dim)x(Dim):
154 * \b Affine \b Matrix A (Dim)x(Dim+1):
160 * \b Scaling \b DiagonalMatrix S (Dim)x(Dim):
166 * \b Column \b point v (Dim)x(1):
172 * \b Set \b of \b column \b points V1...Vn (Dim)x(n):
186 * Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation,
187 * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
188 * The solution is either to use a Dim x Dynamic matrix or explicitly request a
211 Dim = _Dim, ///< space dimension in which the transformation holds
213 Rows = int(Mode)==(AffineCompact) ? Dim : HDim
224 typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
226 …typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (int(Options)&RowMajor)==0> LinearP…
228 …typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (int(Options)&RowMajor)=…
232 Block<MatrixType,Dim,HDim> >::type AffinePart;
236 const Block<const MatrixType,Dim,HDim> >::type ConstAffinePart;
238 typedef Matrix<Scalar,Dim,1> VectorType;
240 …typedef Block<MatrixType,Dim,1,!(internal::traits<MatrixType>::Flags & RowMajorBit)> TranslationPa…
242 …typedef const Block<ConstMatrixType,Dim,1,!(internal::traits<MatrixType>::Flags & RowMajorBit)> Co…
244 typedef Translation<Scalar,Dim> TranslationType;
249 typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
276 EIGEN_DEVICE_FUNC inline explicit Transform(const RotationBase<Derived, Dim>& r)
284 /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
292 …internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.der…
295 /** Set \c *this from a Dim^2 or (Dim+1)^2 matrix. */
302 …internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.der…
307 EIGEN_DEVICE_FUNC inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
315 EIGEN_DEVICE_FUNC inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
337 m_matrix.template block<Dim,Dim+1>(0,0) = other.matrix().template block<Dim,Dim+1>(0,0);
342 typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
343 …internal::transform_construct_from_matrix<OtherMatrixType,Mode,Options,Dim,HDim>::run(this, other.…
398 /** \returns a read-only expression of the Dim x HDim affine part of the transformation */
400 /** \returns a writable expression of the Dim x HDim affine part of the transformation */
404 …NC inline ConstTranslationPart translation() const { return ConstTranslationPart(m_matrix,0,Dim); }
406 EIGEN_DEVICE_FUNC inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); }
411 * \li an homogeneous vector of size Dim+1,
412 * \li a set of homogeneous vectors of size Dim+1 x N,
413 * \li a transformation matrix of size Dim+1 x Dim+1.
416 … * \li a point of size Dim (computes: \code this->linear() * other + this->translation()\endcode),
417 …* \li a set of N points as a Dim x N matrix (computes: \code (this->linear() * other).colwise() + …
441 * \li a linear transformation matrix of size Dim x Dim,
442 * \li an affine transformation matrix of size Dim x Dim+1,
443 * \li a general transformation matrix of size Dim+1 x Dim+1.
448 …{ return internal::transform_left_product_impl<OtherDerived,Mode,Options,Dim,HDim>::run(a.derived(…
479 res.matrix().row(Dim) = b.matrix().row(Dim);
503 …typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherO…
511 operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
519 …name internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOpti…
520 operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
522 …return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOp…
590 …inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linearExt() *= s; return *this…
593 EIGEN_DEVICE_FUNC inline Transform& operator=(const RotationBase<Derived,Dim>& r);
595 …EIGEN_DEVICE_FUNC inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate…
597 EIGEN_DEVICE_FUNC inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
628 …line typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::ty…
629 …{ return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >…
633 …EIGEN_DEVICE_FUNC inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& oth…
654 * \returns the Dim x Dim linear part if the transformation is affine,
655 * and the HDim x Dim part for projective transformations.
657 EIGEN_DEVICE_FUNC inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt()
658 { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
660 * \returns the Dim x Dim linear part if the transformation is affine,
661 * and the HDim x Dim part for projective transformations.
663 …EIGEN_DEVICE_FUNC inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt…
664 { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
670 EIGEN_DEVICE_FUNC inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt()
671 { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
676 …EIGEN_DEVICE_FUNC inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translation…
677 { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
739 template<typename Scalar, int Dim, int Mode,int Options>
740 Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
750 template<typename Scalar, int Dim, int Mode,int Options>
751 Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& ot…
753 EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
770 template<typename Scalar, int Dim, int Mode, int Options>
771 QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
774 EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
784 template<typename Scalar, int Dim, int Mode,int Options>
785 Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
795 template<typename Scalar, int Dim, int Mode, int Options>
796 Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform&…
799 EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
814 template<typename Scalar, int Dim, int Mode, int Options>
815 QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
817 EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
837 template<typename Scalar, int Dim, int Mode, int Options>
839 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
840 Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
842 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
852 template<typename Scalar, int Dim, int Mode, int Options>
853 EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::sc…
864 template<typename Scalar, int Dim, int Mode, int Options>
866 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
867 Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
869 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
879 template<typename Scalar, int Dim, int Mode, int Options>
880 EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::pr…
883 m_matrix.template topRows<Dim>() *= s;
891 template<typename Scalar, int Dim, int Mode, int Options>
893 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
894 Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
896 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
905 template<typename Scalar, int Dim, int Mode, int Options>
907 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
908 Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
910 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
912 affine() += other * m_matrix.row(Dim);
926 * - a Dim x Dim matrix expression,
935 template<typename Scalar, int Dim, int Mode, int Options>
937 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
938 Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
940 linearExt() *= internal::toRotationMatrix<Scalar,Dim>(rotation);
951 template<typename Scalar, int Dim, int Mode, int Options>
953 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
954 Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
956 m_matrix.template block<Dim,HDim>(0,0) = internal::toRotationMatrix<Scalar,Dim>(rotation)
957 * m_matrix.template block<Dim,HDim>(0,0);
966 template<typename Scalar, int Dim, int Mode, int Options>
967 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
968 Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
970 EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
982 template<typename Scalar, int Dim, int Mode, int Options>
983 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
984 Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
986 EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
988 …m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<…
996 template<typename Scalar, int Dim, int Mode, int Options>
997 EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::op…
1005 template<typename Scalar, int Dim, int Mode, int Options>
1006 EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::ope…
1013 template<typename Scalar, int Dim, int Mode, int Options>
1014 EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::op…
1022 template<typename Scalar, int Dim, int Mode, int Options>
1024 …FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(cons…
1026 linear() = internal::toRotationMatrix<Scalar,Dim>(r);
1032 template<typename Scalar, int Dim, int Mode, int Options>
1034 …FUNC inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const…
1076 template<typename Scalar, int Dim, int Mode, int Options>
1078 typename Transform<Scalar,Dim,Mode,Options>::RotationReturnType
1079 Transform<Scalar,Dim,Mode,Options>::rotation() const
1096 template<typename Scalar, int Dim, int Mode, int Options>
1098 EIGEN_DEVICE_FUNC void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixTyp…
1105 sv.coeffRef(Dim-1) *= x;
1110 m.col(Dim-1) *= x;
1126 template<typename Scalar, int Dim, int Mode, int Options>
1128 EIGEN_DEVICE_FUNC void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType…
1135 sv.coeffRef(Dim-1) *= x;
1140 m.col(Dim-1) *= x;
1148 template<typename Scalar, int Dim, int Mode, int Options>
1150 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
1151 Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> …
1154 linear() = internal::toRotationMatrix<Scalar,Dim>(orientation);
1169 static const int Dim = MatrixType::ColsAtCompileTime-1;
1170 mat.template block<1,Dim>(Dim,0).setZero();
1171 mat.coeffRef(Dim,Dim) = typename MatrixType::Scalar(1);
1221 template<typename Scalar, int Dim, int Mode, int Options>
1222 EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>
1223 Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
1234 res.matrix().template topLeftCorner<Dim,Dim>() = linear().transpose();
1238 res.matrix().template topLeftCorner<Dim,Dim>() = linear().inverse();
1245 res.matrix().template topRightCorner<Dim,1>()
1246 = - res.matrix().template topLeftCorner<Dim,Dim>() * translation();
1263 { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
1265 { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
1268 template<typename Scalar, int Dim, int Options>
1269 struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
1270 typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
1279 template<typename Other, int Mode, int Options, int Dim, int HDim>
1280 struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,Dim>
1282 …static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other&…
1290 template<typename Other, int Mode, int Options, int Dim, int HDim>
1291 struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,HDim>
1293 …static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other&…
1300 template<typename Other, int Mode, int Options, int Dim, int HDim>
1301 struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, HDim,HDim>
1303 …static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other&…
1307 template<typename Other, int Options, int Dim, int HDim>
1308 struct transform_construct_from_matrix<Other, AffineCompact,Options,Dim,HDim, HDim,HDim>
1310 …static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, con…
1311 { transform->matrix() = other.template block<Dim,HDim>(0,0); }
1346 Dim = TransformType::Dim,
1358 typedef Block<ResultType, Dim, OtherCols, int(MatrixType::RowsAtCompileTime)==Dim> TopLeftLhs;
1361 TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() = T.affine() * other;
1372 Dim = TransformType::Dim,
1382 EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
1384 typedef Block<ResultType, Dim, OtherCols, true> TopLeftLhs;
1386 TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() += T.linear() * other;
1393 struct transform_right_product_impl< TransformType, MatrixType, 2, 1> // rhs is a vector of size Dim
1397 Dim = TransformType::Dim,
1407 EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
1409 Matrix<typename ResultType::Scalar, Dim+1, 1> rhs;
1410 rhs.template head<Dim>() = other; rhs[Dim] = typename ResultType::Scalar(1);
1412 return res.template head<Dim>();
1421 template<typename Other,int Mode, int Options, int Dim, int HDim>
1422 struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, HDim,HDim>
1424 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1426 typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
1432 template<typename Other, int Options, int Dim, int HDim>
1433 struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, HDim,HDim>
1435 typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
1437 typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
1441 res.matrix().noalias() = other.template block<HDim,Dim>(0,0) * tr.matrix();
1442 res.matrix().col(Dim) += other.col(Dim);
1448 template<typename Other,int Mode, int Options, int Dim, int HDim>
1449 struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,HDim>
1451 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1458 res.matrix().row(Dim) = tr.matrix().row(Dim);
1464 template<typename Other, int Options, int Dim, int HDim>
1465 struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, Dim,HDim>
1467 typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
1473 res.matrix().noalias() = other.template block<Dim,Dim>(0,0) * tr.matrix();
1474 res.translation() += other.col(Dim);
1480 template<typename Other,int Mode, int Options, int Dim, int HDim>
1481 struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,Dim>
1483 typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
1490 res.matrix().row(Dim) = tr.matrix().row(Dim);
1491 res.matrix().template topRows<Dim>().noalias()
1492 = other * tr.matrix().template topRows<Dim>();
1501 template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
1502 …uct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim…
1505 typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
1506 typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
1507 typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
1518 template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
1519 …uct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim…
1521 typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
1522 typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
1523 typedef Transform<Scalar,Dim,Projective> ResultType;
1530 template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
1531 … transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,…
1533 typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
1534 typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
1535 typedef Transform<Scalar,Dim,Projective> ResultType;
1539 res.matrix().template topRows<Dim>() = lhs.matrix() * rhs.matrix();
1540 res.matrix().row(Dim) = rhs.matrix().row(Dim);
1545 template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
1546 …ct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,D…
1548 typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
1549 typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
1550 typedef Transform<Scalar,Dim,Projective> ResultType;
1553 ResultType res(lhs.matrix().template leftCols<Dim>() * rhs.matrix());
1554 res.matrix().col(Dim) += lhs.matrix().col(Dim);