Re: [eigen] Rigid transformations in eigen: use of dual quaternions

[ Thread Index | Date Index | More Archives ]

2009/9/12 Rohit Garg <rpg.314@xxxxxxxxx>:
> Hi,
> a) What is the internal representation of affine transformations
> (excluding scaling) in eigen?

For a N-dimensional transformation, in Affine and Projective modes,
it's internally represented as a (N+1)*(N+1) matrix.

In AffineCompact mode it's a N*(N+1) matrix.

The top-left N*N block is the linear part, the last column contains
the translation part. Exactly like with OpenGL.

> b) I am right now rolling my own dual quaternion class, but if eigen
> provides dual quaternions (say as RigidTransform class, to exclude
> scaling) then it would be very useful indeed.
> c) Dual quaternions have many advantages, in that they allow artifact
> free skining, rigid transform interpolation, are resistant to
> numerical defects (just like quaternions). Was their use considered
> and discarded?

Sorry, I have no clue what dual quaternions are. I don't remember them
being considered. Can you detail what they are and how they are better
than existing Eigen classes for real use cases? What is skining? What
does "rigid" mean here?

> d) The recently introduced EIGEN_TRANSFORM_PLUGIN, what does it do?

It allows one to add stuff into the Transform class from the outside.
Just like the EIGEN_MATRIXBASE_PLUGIN described here,

> e) Interpolation is the key thing here. We need it and we are having
> to do it ourselves. But we'd like to have the code rolled into eigen,
> so that it plays nice with the rest of the geometry api and allows
> convenient extraction of matrices (to upload as uniforms to shaders).

Great, thanks for caring.
For interpolation, all I can see in current Eigen is
Quaternion::slerp(). Can you also explain how what you want to do is
different from that?

(I know very little about quaternions usage in 3D geometry)


Mail converted by MHonArc 2.6.19+