载入中...
搜索中...
未找到
AnimClipBinary.cpp
浏览该文件的文档.
71 if (!eve::isValidUtf8(value, eve::Utf8NullPolicy::Reject)) throw std::runtime_error("invalid UTF-8 name");
85eve::Result<int> loadAnimationTrackBatch(std::span<const AnimationTrackInput> inputs, const AnimSkeleton& skeleton,
100 const int workers = detail::parallelAnimationItems(inputs.size(), workerCount, [&](std::size_t i) {
104 for (std::size_t i = 0; i < inputs.size(); ++i) inputs[i].destination.get().adopt(candidates[i]);
107 return eve::Result<int>::failure(eve::Diagnostic::error(eve::DiagnosticCode::InvalidArgument, error.what(),
115 if (bytes.size() > 128 * 1024 * 1024) throw std::runtime_error("animation track file exceeds 128 MiB limit");
120 if (count > static_cast<unsigned>(skeleton.getBoneCount())) throw std::runtime_error("too many bone tracks");
123 if (duration < 0 || rate <= 0 || flags > 1) throw std::runtime_error("invalid animation settings");
160 return eve::Result<void>::failure(eve::Diagnostic::error(eve::DiagnosticCode::InvalidArgument, error.what(),
Strict allocation-free UTF-8 validation.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
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
static void resize(AnimClip &clip, int bone, int kind, std::size_t count)
Definition AnimClipBinary.cpp:17
static void write(AnimClip &clip, int bone, int kind, std::size_t key, float time, float x, float y, float z, float w)
Definition AnimClipBinary.cpp:27
Keyframed skeletal animation clip (local TRS tracks per bone). Script type: AnimClip.
Definition AnimClip.h:145
void adopt(AnimClip &other)
Replace this clip's content with other's (payload moved, not copied). Used by hot reload so registere...
Definition AnimClip.cpp:981
void setSampleRate(float hz)
Sample rate hint used by MotionDatabase baking (Hz).
Definition AnimClip.cpp:33
3D bone hierarchy + bind-pose local TRS for skeletal animation. Independent of ik::Skeleton3D (FABRIK...
Definition AnimSkeleton.h:16
int parallelAnimationItems(std::size_t count, int requested, Body &&body)
Parallel animation items.
Definition AnimParallelInternal.h:14
Definition Animation.cpp:58
eve::Result< int > loadAnimationTrackBatch(std::span< const AnimationTrackInput > inputs, const AnimSkeleton &skeleton, int workerCount)
Decode independent clips in parallel, then publish all or none in input order.
Definition AnimClipBinary.cpp:85
eve::Result< void > loadAnimationTracks(AnimClip &destination, std::span< const std::byte > bytes, const AnimSkeleton &skeleton)
Atomically replace a clip from the little-endian eve.animation-tracks/1 format (EVAC,...
Definition AnimClipBinary.cpp:112
@ InvalidArgument
@ Applied
bool isValidUtf8(std::string_view text, Utf8NullPolicy nullPolicy) noexcept
Validate shortest-form UTF-8, Unicode scalar range and optional NUL exclusion.
Definition Utf8Validation.cpp:5
@ Reject
Local TRS used by skeletal animation (quaternion xyzw).
Definition AnimMath.h:9