载入中...
搜索中...
未找到
ActionPreview.h
浏览该文件的文档.
1#pragma once
2
6
7#include <cstdint>
8#include <memory>
9#include <string>
10#include <string_view>
11#include <vector>
12
13namespace eve::action {
14
16enum class ActionPreviewReason : std::uint8_t { Refresh, Seek, Advance };
17
20
22enum class RootMotionPreviewState : std::uint8_t { Unavailable, Available };
23
26 float x = 0.0f;
27 float y = 0.0f;
28 float z = 0.0f;
29};
30
39
52
60public:
62 virtual ~IActionPreviewSink() = default;
64 [[nodiscard]] virtual Result<void> prepare(const ActionPreviewFrame& frame) = 0;
66 virtual void present(const ActionPreviewFrame& frame) noexcept = 0;
68 virtual void discardPrepared() noexcept = 0;
69};
70
79public:
80 static constexpr const char* capabilityName = "eve.action.preview-sink-provider";
82 virtual ~IActionPreviewSinkProvider() = default;
85};
86
89public:
91 virtual ~IActionRootMotionSource() = default;
94 std::string_view animationUri, Duration duration, std::uint32_t sampleCount) const = 0;
95};
96
97} // namespace eve::action
Versioned, deterministic authoring timeline for gameplay actions.
float duration
Signed, fixed-resolution simulation duration in nanoseconds.
Definition Time.h:43
Human-readable, scoped identifier in the form namespace:name.
Definition Identity.h:411
Move-only operation result carrying either a value or Status.
Definition Result.h:155
std::map< std::string, Value > Object
Definition Value.h:34
Optional owner-thread provider of one independently owned action preview layer.
virtual ~IActionPreviewSinkProvider()=default
Releases IActionPreviewSinkProvider resources.
virtual Result< std::unique_ptr< IActionPreviewSink > > createActionPreviewSink()=0
Create one isolated preview sink owned by the caller.
Host boundary for 3D animation, VFX, audio and camera preview.
virtual Result< void > prepare(const ActionPreviewFrame &frame)=0
Validate and stage every resource required by a frame.
virtual void present(const ActionPreviewFrame &frame) noexcept=0
Publish one successfully prepared frame without failure or callbacks.
virtual ~IActionPreviewSink()=default
Releases IActionPreviewSink resources.
virtual void discardPrepared() noexcept=0
Discard staged resources when the authoritative transport commit fails.
Optional animation provider that samples an owning root-motion polyline.
virtual ~IActionRootMotionSource()=default
Releases IActionRootMotionSource resources.
virtual Result< std::vector< ActionPreviewPoint3 > > sampleRootMotion(std::string_view animationUri, Duration duration, std::uint32_t sampleCount) const =0
Sample animation root motion from zero through duration, including both endpoints.
ActionPreviewReason
Reason a preview frame is being presented.
ActionPreviewCueKind
Semantic presentation channel selected for one timeline boundary.
RootMotionPreviewState
Explicit availability of root-motion preview data.
Owning presentation cue derived from a canonical timeline event.
ActionPreviewCueKind kind
Complete frame atomically prepared and then presented by a preview host.
std::vector< ActionActiveBlock > activeBlocks
Owning state-block samples active at current for isolated scene reconciliation.
RootMotionPreviewState rootMotionState
std::vector< ActionPreviewCue > cues
std::vector< ActionPreviewPoint3 > rootMotionPath
One owning 3D point in an animation root-motion trajectory.