Ejemplo n.º 1
0
void DiSkeletonInstance::Init()
{
    mNextAutoHandle = mParent->mNextAutoHandle;

    BoneIterator i = mParent->GetRootBoneIterator();
    while (i.HasMoreElements())
    {
        DiBone* b = i.GetNext();
        CloneBone(b,NULL);
        b->_Update(true,false);
    }

    SetBindingPose();
}
Ejemplo n.º 2
0
 //-------------------------------------------------------------------------
 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();
 }
Ejemplo n.º 3
0
	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;
	}