//------------------------------------------------------------------------- void SkeletonInstance::loadImpl(void) { mNextAutoHandle = mSkeleton->mNextAutoHandle; mNextTagPointAutoHandle = 0; // construct self from master mBlendState = mSkeleton->mBlendState; // Copy bones BoneIterator i = mSkeleton->getRootBoneIterator(); while (i.hasMoreElements()) { Bone* b = i.getNext(); cloneBoneAndChildren(b, 0); b->_update(true, false); } setBindingPose(); }
bool DSubSkeleton::hasUniqueRootBone() { BoneIterator bi = getBoneIterator(); uint32 rootCount = 0; while (bi.hasMoreElements()) { DBone* b = bi.getNext(); if(b->getParent() == NULL) { rootCount++; } } if (rootCount == 1) { return true; } return false; }