public MainEditableNodeViewModel(MainEditableNode mainNode, SkeletonAnimationLookUpHelper skeletonAnimationLookUpHelper, AnimationControllerViewModel animationControllerViewModel, PackFileService pf)
        {
            _mainNode = mainNode;
            _skeletonAnimationLookUpHelper = skeletonAnimationLookUpHelper;
            _animationControllerViewModel  = animationControllerViewModel;
            _pf = pf;

            SkeletonNameList = _skeletonAnimationLookUpHelper.SkeletonFileNames;
            if (_mainNode.Model != null)
            {
                SkeletonName = SkeletonNameList.FirstOrDefault(x => x.Contains(_mainNode.Model.Header.SkeletonName));
                UpdateSkeletonName();
            }
        }
Ejemplo n.º 2
0
        public ModelLoaderService(PackFileService packFileService, ResourceLibary resourceLibary, AnimationControllerViewModel animationView, SceneManager sceneManager, IPackFile mainFile)
        {
            _packFileService = packFileService;
            _resourceLibary  = resourceLibary;
            _animationView   = animationView;
            _sceneManager    = sceneManager;

            var skeletonNode = _sceneManager.RootNode.AddObject(new SkeletonNode(resourceLibary.Content, animationView)
            {
                IsLockable = false
            }) as SkeletonNode;

            EditableMeshNode  = (MainEditableNode)_sceneManager.RootNode.AddObject(new MainEditableNode("Editable Model", skeletonNode, mainFile));
            ReferenceMeshRoot = sceneManager.RootNode.AddObject(new GroupNode("Reference meshs")
            {
                IsEditable = false, IsLockable = false
            });
        }
        public static ISceneNodeViewModel Create(ISceneNode node, SkeletonAnimationLookUpHelper skeletonAnimationLookUpHelper, PackFileService pf, AnimationControllerViewModel animationControllerViewModel, IComponentManager componentManager)
        {
            switch (node)
            {
            case MainEditableNode mainNode:
                return(new MainEditableNodeViewModel(mainNode, skeletonAnimationLookUpHelper, animationControllerViewModel, pf));

            case Rmv2ModelNode m:
                return(new ModelSceneNodeViewModel(m));

            case Rmv2LodNode l:
                return(new LodSceneNodeViewModel(l));

            case Rmv2MeshNode m:
                return(new MeshSceneNodeViewModel(m, pf, skeletonAnimationLookUpHelper, componentManager));

            case SkeletonNode s:
                return(new SkeletonSceneNodeViewModel(s, pf, skeletonAnimationLookUpHelper));

            case GroupNode n:
            {
                if (n.IsEditable && n.Parent != null)
                {
                    return(new GroupNodeViewModel(n));
                }

                return(null);
            }


            default:
                return(null);
            }
        }