diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-05-18 17:55:50 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-05-18 17:55:50 +0200 |
commit | e1867288672b7f8acff34fbdee59e7bb05ab9ead (patch) | |
tree | a484d649ed4188ed941ef22293ec9083ca939c83 /Eigen/src | |
parent | e0832d5d9312d722f488704f1571b7b9780d463e (diff) |
fix #1 : need to nest by value the affine part in homogeneous product
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Geometry/Homogeneous.h | 4 | ||||
-rw-r--r-- | Eigen/src/Geometry/Transform.h | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index 0041ca51f..34d4d074b 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -102,11 +102,11 @@ template<typename MatrixType,int Direction> class Homogeneous template<typename Scalar, int Dim, int Mode> friend inline const ei_homogeneous_left_product_impl<Homogeneous, - typename Transform<Scalar,Dim,Mode>::AffinePart> + typename Transform<Scalar,Dim,Mode>::AffinePartNested> operator* (const Transform<Scalar,Dim,Mode>& tr, const Homogeneous& rhs) { ei_assert(Direction==Vertical); - return ei_homogeneous_left_product_impl<Homogeneous,typename Transform<Scalar,Dim,Mode>::AffinePart> + return ei_homogeneous_left_product_impl<Homogeneous,typename Transform<Scalar,Dim,Mode>::AffinePartNested > (tr.affine(),rhs.m_matrix); } diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index 186580ab4..77a06fe17 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -184,6 +184,10 @@ public: typedef typename ei_meta_if<int(Mode)==int(AffineCompact), MatrixType&, Block<MatrixType,Dim,HDim> >::ret AffinePart; + /** type of read/write reference to the affine part of the transformation */ + typedef typename ei_meta_if<int(Mode)==int(AffineCompact), + MatrixType&, + NestByValue<Block<MatrixType,Dim,HDim> > >::ret AffinePartNested; /** type of a vector */ typedef Matrix<Scalar,Dim,1> VectorType; /** type of a read/write reference to the translation part of the rotation */ |