| [eigen] Cumbersome syntax questions/feedback |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
Hi guys,
After converting to Eigen in a couple of work projects (mobile robotics
stuff), and being very happy with the results (great job! :), I've
started to convert an open source project of mine to Eigen as well
(http://www.peekabot.org). However I ran into some minor troubles with
cumbersome syntax -- some questions/feedback below.
First, I dabbled with replacing our own rudimentary Matrix4f class used
for affine coordinate system transformations with Eigen::Transform3f.
Works wonderfully, but expressions involving inverse() becomes a bit
cumbersome (I'm using 2.0.4):
Eigen::Transform3f A, B, C;
...
C = A.inverse() * // doesn't compile, inverse() returns a matrix type
Eigen::Translation3f(...) *
Eigen::AngleAxisf(...) *
Eigen::Translation3f(...) *
B;
C = Eigen::Transform3f(A.inverse()) * // works, but a bit cumbersome
Eigen::Translation3f(...) *
...
What's the reason that Transform3f::inverse() returns a matrix type
rather than a transform type?
Looking for a less cumbersome syntax I tried to use Eigen::Matrix4f
instead, but ran into a similar issue:
Eigen::Matrix4f A;
...
A = A * Eigen::Translation3f(...).matrix(); // error, no such method
A = A * Eigen::Transform3f(Eigen::Translation3f(...)).matrix(); //
works, but a bit cumbersome to use
Any special reason that Translation3f and friends doesn't have a
matrix() method? Or am I doing something plain wrong here?
It's nothing I can't cope with, but in an ideal world the syntax would
be a bit less cumbersome :) I guess the above "workarounds" might
involve some unnecessary temporaries as well.
A reason to justify the current syntax would be greatly appreciated
(maybe that could be put in the documentation as well).
/Staffan
Attachment:
signature.asc
Description: This is a digitally signed message part
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |