载入中...
搜索中...
未找到
SpriteAnimation.h
浏览该文件的文档.
1#pragma once
2
3#include <array>
5#include "common/Export.h"
6namespace eve {
7class Value;
8}
9
10namespace eve::asset {
14 std::string name;
15 double time = 0;
16 std::array<double, 4> rect{};
17 std::array<double, 2> pivot{};
18 std::array<double, 2> imageSize{};
19 double pixelsPerUnit = 100;
20 bool nearest = true;
21};
28public:
32 [[nodiscard]] static Result<SpriteAnimationClip> decode(const Value& definition);
34 [[nodiscard]] static Result<SpriteAnimationClip> load(const EvpackResourceReader& reader, const AssetRef& asset,
35 const EvpackCapabilities& capabilities);
39 [[nodiscard]] Result<SpriteAnimationFrame> sample(double seconds) const;
41 [[nodiscard]] std::size_t frameCount() const noexcept { return frames_.size(); }
43 [[nodiscard]] double duration() const noexcept { return duration_; }
44
45private:
46 std::vector<SpriteAnimationFrame> frames_;
47 double duration_ = 0;
48 bool loop_ = false;
49};
50} // namespace eve::asset
Typed capability-aware runtime access to admitted packs.
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
LogicalId definition
Stable asset identity backed by PersistentId.
Definition ResourceRef.h:53
Move-only operation result carrying either a value or Status.
Definition Result.h:155
The canonical owning dynamic value used by data-facing protocols.
Definition Value.h:31
Immutable reader retaining an admitted pack by shared ownership.
Immutable validated sprite timeline. No GPU/ECS objects, scheduler, callbacks or mutable playback clo...
std::size_t frameCount() const noexcept
Number of authored keys.
double duration() const noexcept
Authored duration in seconds.
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
Actual runtime device capabilities used for variant selection.
Definition Evpack.h:92
Owning sprite key snapshot; pixel rectangles and pivots use top-left coordinates.
std::array< double, 2 > pivot
std::array< double, 2 > imageSize
std::array< double, 4 > rect