From 60804c306dd9ad42e82402f25d31587cf749f3bb Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Thu, 21 Aug 2008 17:02:47 +0000 Subject: *patch by Daniel Gomez: - bugfix in SparseMatrix - add a sparse unit test * renamed Transform::affine => linear --- Eigen/src/Geometry/Transform.h | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'Eigen/src/Geometry/Transform.h') diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index 158624617..4710cc4bc 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -65,9 +65,9 @@ public: typedef _Scalar Scalar; /** type of the matrix used to represent the transformation */ typedef Matrix MatrixType; - /** type of the matrix used to represent the affine part of the transformation */ + /** type of the matrix used to represent the linear part of the transformation */ typedef Matrix AffineMatrixType; - /** type of read/write reference to the affine part of the transformation */ + /** type of read/write reference to the linear part of the transformation */ typedef Block AffinePart; /** type of a vector */ typedef Matrix VectorType; @@ -110,10 +110,10 @@ public: /** \returns a writable expression of the transformation matrix */ inline MatrixType& matrix() { return m_matrix; } - /** \returns a read-only expression of the affine (linear) part of the transformation */ - inline const AffinePart affine() const { return m_matrix.template block(0,0); } - /** \returns a writable expression of the affine (linear) part of the transformation */ - inline AffinePart affine() { return m_matrix.template block(0,0); } + /** \returns a read-only expression of the linear (linear) part of the transformation */ + inline const AffinePart linear() const { return m_matrix.template block(0,0); } + /** \returns a writable expression of the linear (linear) part of the transformation */ + inline AffinePart linear() { return m_matrix.template block(0,0); } /** \returns a read-only expression of the translation vector of the transformation */ inline const TranslationPart translation() const { return m_matrix.template block(0,Dim); } @@ -235,7 +235,7 @@ Transform& Transform::scale(const MatrixBase &other) { EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim)); - affine() = (affine() * other.asDiagonal()).lazy(); + linear() = (linear() * other.asDiagonal()).lazy(); return *this; } @@ -263,7 +263,7 @@ Transform& Transform::translate(const MatrixBase &other) { EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim)); - translation() += affine() * other; + translation() += linear() * other; return *this; } @@ -303,7 +303,7 @@ template Transform& Transform::rotate(const RotationType& rotation) { - affine() *= ToRotationMatrix::convert(rotation); + linear() *= ToRotationMatrix::convert(rotation); return *this; } @@ -334,8 +334,8 @@ Transform& Transform::shear(Scalar sx, Scalar sy) { EIGEN_STATIC_ASSERT(int(Dim)==2, you_did_a_programming_error); - VectorType tmp = affine().col(0)*sy + affine().col(1); - affine() << affine().col(0) + affine().col(1)*sx, tmp; + VectorType tmp = linear().col(0)*sy + linear().col(1); + linear() << linear().col(0) + linear().col(1)*sx, tmp; return *this; } @@ -360,18 +360,18 @@ template typename Transform::AffineMatrixType Transform::extractRotation() const { - return affine().qr().matrixQ(); + return linear().qr().matrixQ(); } /** \returns the rotation part of the transformation assuming no shear in - * the affine part. + * the linear part. * \sa extractRotation() */ template typename Transform::AffineMatrixType Transform::extractRotationNoShear() const { - return affine().cwise().abs2() + return linear().cwise().abs2() .verticalRedux(ei_scalar_sum_op()).cwise().sqrt(); } @@ -384,11 +384,11 @@ Transform& Transform::fromPositionOrientationScale(const MatrixBase &position, const OrientationType& orientation, const MatrixBase &scale) { - affine() = ToRotationMatrix::convert(orientation); + linear() = ToRotationMatrix::convert(orientation); translation() = position; m_matrix(Dim,Dim) = 1.; m_matrix.template block<1,Dim>(Dim,0).setZero(); - affine() *= scale.asDiagonal(); + linear() *= scale.asDiagonal(); return *this; } @@ -431,7 +431,7 @@ struct ei_transform_product_impl > ResultType; // FIXME should we offer an optimized version when the last row is known to be 0,0...,0,1 ? static ResultType run(const TransformType& tr, const Other& other) - { return ((tr.affine().nestByValue() * other).nestByValue() + tr.translation().nestByValue()).nestByValue() + { return ((tr.linear().nestByValue() * other).nestByValue() + tr.translation().nestByValue()).nestByValue() * (Scalar(1) / ( (tr.matrix().template block<1,Dim>(Dim,0) * other).coeff(0) + tr.matrix().coeff(Dim,Dim))); } }; -- cgit v1.2.3