QuatX and QuatW swapped in Ipo?

I’m currently writing a script to export bones and skeleton animation from Blender v2.34. But have run into the following problem:

If I set a keyframe without rotating or translating the bones from their resting position, the LocX, LocY, LocZ is expected to all be zero and QuatX, QuatY, QuatZ, QuatW set to the quaternion identity in the Ipo, right?

However, this is only true for the Loc, not the Quat values. The values set in the ipo turn out to be:

  QuatX = 1.0
  QuatY = 0.0
  QuatZ = 0.0
  QuatW = 0.0

When they should be (the quaternion identity):

  QuatX = 0.0
  QuatY = 0.0
  QuatZ = 0.0
  QuatW = 1.0

The QuatX and QuatW values appear to be swapped in the ipo!

Anyone care to shed some light over this?

PS. I’ve not verified it, but I suspect that the QuatY and QuatZ is also being swapped in a similar fashion.

You’re right, and here’s the solution:

I read on a mailing list. It is caused due to a typo. I think its fixed in the cvs.