commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <>
Subject Re: [math] Adding a Quaternion class and modifying the Rotation class
Date Tue, 26 Jul 2011 22:37:45 GMT

> In project SIRIUS (CNES), we would like to slightly modify the Rotation
> class so it can fit our needs, and to create an independant Quaternion
> class.
> - Quaternion : We need to separate these two notions : the quaternion
> and the rotation representation, because we have to be able to access
> directly to a quaternion as a mathematical object, not only as a
> rotation quaternion.
> - Rotation : 
>  - We would like to base the rotation upon the new Quaternion object.
>  - We would like to use the CCSDS convention (the same as ESA projects)
> for the rotation quaternion : 
> 	if Q represents a rotation, applied to a vector X giving the
> vector X', we have : X' = Q.X.Qt (Qt =  conjugate(Q) ).
>  -> As the actual rotation (based upon 4 double q1/2/3/4) does not use
> this convention, we propose to modify the getters/setters (getQi /
> setQi) to preserve compatibility and to add a getQ that returns a
> quaternion compliant with CCSDS convention.
> This feature can be summed up in 3 points :
> - create a Quaternion class (mathematical object)
> - modify the Rotation class to use this quaternion, with the CCSDS
> convention
> - modify the actual methods in Rotation class to preserve compatibility
> The Quaternionn class should be placed in the geometry.euclidian.threed
> package.

I'd propose to put it in the "complex" package. It would thus stand out as a
mathematical concept of its own, as you suggest above.

> Thanks in advance for your advice about this feature. Please also tell
> us the best way to communicate on such features (mailing list or/and bug
> tracker ?).


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message