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); }
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)); } } }