A bug in AnimDynamics Chain?

l am learing how to use AnimDynamics by watching[link text][1]. And I find something appears strange when changing the Local Joint Offset. So I check the codes.

For example ,there are two bones, BoneA = (0,0,0) and BoneB = (0,20,0). And their rigidbodies are RigidbodyA and RigidBodyB. And LocalJointOffset = (0,15,0)

In code “AnimNode_AnimDynamics.cpp”, from line 404 to 429, the code calculates new joint offsets with length of bones, JointOffsetA = (0,15,0), JointOffsetB = (BoneB - BoneA) /2. But when calculating the translations of righbodies, the code uses LocalJointOffset(0,15,0) instead of JointOffsetA and JointOffsetB. So RigidbodyA = BoneA + LocalJointOffset = (0,15,0), and RigidbodyB = BoneB + LocalJointOffset = (0,35,0).

However, in code “AnimNode_AnimDynamics.cpp” from line 180 to 199, it calculates the new translations of BoneA and BoneB with the JointOffsetA and JointOffsetB instead of LocalJointOffset, which is inconsistent with what is done above.

It results in undesired bone offsets.Like this

.
It looks like the chain is broken.