//----------------------------------------------------------------------- void Skeleton::_getBoneMatrices(Matrix4* pMatrices) { // Update derived transforms _updateTransforms(); /* Calculating the bone matrices ----------------------------- Now that we have the derived scaling factors, orientations & positions in the Bone nodes, we have to compute the Matrix4 to apply to the vertices of a mesh. Because any modification of a vertex has to be relative to the bone, we must first reverse transform by the Bone's original derived position/orientation/scale, then transform by the new derived position/orientation/scale. Also note we combine scale as equivalent axes, no shearing. */ BoneList::const_iterator i, boneend; boneend = mBoneList.end(); for (i = mBoneList.begin();i != boneend; ++i) { Bone* pBone = *i; pBone->_getOffsetTransform(*pMatrices); pMatrices++; } }