Ejemplo n.º 1
0
 public EditorBoneDetial(CGfxSkeleton skeleton, CGfxBone bone, CGfxBone parentBone)
 {
     mBone       = bone;
     mParentBone = parentBone;
     if (bone.ChildNumber > 0)
     {
         for (uint i = 0; i < bone.ChildNumber; ++i)
         {
             var childIndex = bone.GetChild(i);
             var child      = skeleton.GetBone(childIndex);
             mChildren.Add(new EditorBoneDetial(skeleton, child, bone));
         }
     }
 }
        private void AddSocket_Click(object sender, RoutedEventArgs e)
        {
            var bone = mSkeleton.GetBone((uint)mSkeletonTreeViewOperation.SelectBoneDetial.Index);

            var desc = bone.BoneDesc.Clone();

            desc.BindMatrix = EngineNS.Matrix.Identity * bone.BoneDesc.BindMatrix;
            desc.Name       = GetValidName(bone.BoneDesc.Name + "_Socket");
            desc.Parent     = bone.BoneDesc.Name;
            desc.Type       = BoneType.Socket;
            CGfxBone socket = mSkeleton.NewBone(desc);

            bone.AddChild(socket.IndexInTable);

            var socketBoneDetial = new EditorBoneDetial(mSkeleton, socket, bone);

            mSkeletonTreeViewOperation.SelectBoneDetial.Children.Add(socketBoneDetial);
        }