void CreateSkeletonTreeView()
        {
            var skeletonPose = EngineNS.CEngine.Instance.SkeletonAssetManager.GetSkeleton(EngineNS.CEngine.Instance.RenderContext, mCurrentResourceInfo.ResourceName);

            skeletonPose.GenerateHierarchy();
            var root = skeletonPose.Root;

            var editorBoneDetial = new EditorBoneDetial(skeletonPose, root, null);

            EditorBoneDetialTree.Add(editorBoneDetial);
            TreeView_Skeleton.ItemsSource = EditorBoneDetialTree;
        }
Exemple #2
0
        void CreateSkeletonTreeView()
        {
            if (string.IsNullOrEmpty(mCurrentResourceInfo.SkeletonAsset) || mCurrentResourceInfo.SkeletonAsset == "null")
            {
                return;
            }
            var bones = EngineNS.CEngine.Instance.SkeletonAssetManager.GetSkeleton(EngineNS.CEngine.Instance.RenderContext, RName.GetRName(mCurrentResourceInfo.SkeletonAsset));

            bones.GenerateHierarchy();
            var root = bones.Root;
            ObservableCollection <EditorBoneDetial> temp = new ObservableCollection <EditorBoneDetial>();
            var editorBoneDetial = new EditorBoneDetial(bones, root, null);

            temp.Add(editorBoneDetial);
            TreeView_Skeleton.ItemsSource = temp;
        }
        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);
        }
 EditorBoneDetial GetParent(EditorBoneDetial tree, EditorBoneDetial bone)
 {
     if (tree.Children.Contains(bone))
     {
         return(tree);
     }
     foreach (var child in tree.Children)
     {
         var p = GetParent(child, bone);
         if (p == null)
         {
             continue;
         }
         else
         {
             return(p);
         }
     }
     return(null);
 }
Exemple #5
0
        void CreateSkeletonTreeView()
        {
            if (string.IsNullOrEmpty(mCurrentResourceInfo.SkeletonAsset) || mCurrentResourceInfo.SkeletonAsset == "null")
            {
                return;
            }
            var bones = EngineNS.CEngine.Instance.SkeletonAssetManager.GetSkeleton(EngineNS.CEngine.Instance.RenderContext, RName.GetRName(mCurrentResourceInfo.SkeletonAsset));

            bones.GenerateHierarchy();
            var root = bones.Root;

            if (root != null)
            {
                ObservableCollection <EditorBoneDetial> temp = new ObservableCollection <EditorBoneDetial>();
                var editorBoneDetial = new EditorBoneDetial(bones, root, null);
                temp.Add(editorBoneDetial);
                TreeView_Skeleton.ItemsSource = temp;
            }
            else
            {
                EngineNS.Profiler.Log.WriteLine(EngineNS.Profiler.ELogTag.Warning, "Skeleton", $"Skeleton {RName.GetRName(mCurrentResourceInfo.SkeletonAsset)} don't have root bone");
            }
        }
 EditorBoneDetial GetParentFromTree(ObservableCollection <EditorBoneDetial> tree, EditorBoneDetial bone)
 {
     foreach (var sT in tree)
     {
         var p = GetParent(sT, bone);
         if (p == null)
         {
             continue;
         }
         else
         {
             return(p);
         }
     }
     return(null);
 }