aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Geometry/Homogeneous.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-03-02 19:27:13 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-03-02 19:27:13 +0100
commit703c8a0cc62c2d5ebbd1c826cfd428fcb8aee667 (patch)
tree3e8bb21c35ff9d3dd37419cf6ac413ad94a19380 /Eigen/src/Geometry/Homogeneous.h
parentd30f0c0953fa544bb4271234da6853a947ac1a7c (diff)
fix compilation when mixing CompactAffine with Homogeneous objects
Diffstat (limited to 'Eigen/src/Geometry/Homogeneous.h')
-rw-r--r--Eigen/src/Geometry/Homogeneous.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h
index 5c4f26042..2bc4f7e87 100644
--- a/Eigen/src/Geometry/Homogeneous.h
+++ b/Eigen/src/Geometry/Homogeneous.h
@@ -232,13 +232,15 @@ template<typename MatrixType,typename Lhs>
struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
{
typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
+ typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+ typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
typedef typename make_proper_matrix_type<
- typename traits<MatrixType>::Scalar,
- LhsMatrixType::RowsAtCompileTime,
- MatrixType::ColsAtCompileTime,
- MatrixType::PlainObject::Options,
- LhsMatrixType::MaxRowsAtCompileTime,
- MatrixType::MaxColsAtCompileTime>::type ReturnType;
+ typename traits<MatrixTypeCleaned>::Scalar,
+ LhsMatrixTypeCleaned::RowsAtCompileTime,
+ MatrixTypeCleaned::ColsAtCompileTime,
+ MatrixTypeCleaned::PlainObject::Options,
+ LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
+ MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
};
template<typename MatrixType,typename Lhs>
@@ -246,7 +248,8 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
: public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
{
typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
- typedef typename remove_all<typename LhsMatrixType::Nested>::type LhsMatrixTypeNested;
+ typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+ typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
typedef typename MatrixType::Index Index;
homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
: m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
@@ -267,7 +270,7 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
.template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
}
- const typename LhsMatrixType::Nested m_lhs;
+ const typename LhsMatrixTypeCleaned::Nested m_lhs;
const typename MatrixType::Nested m_rhs;
};