载入中...
搜索中...
未找到
SplinePathBinder.h
浏览该文件的文档.
1#pragma once
2
4
5#include <map>
6#include <string>
7#include <vector>
8
9namespace eve {
10class ISceneQuery;
11}
12
13namespace eve::procgen_editing {
14
17 double x = 0.0, y = 0.0, z = 0.0;
18};
19
22public:
24 virtual ~ISplineBindingTransformSource() = default;
26 [[nodiscard]] virtual Result<SplineBindingPose> resolve(const std::string& host,
27 const std::string& object) const = 0;
28};
29
32public:
34 explicit SceneQuerySplineBindingSource(const ISceneQuery* query) : query_(query) {}
36 [[nodiscard]] Result<SplineBindingPose> resolve(const std::string& host,
37 const std::string& object) const override;
38
39private:
40 const ISceneQuery* query_ = nullptr;
41};
42
46 std::string host;
47 std::string object;
48};
49
59public:
61 explicit SplinePathBinder(std::string documentTarget);
63 [[nodiscard]] Result<void> bindResult(const SplinePathDocument& document, const StableId& point,
64 std::string host, std::string object,
67 [[nodiscard]] Result<void> unbindResult(const StableId& point);
69 [[nodiscard]] Result<void> refreshResult(SplinePathDocument& document,
72 [[nodiscard]] std::vector<SplinePointBinding> bindings() const;
74 [[nodiscard]] EditorValue snapshotValue() const;
76 [[nodiscard]] Result<void> loadSnapshot(const EditorValue& snapshot);
77
78private:
79 std::string documentTarget_;
80 std::map<StableId, SplinePointBinding> bindings_;
81};
82
83} // namespace eve::procgen_editing
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::vector< std::shared_ptr< DeviceBytes > > bindings
Definition OnnxGpgpu.cpp:38
UIHostHandle host
const UnitySourceAsset & source
glm::vec3 point
Scene graph query/mutation surface (provided by the scene module).
Definition SceneQuery.h:30
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Deterministic owning value tree shared by authoring hosts.
Consumer-owned transform lookup contract used by spline binding.
virtual ~ISplineBindingTransformSource()=default
Releases ISplineBindingTransformSource resources.
virtual Result< SplineBindingPose > resolve(const std::string &host, const std::string &object) const =0
Resolve one stable source identity without returning borrowed storage.
Optional-scene adapter for the UI-neutral spline binding contract.
SceneQuerySplineBindingSource(const ISceneQuery *query)
Construct from a borrowed capability; null represents a trimmed scene provider.
Owning, pointer-free spline-to-transform binder with atomic document refresh.
Owning spline authoring document with transactional operations and schema-versioned snapshots.
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
Value snapshot resolved from a bound transform source.
Persistent link from one spline control point to one scene transform identity.