Re: [eigen] Euler-angles and partial reductions API design |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
And, now that I understand why you have an AngleAxis class, I also understand why you naturally added EulerAngles as a pure convenience, even without trying to make it as fast as possible. Now I agree it's always a good thing to have. Cheers, Benoit On Saturday 19 July 2008 01:08:35 Benoît Jacob wrote: > Ah OK, I didn't realize that. Thanks for the explanation. > > Benoit > > On Saturday 19 July 2008 00:58:30 Gael Guennebaud wrote: > > well, I would prefer to keep the AngleAxis class, for various reasons. > > One of them is that we also have the Quaternion, so you create an > > angle axis and it gets automatically converted to whatever you want: > > > > Quaternion q = AngleAxis(a,b); > > Matrix m = AngleAxis(a,b); > > > > that is pretty nice IMO, and Matrix3f::Rotation(a,b) will never be as > > explicit as AngleAxis(a,b), isn't it ? > > > > I also have to say that since two angle-axis cannot be directly > > composed, AngleAxis(a,b) * AngleAxis(c,d) must convert the two > > operands to a quaternion or a matrix. In practice, converting them to > > Quaternion is always faster even if at the end you want a matrix (and > > even if you have special AngleAxis to rotation matrix conversion > > functions for rotation around basis axes). > > > > gael. > > > > > one more remark, > > > > > > if we drop EulerAngles then we can also drop the AngleAxis class in > > > favor of just "rotation" functions, not classes. so the above snippet > > > becomes > > > > > > Matrix3f m2 = Matrix3f::rotation(a1, Vector3f(1,0,0)) > > > * Matrix3f::rotation(a2, Vector3f(0,1,0)) > > > * Matrix3f::rotation(a3, Vector3f(0,0,1)); > > > > > > I think that's nicer! > > > > > > Cheers, > > > Benoit
Attachment:
signature.asc
Description: This is a digitally signed message part.
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |