[Feature Request] non-vector quaternions
Submitted by J Baxter
Assigned to Nobody
Link to original bugzilla bug (#719)
Description
Hello; I would like to float the idea of whether it might be possible to generalize the current implementation of quaternions as 4-vectors (internally, 4 by 1 matrices) to allow N columns of quaternions, stored within a 4 by N matrix internally.
My motivation is quaternion-based rigid body dynamics. The positions of N rigid bodies can gracefully be represented by an 3 by N matrix; this allows elegant features of Eigen like broadcasting and reductions to be used in place of more verbose for loops, and likely opens up optimization opportunities to the compiler.
It is my understanding that it is currently not possible to similarly aggregate quaternions without doing something complicated and error-prone like storing the quaternions as 4-vectors in a matrix, converting to quaternion type when read from the matrix and converting back to vector type when writing back to the matrix.
As far as implementation goes, would there be any issues with a simple wrapper around Matrix automating the conversion described in the previous paragraph? It might make sense to call the class something like QuaternionColumns. That may be cleaner than generalizing Quaternion itself.
Thank you very much for your consideration and time!