载入中...
搜索中...
未找到
ActionPreviewController.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10
11#include <optional>
12
13namespace eve::editor {
14
22public:
25 const action::IActionRootMotionSource* rootMotion = nullptr);
26
28 [[nodiscard]] Result<void> setRootMotionSampleCount(std::uint32_t sampleCount);
30 [[nodiscard]] Result<void> refresh();
32 [[nodiscard]] Result<void> seek(Duration time);
34 [[nodiscard]] Result<void> stop();
36 [[nodiscard]] Result<void> stepFrames(std::int64_t frames, double frameRate);
38 [[nodiscard]] Result<void> jumpToEnd();
40 [[nodiscard]] Result<std::size_t> update(Duration delta);
42 [[nodiscard]] const std::optional<action::ActionPreviewFrame>& lastFrame() const noexcept { return lastFrame_; }
44 void drawRootMotion(IEditorOverlay& overlay, OverlayPoint origin = {}, float scale = 1.0f) const;
45
46private:
47 [[nodiscard]] Result<action::ActionPreviewFrame> buildFrame(
49 const std::vector<action::ActionTimelineEvent>& events) const;
50 [[nodiscard]] static action::ActionPreviewCueKind cueKind(const action::ActionTimelineEvent& event) noexcept;
51
52 ActionTimelineEditor& editor_;
54 const action::IActionRootMotionSource* rootMotion_ = nullptr;
55 std::uint32_t rootMotionSampleCount_ = 64;
56 std::optional<action::ActionPreviewFrame> lastFrame_;
57};
58
59} // namespace eve::editor
Presentation-neutral action preview frame contracts.
UI-neutral transactional action timeline editor and preview model.
#define EVENGINE_API_EDITORS
Definition Export.h:112
std::array< float, 3 > scale
graphics::Canvas * previous
V3 origin
Definition RoadBake.cpp:138
double current
Battle::Events events
Signed, fixed-resolution simulation duration in nanoseconds.
Definition Time.h:43
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Host boundary for 3D animation, VFX, audio and camera preview.
Optional animation provider that samples an owning root-motion polyline.
Coordinates deterministic timeline transport with a transactional preview host.
const std::optional< action::ActionPreviewFrame > & lastFrame() const noexcept
Last frame successfully published to the host.
Timeline editing controller shared by developer and in-game editors.
Sink implemented by a 2D or 3D viewport to render tool feedback.
ActionPreviewReason
Reason a preview frame is being presented.
ActionPreviewCueKind
Semantic presentation channel selected for one timeline boundary.
Owning event projection returned by the runtime sampler.
A point in the coordinate space chosen by an editor viewport adapter.