载入中...
搜索中...
未找到
SceneImportTarget.cpp
浏览该文件的文档.
23 return std::any_of(d.begin(), d.end(), [](const auto& x) { return x.severity() == DiagnosticSeverity::Error; });
35 return c == CapabilityId("eve.editor.target.scene-import-properties") ? static_cast<IPropertyProvider*>(this)
39 return s.items.size() == 1 && s.items[0].target == TargetId(id_) && s.items[0].type == "scene-import";
44 eve::DiagnosticCode::InvalidArgument, "Scene import selection mismatch", "editor.scene-import.selection"));
80PropertyReadResult SceneImportTarget::read(const SelectionSnapshot& s, const PropertyPath& p) const {
86Result<DomainOperation> SceneImportTarget::makeSet(const SelectionSnapshot& s, const PropertyPath& p,
90 if (!matches(s) || !d || mode != PropertySetMode::Absolute || !validatePropertyValue(*d, v).ok())
91 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.scene-import.set"),
124Result<DomainOperation> SceneImportTarget::makeReset(const SelectionSnapshot& s, const PropertyPath& p) const {
127 return eve::editing::failed<DomainOperation>(EditorStatus::Unsupported, RuleId("editor.scene-import.property"),
135 RuleId("editor.scene-import.source"), DiagnosticSeverity::Error, "Scene import requires a source asset"));
136 const auto presets = std::vector<std::string>{"quality", "balanced", "mobile", "raw", "custom"};
139 RuleId("editor.scene-import.preset"), DiagnosticSeverity::Error, "Unknown scene import preset"));
151 if (op.target != TargetId(id_) || op.type != "scene-import.replace.v1" || !op.payload.isWithinLimits(3, 32, 4096))
152 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene-import.operation"),
159 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene-import.payload"),
163 bool* dst[] = {&v.triangulate, &v.generateNormals, &v.joinVertices, &v.flipUvs, &v.improveCache,
165 const char* keys[] = {"triangulate", "generateNormals", "joinVertices", "flipUvs", "improveCache",
171 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene-import.boolean"),
178 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene-import.invalid"),
191 return eve::editing::failed<void>(EditorStatus::Conflict, RuleId("editor.scene-import.candidate"),
203 return eve::editing::failed<void>(EditorStatus::Unsupported, RuleId("editor.scene-import.snapshot"),
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 bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
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
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
bool isWithinLimits(size_t maxDepth, size_t maxElements, size_t maxStringBytes) const
Validate nesting, element count and approximate string byte limits.
Definition EditingValue.cpp:50
EVENGINE_API_ORCHESTRATION public API.
Definition SceneImportTarget.h:30
PropertySchema schema(const SelectionSnapshot &) const override
Schema.
Definition SceneImportTarget.cpp:47
Result< DomainOperation > makeReset(const SelectionSnapshot &, const PropertyPath &) const override
Make reset.
Definition SceneImportTarget.cpp:124
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &) const override
Current revision.
Definition SceneImportTarget.cpp:41
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget >) override
Commits domain state.
Definition SceneImportTarget.cpp:188
void * queryCapability(const CapabilityId &) override
Query an optional stable editing capability.
Definition SceneImportTarget.cpp:34
Result< void > applyDomainOperation(const DomainOperation &) override
Applies domain operation.
Definition SceneImportTarget.cpp:150
Result< DomainOperation > makeSet(const SelectionSnapshot &, const PropertyPath &, const EditorValue &, PropertySetMode) const override
Make set.
Definition SceneImportTarget.cpp:86
PropertyReadResult read(const SelectionSnapshot &, const PropertyPath &) const override
Reads .
Definition SceneImportTarget.cpp:80
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition SceneImportTarget.cpp:185
editing::PropertyDescriptor PropertyDescriptor
Definition ArchSpaceTarget.h:31
editing::PropertyPath PropertyPath
Definition ArchSpaceTarget.h:33
Result< void > validatePropertyValue(const PropertyDescriptor &descriptor, const Value &value)
Validate property value.
Definition EditingProperty.cpp:138
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ PreconditionViolation
@ Unsupported
Definition Container.h:602
std::vector< std::string > affectedProperties
Definition EditingProtocol.h:52
PropertyDescriptorLookup find(const PropertyPath &path) const
Finds find.
Definition EditingProperty.cpp:9
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
Renderer-neutral persisted scene importer settings.
Definition SceneImportTarget.h:19
bool joinVertices
Definition SceneImportTarget.h:22
bool importAnimations
Definition SceneImportTarget.h:23
bool generateNormals
Definition SceneImportTarget.h:22
bool sharedMeshes
Definition SceneImportTarget.h:23
bool improveCache
Definition SceneImportTarget.h:22
bool importCameras
Definition SceneImportTarget.h:23
bool importLights
Definition SceneImportTarget.h:23
std::string preset
Definition SceneImportTarget.h:21
std::string sourceAsset
Definition SceneImportTarget.h:20
bool triangulate
Definition SceneImportTarget.h:22