载入中...
搜索中...
未找到
SceneTarget.cpp
浏览该文件的文档.
21SceneTargetBase::SceneTargetBase(std::string id, std::string type) : id_(std::move(id)), type_(std::move(type)) {}
39 if (capability == ITransformEditTarget::editingCapabilityId()) return static_cast<ITransformEditTarget*>(this);
49 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.target-mismatch"),
63 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.parent-not-found"),
71 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
76 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.object-has-children"),
85 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.transform-payload"),
89 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
97 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.multi-transform-payload"),
106 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.multi-transform-object"),
110 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.multi-transform-value"),
121 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.rename-payload"),
125 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
134 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.reparent-payload"),
138 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
141 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.scene.parent-not-found"),
146 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.scene.hierarchy-cycle"),
166Result<void> SceneTargetBase::commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) {
193Result<DomainOperation> SceneTargetBase::makeCreate(const CreateSceneObjectRequest& request) const {
197 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.scene.missing-object-id"),
200 return eve::editing::failed<DomainOperation>(EditorStatus::Conflict, RuleId("editor.scene.object-exists"),
203 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.scene.parent-not-found"),
223 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
239Result<DomainOperation> SceneTargetBase::makeRename(const ObjectId& id, const std::string& name) const {
242 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
265Result<DomainOperation> SceneTargetBase::makeReparent(const ObjectId& id, const ObjectId& parent) const {
268 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.scene.object-not-found"),
271 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.scene.parent-not-found"),
362 return eve::editing::failed<SceneTransformValue>(EditorStatus::Rejected, RuleId("editor.scene.transform-value"),
366 if (!number || !std::isfinite(*number) || std::abs(*number) > std::numeric_limits<float>::max() ||
379 return eve::editing::failed<SceneTransformValue>(EditorStatus::Rejected, RuleId("editor.scene.transform-value"),
409 return eve::editing::failed<SceneObjectSnapshot>(EditorStatus::Rejected, RuleId("editor.scene.object-value"),
412 if (!parsedTransform.ok()) return Result<SceneObjectSnapshot>::failure(parsedTransform.status());
437Result<DomainOperation> SceneTransformToolLogic::plan(IEditableTarget& target, const ObjectId& object,
440 static_cast<ITransformEditTarget*>(target.queryCapability(ITransformEditTarget::editingCapabilityId()));
515 if (path == PropertyPath("transform.position")) return EditorValue::Array{value.x, value.y, value.z};
532 return common ? PropertyReadResult{PropertyReadState::Value, *common, {}} : PropertyReadResult{};
540 return eve::editing::failed<DomainOperation>(EditorStatus::Unsupported, RuleId("editor.scene.property-mode"),
544 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.scene.property-value"),
550 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.scene.property-value"),
557 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.scene.property-target"),
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
const T & value() const &
Borrow the value from a const lvalue after checking success.
Definition Result.h:308
bool ok() const noexcept
Whether this result represents a non-failure outcome.
Definition Result.h:255
const Status & status() const noexcept
Inspect the structured operation status.
Definition Result.h:269
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
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
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
Optional capability exposing a deterministic, persistence-safe editing snapshot.
Definition EditableTarget.h:247
static CapabilityId editingCapabilityId()
Stable capability identity shared by every editable domain target.
Definition EditableTarget.h:252
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
Scene capability that discovers and routes module-owned component payload editors.
Definition SceneComponentPayload.h:121
static CapabilityId editorCapabilityId()
Stable capability id for editable scene component payloads.
Definition SceneComponentPayload.h:126
Stable hierarchy capability implemented by document and runtime targets.
Definition SceneTarget.h:35
static CapabilityId editorCapabilityId()
Stable capability identity used instead of cross-module RTTI.
Definition SceneTarget.h:40
Capability implemented by document and live scene targets.
Definition SceneEditingCommands.h:26
static editing::CapabilityId editingCapabilityId()
Editing capability id.
Definition SceneEditingCommands.h:31
Result< DomainOperation > planRename(IEditableTarget &target, const ObjectId &object, const std::string &name) const
Query hierarchy capability and build a rename operation.
Definition SceneTarget.cpp:459
Result< DomainOperation > planDelete(IEditableTarget &target, const ObjectId &object) const
Query hierarchy capability and build a leaf deletion operation.
Definition SceneTarget.cpp:448
Result< DomainOperation > planReparent(IEditableTarget &target, const ObjectId &object, const ObjectId &parent) const
Query hierarchy capability and build a reparent operation.
Definition SceneTarget.cpp:471
Result< DomainOperation > plan(IEditableTarget &target, const CreateSceneObjectRequest &request) const
Query hierarchy capability and build a create operation.
Definition SceneTarget.cpp:426
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &selection) const override
Current revision.
Definition SceneTarget.cpp:483
Result< DomainOperation > makeSet(const SelectionSnapshot &selection, const PropertyPath &path, const EditorValue &value, PropertySetMode mode) const override
Make set.
Definition SceneTarget.cpp:535
PropertySchema schema(const SelectionSnapshot &selection) const override
Schema.
Definition SceneTarget.cpp:491
Result< DomainOperation > makeReset(const SelectionSnapshot &selection, const PropertyPath &path) const override
Make reset.
Definition SceneTarget.cpp:595
PropertyReadResult read(const SelectionSnapshot &selection, const PropertyPath &path) const override
Reads .
Definition SceneTarget.cpp:511
Shared in-memory scene target implementation for document/runtime adapters.
Definition SceneTarget.h:86
Result< SceneObjectSnapshot > sceneObject(const ObjectId &id) const override
Scene object.
Definition SceneTarget.cpp:177
Result< DomainOperation > makeRename(const ObjectId &id, const std::string &name) const override
Make rename.
Definition SceneTarget.cpp:239
Result< DomainOperation > makeDelete(const ObjectId &id) const override
Make delete.
Definition SceneTarget.cpp:220
void * queryCapability(const CapabilityId &capability) override
Queries capability.
Definition SceneTarget.cpp:36
Result< void > applyDomainOperation(const DomainOperation &operation) override
Applies domain operation.
Definition SceneTarget.cpp:47
Result< SceneTransformValue > readTransform(const ObjectId &id) const override
Reads transform.
Definition SceneTarget.cpp:299
Result< DomainOperation > makeCreate(const CreateSceneObjectRequest &request) const override
Make create.
Definition SceneTarget.cpp:193
EditorValue snapshotValue() const override
Capture deterministic scene content for document persistence.
Definition SceneTarget.cpp:331
Result< DomainOperation > makeReparent(const ObjectId &id, const ObjectId &parent) const override
Make reparent.
Definition SceneTarget.cpp:265
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget > candidate) override
Commits domain state.
Definition SceneTarget.cpp:166
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition SceneTarget.cpp:162
Result< DomainOperation > makeSetTransform(const ObjectId &id, const SceneTransformValue &transform) const override
Make set transform.
Definition SceneTarget.cpp:305
std::vector< ObjectId > sceneChildren(const ObjectId &parent) const override
Scene children.
Definition SceneTarget.cpp:186
Result< DomainOperation > plan(IEditableTarget &target, const ObjectId &object, const SceneTransformValue &transform) const
Query transform capability and build a transform operation.
Definition SceneTarget.cpp:437
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ PreconditionViolation
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
Request used to create a scene object in either backend.
Definition SceneTarget.h:27
Immutable scene object snapshot returned across target boundaries.
Definition SceneTarget.h:19
Serializable transform exchanged across the scene editing boundary.
Definition SceneEditingCommands.h:10
double rotationY
Definition SceneEditingCommands.h:15
double rotationZ
Definition SceneEditingCommands.h:16
double rotationX
Definition SceneEditingCommands.h:14