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