diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index da3187e3c..842a6bb4e 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -1034,6 +1034,17 @@ struct ei_transform_right_product_impl { return tr.linear() * other + tr.translation(); } }; +// Affine * set of column vectors +// FIXME use a ReturnByValue to remove the temporary +template +struct ei_transform_right_product_impl +{ + typedef Transform TransformType; + typedef Matrix ResultType; + static ResultType run(const TransformType& tr, const Other& other) + { return (tr.linear() * other).colwise() + tr.translation(); } +}; + // Affine * homogeneous column vector // FIXME added for backward compatibility, but I'm not sure we should keep it template