mirror of
https://github.com/4sval/FModel.git
synced 2026-07-28 06:19:43 -05:00
better
This commit is contained in:
parent
6796577b9d
commit
6b6403e9c1
|
|
@ -356,7 +356,6 @@ public class Skeleton : IDisposable
|
|||
ImGui.TableNextColumn();
|
||||
|
||||
var flags = ImGuiTreeNodeFlags.OpenOnArrow | ImGuiTreeNodeFlags.SpanFullWidth;
|
||||
// if (boneName == SelectedBone) flags |= ImGuiTreeNodeFlags.Selected;
|
||||
if (bone.IsVirtual) flags |= ImGuiTreeNodeFlags.Leaf;
|
||||
else if (!bone.IsDaron) flags |= ImGuiTreeNodeFlags.Bullet;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ public class SkeletalModel : UModel
|
|||
|
||||
public float MorphTime;
|
||||
|
||||
public bool TreeIsOpen;
|
||||
|
||||
public SkeletalModel(USkeletalMesh export, CSkeletalMesh skeletalMesh, Transform transform = null)
|
||||
: base(export, skeletalMesh.LODs[LodLevel], export.Materials, skeletalMesh.LODs[LodLevel].Verts, skeletalMesh.LODs.Count, transform)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ public class Renderer : IDisposable
|
|||
public bool ShowGrid;
|
||||
public bool ShowLights;
|
||||
public bool AnimateWithRotationOnly;
|
||||
public bool IsSkeletonTreeOpen;
|
||||
public VertexColor Color;
|
||||
|
||||
public Camera CameraOp { get; }
|
||||
|
|
@ -263,7 +264,7 @@ public class Renderer : IDisposable
|
|||
// debug + outline pass
|
||||
if (Options.TryGetModel(out var selected) && selected.IsVisible)
|
||||
{
|
||||
if (selected is SkeletalModel { TreeIsOpen: true } skeletalModel)
|
||||
if (IsSkeletonTreeOpen && selected is SkeletalModel skeletalModel)
|
||||
{
|
||||
_bone.Render(viewMatrix, projMatrix);
|
||||
skeletalModel.RenderBones(_bone);
|
||||
|
|
@ -295,7 +296,7 @@ public class Renderer : IDisposable
|
|||
{
|
||||
model.Update(Options);
|
||||
}
|
||||
if (Options.TryGetModel(out var selected) && selected is SkeletalModel { IsVisible: true, TreeIsOpen: true } skeletalModel)
|
||||
if (IsSkeletonTreeOpen && Options.TryGetModel(out var selected) && selected is SkeletalModel { IsVisible: true } skeletalModel)
|
||||
{
|
||||
skeletalModel.Skeleton.UpdateVertices();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class SnimGui
|
|||
private readonly float _tableWidth;
|
||||
|
||||
private Vector2 _outlinerSize;
|
||||
private bool _ti_open;
|
||||
private bool _tiOpen;
|
||||
private bool _viewportFocus;
|
||||
|
||||
private readonly Vector4 _accentColor = new (0.125f, 0.42f, 0.831f, 1.0f);
|
||||
|
|
@ -434,34 +434,31 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio
|
|||
_saver.Value = model.Save(out _saver.Label, out _saver.Path);
|
||||
s.WindowShouldFreeze(false);
|
||||
}
|
||||
if (model is SkeletalModel skeletalModel)
|
||||
if (ImGui.MenuItem("Animate", model is SkeletalModel))
|
||||
{
|
||||
if (ImGui.MenuItem("Animate"))
|
||||
if (_swapper.IsAware)
|
||||
{
|
||||
if (_swapper.IsAware)
|
||||
s.Renderer.Options.RemoveAnimations();
|
||||
s.Renderer.Options.AnimateMesh(true);
|
||||
s.WindowShouldClose(true, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_swapper.Title = "Skeletal Animation";
|
||||
_swapper.Description = "You're about to animate a model.\nThe window will close for you to extract an animation!\n\n";
|
||||
_swapper.Content = () =>
|
||||
{
|
||||
s.Renderer.Options.RemoveAnimations();
|
||||
s.Renderer.Options.AnimateMesh(true);
|
||||
s.WindowShouldClose(true, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_swapper.Title = "Skeletal Animation";
|
||||
_swapper.Description = "You're about to animate a model.\nThe window will close for you to extract an animation!\n\n";
|
||||
_swapper.Content = () =>
|
||||
{
|
||||
s.Renderer.Options.RemoveAnimations();
|
||||
s.Renderer.Options.AnimateMesh(true);
|
||||
};
|
||||
_swapper.Value = true;
|
||||
}
|
||||
}
|
||||
if (ImGui.MenuItem("Skeleton Tree"))
|
||||
{
|
||||
skeletalModel.TreeIsOpen = true;
|
||||
ImGui.SetWindowFocus("Skeleton Tree");
|
||||
};
|
||||
_swapper.Value = true;
|
||||
}
|
||||
}
|
||||
if (ImGui.MenuItem("Skeleton Tree", model is SkeletalModel))
|
||||
{
|
||||
s.Renderer.IsSkeletonTreeOpen = true;
|
||||
ImGui.SetWindowFocus("Skeleton Tree");
|
||||
}
|
||||
if (ImGui.MenuItem("Teleport To"))
|
||||
{
|
||||
s.Renderer.CameraOp.Teleport(model.GetTransform().Matrix.Translation, model.Box);
|
||||
|
|
@ -671,7 +668,7 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio
|
|||
ImGui.SeparatorText("Textures");
|
||||
if (material.ImGuiTextures(icons, model))
|
||||
{
|
||||
_ti_open = true;
|
||||
_tiOpen = true;
|
||||
ImGui.SetWindowFocus("Texture Inspector");
|
||||
}
|
||||
|
||||
|
|
@ -713,8 +710,8 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio
|
|||
|
||||
private void DrawTextureInspector(Snooper s)
|
||||
{
|
||||
if (!_ti_open) return;
|
||||
if (ImGui.Begin("Texture Inspector", ref _ti_open, ImGuiWindowFlags.NoScrollbar) &&
|
||||
if (!_tiOpen) return;
|
||||
if (ImGui.Begin("Texture Inspector", ref _tiOpen, ImGuiWindowFlags.NoScrollbar) &&
|
||||
s.Renderer.Options.TryGetModel(out var model) &&
|
||||
s.Renderer.Options.TryGetSection(model, out var section))
|
||||
{
|
||||
|
|
@ -725,11 +722,11 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio
|
|||
|
||||
private void DrawSkeletonTree(Snooper s)
|
||||
{
|
||||
if (!s.Renderer.Options.TryGetModel(out var model) || model is not SkeletalModel { TreeIsOpen: true } skeletalModel)
|
||||
return;
|
||||
if (!s.Renderer.IsSkeletonTreeOpen) return;
|
||||
|
||||
ImGui.PushStyleVar(ImGuiStyleVar.WindowPadding, Vector2.Zero);
|
||||
if (ImGui.Begin("Skeleton Tree", ref skeletalModel.TreeIsOpen, ImGuiWindowFlags.NoScrollbar))
|
||||
if (ImGui.Begin("Skeleton Tree", ref s.Renderer.IsSkeletonTreeOpen, ImGuiWindowFlags.NoScrollbar) &&
|
||||
s.Renderer.Options.TryGetModel(out var model) && model is SkeletalModel skeletalModel)
|
||||
{
|
||||
skeletalModel.Skeleton.ImGuiBoneBreadcrumb();
|
||||
if (ImGui.BeginTable("skeleton_tree", 2, ImGuiTableFlags.NoSavedSettings | ImGuiTableFlags.RowBg, ImGui.GetContentRegionAvail(), ImGui.GetWindowWidth()))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user