Namespace Serenity.Editor.AnimationHub.Gui
Classes
AnimationClipCurveCache
Holds one stable UnityEngine.AnimationCurve instance per UnityEditor.EditorCurveBinding for the lifetime of a clip selection, plus a shadow copy of each for undo-correct commits.
AnimationClipEditorPanel
The Animation Hub's in-hub clip editor: settings, curves, animation events and a rendered preview, drawn as a bottom pane by AnimationHubWindow when a clip is opened. A plain composition root over the existing engines plus this phase's own AnimationClipCurveCache and AnimationClipPreviewScrubber — its own logic is limited to the pure helpers on AnimationClipEditorPanelState in its own file.
AnimationClipEditorPanelState
Pure, GUI-free logic pulled out of AnimationClipEditorPanel so it is unit
testable without instantiating any IMGUI state — the same "engine stays pure" split every other
Animation Hub phase draws between its Engine types and their GUI callers.
AnimationClipPreviewScrubber
Rendered preview for the in-hub clip editor: a "Preview" foldout (collapsed by default, zero cost while collapsed, drawn via PreviewSectionGui) that owns a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession for the panel's model and an Serenity.Global.Infrastructure.Editor.Preview.EditorPlaybackClock driving the scrub position, and blits the sampled frame through the same shared helper.
PreviewSectionGui
Shared IMGUI shape for the Animation Hub's rendered preview sections: the "Preview" foldout (collapsed by default, drawing nothing while collapsed) and the viewport rect that renders its texture only on UnityEngine.EventType.Repaint and only once a preview instance exists, then blits the result through Serenity.Global.Infrastructure.Editor.Preview.ModelPreviewViewportBlit. AnimationClipPreviewScrubber and ProceduralAnimatorSimulatorGui both drive a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession this same way; this is the one place that shape is spelled out.
ProceduralAnimatorSimulator
Drives a live ProceduralAnimatorComponent pipeline against a hidden preview instance of a model, so the Animation Hub can play, scrub and poke at a profile's rules/layers/actions without ever entering Play mode or touching the user's scene. Owns a Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession (the hidden instance) and an Serenity.Global.Infrastructure.Editor.Preview.EditorPlaybackClock (the simulated time source); every write this class makes lands on Serenity.Global.Infrastructure.Editor.Preview.SerenityModelPreviewSession.InstanceRoot or its own transient dictionaries — nothing is serialized, nothing is dirtied, and no asset is ever touched.
ProceduralAnimatorSimulatorGui
Rendered preview for the in-hub Procedural Animator simulator: a "Preview" foldout (collapsed by default, zero cost while collapsed — Bind(GameObject) is only ever called while expanded, drawn via PreviewSectionGui) that draws transport controls, the rendered viewport through the same shared helper, and one slider per state key the profile reads. Pure drawing — every stateful decision lives on ProceduralAnimatorSimulator.