载入中...
搜索中...
未找到
SplinePathBinder.cpp
浏览该文件的文档.
40SplinePathBinder::SplinePathBinder(std::string documentTarget) : documentTarget_(std::move(documentTarget)) {}
42Result<void> SplinePathBinder::bindResult(const SplinePathDocument& document, const StableId& point,
46 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-target-mismatch"),
50 std::none_of(points.begin(), points.end(), [&](const auto& value) { return value.id == point; }))
51 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.spline.binding-point-missing"),
54 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-identity-empty"),
66 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.spline.binding-not-found"),
74 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-target-mismatch"),
82 return eve::editing::failed<void>(EditorStatus::Conflict, RuleId("editor.spline.binding-point-stale"),
88 if (!std::isfinite(pose.value().x) || !std::isfinite(pose.value().y) || !std::isfinite(pose.value().z))
89 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-pose-invalid"),
137 return eve::editing::failed<void>(EditorStatus::Unsupported, RuleId("editor.spline.binding-schema-unsupported"),
140 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-snapshot-invalid"),
151 !candidate.emplace(StableId(*point), SplinePointBinding{StableId(*point), *host, *object}).second)
152 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.spline.binding-snapshot-invalid"),
std::array< std::uint64_t, kPixelChunkSize *kPixelChunkSize > updated
Definition PixelWorld.cpp:53
virtual bool getNodeIn(const std::string &host, const std::string &id, SceneNodeInfo *out) const =0
Look up one node in a named host.
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
Consumer-owned transform lookup contract used by spline binding.
Definition SplinePathBinder.h:21
Result< SplineBindingPose > resolve(const std::string &host, const std::string &object) const override
Resolve.
Definition SplinePathBinder.cpp:26
Result< void > loadSnapshot(const EditorValue &snapshot)
Atomically restore links for this binder's pinned target.
Definition SplinePathBinder.cpp:127
Result< void > bindResult(const SplinePathDocument &document, const StableId &point, std::string host, std::string object, const ISplineBindingTransformSource &source)
Validate and atomically install or replace one point binding.
Definition SplinePathBinder.cpp:42
EditorValue snapshotValue() const
Capture schema eve.procgen.splineBinder version one.
Definition SplinePathBinder.cpp:115
Result< void > refreshResult(SplinePathDocument &document, const ISplineBindingTransformSource &source) const
Resolve every link, then commit all point positions as one isolated document update.
Definition SplinePathBinder.cpp:71
Result< void > unbindResult(const StableId &point)
Remove one binding without touching its spline point.
Definition SplinePathBinder.cpp:64
std::vector< SplinePointBinding > bindings() const
Return deterministic bindings ordered by stable point id.
Definition SplinePathBinder.cpp:105
SplinePathBinder(std::string documentTarget)
Construct a binder pinned to one spline document target identity.
Definition SplinePathBinder.cpp:40
Owning spline authoring document with transactional operations and schema-versioned snapshots.
Definition SplinePathDocument.h:91
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget > candidate) override
Commits domain state.
Definition SplinePathDocument.cpp:472
std::vector< SplinePathControlPoint > points() const
Return points in deterministic order and stable-id tie order.
Definition SplinePathDocument.cpp:517
Result< T > applied(T value, std::vector< Diagnostic > diagnostics={})
Construct an Applied result with an owning payload and optional diagnostics.
Definition EditingResult.h:43
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
Definition HeightmapBrush.h:9
Definition Container.h:602
Serializable snapshot of one scene node (value type, no scene types).
Definition SceneQuery.h:17
Persistent link from one spline control point to one scene transform identity.
Definition SplinePathBinder.h:44