载入中...
搜索中...
未找到
MeshVfxTarget.cpp
浏览该文件的文档.
44 : EditableTargetState(other), id_(other.id_), asset_(std::make_unique<stylize::MeshVfxAsset>(*other.asset_)) {}
73eve::Result<eve::Revision> MeshVfxAssetTarget::currentRevision(const SelectionSnapshot& selection) const {
76 eve::DiagnosticCode::InvalidArgument, "Mesh VFX selection mismatch", "editor.stylize.mesh-vfx.selection"));
80PropertySchema MeshVfxAssetTarget::schema(const SelectionSnapshot&) const { return assetSchema(); }
86PropertyReadResult MeshVfxAssetTarget::read(const SelectionSnapshot& selection, const PropertyPath& path) const {
94 if (!matches(selection) || path != PropertyPath("asset.json") || mode != PropertySetMode::Absolute)
106 editing::Status::Rejected, editing::RuleId("editor.stylize.mesh-vfx.invalid"), parsed.status().describe());
131 return editing::failed<void>(editing::Status::Rejected, editing::RuleId("editor.stylize.mesh-vfx.operation"),
136 return editing::failed<void>(editing::Status::Rejected, editing::RuleId("editor.stylize.mesh-vfx.payload"),
140 return editing::failed<void>(editing::Status::Rejected, editing::RuleId("editor.stylize.mesh-vfx.invalid"),
152Result<void> MeshVfxAssetTarget::commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) {
155 return editing::failed<void>(editing::Status::Conflict, editing::RuleId("editor.stylize.mesh-vfx.candidate"),
173 return editing::failed<void>(editing::Status::Unsupported, editing::RuleId("editor.stylize.mesh-vfx.snapshot"),
190 return editing::failed<void>(editing::Status::Rejected, editing::RuleId("editor.stylize.mesh-vfx.preview"),
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
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
void setRevision(Revision revision)
Adopt a revision observed elsewhere, without advancing it.
Definition EditableTarget.h:181
void bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
EditRegion dirtyRegion() const override
Return the accumulated dirty region.
Definition EditableTarget.h:160
void setDirtyRegion(const EditRegion ®ion)
Replace the dirty region wholesale, without advancing the revision.
Definition EditableTarget.h:183
Revision revisionValue() const noexcept
Return the revision as the shared protocol revision type.
Definition EditableTarget.h:169
void widenDirty()
Mark an unknown area dirty without advancing the revision.
Definition EditableTarget.h:177
eve::OptionalRef< C > capability()
Query a capability through its interface-owned stable identity.
Definition EditableTarget.h:82
virtual void clearDirtyRegion()=0
Clears dirty region.
UI-independent property access for an immutable selection snapshot.
Definition EditingProperty.h:139
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
static eve::Result< std::unique_ptr< MeshVfxAssetInstance > > create(const MeshVfxAsset &asset)
Build independent runtime state for every asset layer.
Definition MeshVfxAsset.cpp:510
Transactional editor target for one canonical MeshVfxAsset document. @ownership Owns the authoritativ...
Definition MeshVfxTarget.h:46
PropertySchema schema(const SelectionSnapshot &selection) const override
Schema.
Definition MeshVfxTarget.cpp:80
PropertyReadResult read(const SelectionSnapshot &selection, const PropertyPath &path) const override
Reads .
Definition MeshVfxTarget.cpp:86
Result< void > applyDomainOperation(const DomainOperation &operation) override
Applies domain operation.
Definition MeshVfxTarget.cpp:129
void * queryCapability(const CapabilityId &capability) override
Queries capability.
Definition MeshVfxTarget.cpp:63
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition MeshVfxTarget.cpp:148
~MeshVfxAssetTarget()
Mesh vfx asset target.
MeshVfxAssetTarget & operator=(const MeshVfxAssetTarget &other)
Operator =.
Definition MeshVfxTarget.cpp:46
Result< DomainOperation > makeSet(const SelectionSnapshot &selection, const PropertyPath &path, const EditorValue &value, PropertySetMode mode) const override
Make set.
Definition MeshVfxTarget.cpp:91
const stylize::MeshVfxAsset & asset() const noexcept
Return the authoritative parsed asset.
Definition MeshVfxTarget.cpp:161
Result< DomainOperation > makeReset(const SelectionSnapshot &selection, const PropertyPath &path) const override
Make reset.
Definition MeshVfxTarget.cpp:124
EditorValue snapshotValue() const
Capture schema-version-one editor persistence data.
Definition MeshVfxTarget.cpp:163
Result< void > loadSnapshot(const EditorValue &snapshot)
Atomically load a persisted target snapshot.
Definition MeshVfxTarget.cpp:167
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget > candidate) override
Commits domain state.
Definition MeshVfxTarget.cpp:152
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &selection) const override
Current revision.
Definition MeshVfxTarget.cpp:73
MeshVfxAssetTarget(std::string id)
Construct a target containing a valid one-layer default asset.
Definition MeshVfxTarget.cpp:36
~MeshVfxPreviewRuntime()
Mesh vfx preview runtime.
MeshVfxPreviewRuntime()
Mesh vfx preview runtime.
Result< void > publish(const MeshVfxAssetTarget &document)
Build every runtime layer before atomically replacing the active preview.
Definition MeshVfxTarget.cpp:187
@ Runtime
Definition MeshVfxTarget.cpp:7
@ InvalidArgument
detail::StrongUint64< detail::RevisionTag > Revision
Monotonic content/state revision used for optimistic-concurrency checks.
Definition Revision.h:13
Definition Container.h:602
std::vector< PropertyDescriptor > properties
Definition EditingProperty.h:120
std::vector< SelectionItem > items
Definition EditingSelection.h:22
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
Versioned, backend-neutral description of a real-time mesh effect.
Definition MeshVfxAsset.h:73
static eve::Result< MeshVfxAsset > fromJson(std::string_view json)
Parse, migrate, and validate a JSON asset without mutating live state.
Definition MeshVfxAsset.cpp:273