void MArmature::updateBonesSkinMatrix(void) { M_PROFILE_SCOPE(MArmature::updateBonesSkinMatrix); unsigned int i; MOBone * bone = NULL; for(i=0; i<m_bonesNumber; i++) { bone = m_bones[i]; (*bone->getSkinMatrix()) = (*bone->getMatrix()) * (*bone->getInversePoseMatrix()); } }
void MArmature::constructBonesInversePoseMatrix(void) { M_PROFILE_SCOPE(MArmature::constructBonesInversePoseMatrix); unsigned int i; MOBone * bone = NULL; processBonesLinking(); // construct inverse pose matrix for(i=0; i<m_bonesNumber; i++) { bone = m_bones[i]; (*bone->getInversePoseMatrix()) = bone->getMatrix()->getInverse(); } }