载入中...
搜索中...
未找到
MeshVfxTarget.h
浏览该文件的文档.
1#pragma once
2
6
7#include <memory>
8#include <string>
9#include <vector>
10
11namespace eve::stylize {
12struct MeshVfxAsset;
13class MeshVfxAssetInstance;
14}
15
16namespace eve::stylize_editing {
17
19using editing::DomainOperation;
20using editing::EditRegion;
21using editing::IDomainOperationTarget;
22using editing::IDomainOperationTargetStaging;
23using editing::IEditableTarget;
24using editing::IPropertyProvider;
25using editing::PropertyPath;
26using editing::PropertyReadResult;
27using editing::PropertySchema;
30using editing::SelectionSnapshot;
31using editing::TargetDescriptor;
34using editing::Result;
35
43 public virtual IEditableTarget,
46 public IPropertyProvider {
47public:
49 explicit MeshVfxAssetTarget(std::string id);
55 MeshVfxAssetTarget& operator=(const MeshVfxAssetTarget& other);
56
58 TargetId targetId() const override { return TargetId(id_); }
60 TargetDescriptor describe() const override;
62 void* queryCapability(const CapabilityId& capability) override;
64 Result<void> applyDomainOperation(const DomainOperation& operation) override;
66 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
68 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
70 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
72 PropertySchema schema(const SelectionSnapshot& selection) const override;
74 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
76 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
77 const EditorValue& value, PropertySetMode mode) const override;
79 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
80 const PropertyPath& path) const override;
81
83 [[nodiscard]] const stylize::MeshVfxAsset& asset() const noexcept;
85 [[nodiscard]] EditorValue snapshotValue() const;
87 [[nodiscard]] Result<void> loadSnapshot(const EditorValue& snapshot);
88
89private:
91 bool matches(const SelectionSnapshot& selection) const;
93 std::string canonicalJson() const;
94
95 std::string id_;
96 std::unique_ptr<stylize::MeshVfxAsset> asset_;
97};
98
104public:
110 [[nodiscard]] Result<void> publish(const MeshVfxAssetTarget& document);
112 [[nodiscard]] stylize::MeshVfxAssetInstance* instance() noexcept { return instance_.get(); }
114 [[nodiscard]] Revision revision() const noexcept { return revision_; }
115
116private:
117 std::unique_ptr<stylize::MeshVfxAssetInstance> instance_;
118 Revision revision_ = 0;
119};
120
121} // namespace eve::stylize_editing
ActionParameterOperation operation
double value
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::string path
Definition PlayHost.cpp:110
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Dirty region and revision shared by every editable document target.
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Owning runtime instantiated from one immutable MeshVfxAsset snapshot. @ownership Owns all layer runti...
Transactional editor target for one canonical MeshVfxAsset document. @ownership Owns the authoritativ...
~MeshVfxAssetTarget()
Mesh vfx asset target.
TargetId targetId() const override
Target id.
Candidate-first live preview generation for a MeshVfxAssetTarget. A rejected publication preserves th...
stylize::MeshVfxAssetInstance * instance() noexcept
Return the active preview instance, or null before publication.
~MeshVfxPreviewRuntime()
Mesh vfx preview runtime.
MeshVfxPreviewRuntime()
Mesh vfx preview runtime.
Revision revision() const noexcept
Return the active document revision, or zero before publication.
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
PropertySetMode
PropertySetMode public API.
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
detail::StrongUint64< detail::RevisionTag > Revision
Monotonic content/state revision used for optimistic-concurrency checks.
Definition Revision.h:13
DomainOperation public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Versioned, backend-neutral description of a real-time mesh effect.