yade-users team mailing list archive
Mailing list archive
Re: How se3 and ori is stored
Hi, I updated a little relevant section in the Programmer's manual at
> 1) Ori is declared as Quaternionr. So, it should be [q0,q1,q2,q3].
Quaternions are automagically _represented_ as axis-angle, for
readability, though internally stored as 4 components (as written in the
> 2) I've seen "b2->state->ori.Conjugate()". According to the
> Quaternion.inl file, "ori" has to be stored as q0+q1+q2+q3 for the
> conjugate to be calculated.
same as above
> 3) When we declare orientation = [1,0,0,0] are we saying q0=1, q1=0,
> q2=0, q3=0?
This construction is invalid in both Python and c++. In python:
print q,q,q,q ## show components
print q ## show quaternion (as axis,angle)
## note that angle is zero, it must be normalized to be meaningful
> There seems to be automatic conversions between [q0,q1,q2,q3] and
> [ [axisX,axisY,axisZ],angle ], of which I'm not aware. Can someone
> please enlighten me?