载入中...
搜索中...
未找到
ActionPreviewController.cpp
浏览该文件的文档.
33action::ActionPreviewCueKind ActionPreviewController::cueKind(const action::ActionTimelineEvent& event) noexcept {
34 if (event.kind == action::ActionTimelineEventKind::StateEnter) return action::ActionPreviewCueKind::StateEnter;
35 if (event.kind == action::ActionTimelineEventKind::StateExit) return action::ActionPreviewCueKind::StateExit;
53 rootMotionDuration = Duration::fromNanoseconds(section.end.nanoseconds() - section.start.nanoseconds());
66 auto path = rootMotion_->sampleRootMotion(frame.animationUri, rootMotionDuration, rootMotionSampleCount_);
75 auto frame = buildFrame(action::ActionPreviewReason::Refresh, editor_.previewTime(), editor_.previewTime(), {});
137 auto frame = buildFrame(action::ActionPreviewReason::Advance, plan.value().previous, plan.value().current,
140 return eve::editing::failed<std::size_t>(EditorStatus::Rejected, RuleId("editor.action.preview.root-motion"),
Atomic action-preview transport and presentation orchestration.
static constexpr Duration fromNanoseconds(std::int64_t nanoseconds) noexcept
Construct an exact duration from nanoseconds.
Definition Time.h:55
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Host boundary for 3D animation, VFX, audio and camera preview.
Definition ActionPreview.h:59
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 void discardPrepared() noexcept=0
Discard staged resources when the authoritative transport commit fails.
Optional animation provider that samples an owning root-motion polyline.
Definition ActionPreview.h:88
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.
Result< void > jumpToEnd()
Atomically seek to the final frame boundary and pause transport.
Definition ActionPreviewController.cpp:124
Result< void > seek(Duration time)
Atomically prepare presentation and seek the authoritative preview transport.
Definition ActionPreviewController.cpp:88
Result< void > setRootMotionSampleCount(std::uint32_t sampleCount)
Configure root-motion trajectory density in the inclusive range 2..1024.
Definition ActionPreviewController.cpp:25
ActionPreviewController(ActionTimelineEditor &editor, action::IActionPreviewSink &sink, const action::IActionRootMotionSource *rootMotion=nullptr)
Construct with a required presentation sink and optional root-motion provider.
Definition ActionPreviewController.cpp:21
Result< void > stepFrames(std::int64_t frames, double frameRate)
Atomically step signed frames and pause transport at the resulting cursor.
Definition ActionPreviewController.cpp:116
Result< void > refresh()
Re-present the current cursor without changing transport state.
Definition ActionPreviewController.cpp:74
Result< void > stop()
Atomically stop presentation, pause transport and return to the first frame.
Definition ActionPreviewController.cpp:110
void drawRootMotion(IEditorOverlay &overlay, OverlayPoint origin={}, float scale=1.0f) const
Draw the latest root-motion trajectory into a 3D-capable overlay.
Definition ActionPreviewController.cpp:157
Result< std::size_t > update(Duration delta)
Atomically prepare presentation and advance by injected deterministic time.
Definition ActionPreviewController.cpp:130
Timeline editing controller shared by developer and in-game editors.
Definition ActionTimelineEditor.h:162
Duration previewTime() const noexcept
Current deterministic preview cursor.
Definition ActionTimelineEditor.h:312
Result< void > seek(Duration time)
Seek preview without emitting crossed events.
Definition ActionTimelineEditor.cpp:1059
Result< ActionTimelinePreviewPlan > planPreview(Duration delta) const
Prepare a preview advance without mutating transport state.
Definition ActionTimelineEditor.cpp:1080
const ActionTimelineTarget & target() const noexcept
Borrow the authoritative target.
Definition ActionTimelineEditor.h:176
Result< std::size_t > applyPreviewPlan(ActionTimelinePreviewPlan plan)
Commit an unchanged prepared preview advance.
Definition ActionTimelineEditor.cpp:1113
Result< Duration > frameStepTarget(std::int64_t frames, double frameRate) const
Resolve a signed frame step without mutating transport state.
Definition ActionTimelineEditor.cpp:1028
const action::ActionTimeline & timeline() const noexcept
Borrow the authoritative timeline until the next mutation.
Definition ActionTimelineEditor.h:116
Sink implemented by a 2D or 3D viewport to render tool feedback.
Definition EditorPresentation.h:27
virtual void line(const OverlayPoint &from, const OverlayPoint &to, const OverlayStyle &style)=0
Draw a line between two viewport-space points.
ActionPreviewCueKind
Semantic presentation channel selected for one timeline boundary.
Definition ActionPreview.h:19
@ StateExit
@ StateEnter
@ StateEnter
Definition ActionPreviewController.cpp:6
Complete frame atomically prepared and then presented by a preview host.
Definition ActionPreview.h:41
std::vector< ActionActiveBlock > activeBlocks
Owning state-block samples active at current for isolated scene reconciliation.
Definition ActionPreview.h:48
RootMotionPreviewState rootMotionState
Definition ActionPreview.h:49
std::vector< ActionPreviewCue > cues
Definition ActionPreview.h:46
std::vector< ActionPreviewPoint3 > rootMotionPath
Definition ActionPreview.h:50
Owning event projection returned by the runtime sampler.
Definition ActionTimeline.h:146
Result< std::vector< ActionActiveBlock > > activeBlocks(Duration time) const
Sample every unmuted state active at one authoritative timeline time.
Definition ActionTimeline.cpp:348
std::string animationUri
Compatibility-only single-clip projection; v2 runtime uses animationSections.
Definition ActionTimeline.h:183
A point in the coordinate space chosen by an editor viewport adapter.
Definition EditorPresentation.h:8