载入中...
搜索中...
未找到
VegetationFieldTarget.h
浏览该文件的文档.
1#pragma once
2
6
7#include <memory>
8#include <string>
9#include <vector>
10
11namespace eve::graphics_editing {
12
21public:
26 std::string id, graphics::VegetationField& field);
27
29 editing::TargetId targetId() const override { return editing::TargetId(id_); }
31 std::uint64_t revision() const override { return revision_; }
33 editing::EditRegion dirtyRegion() const override { return dirty_; }
35 void clearDirtyRegion() override { dirty_.clear(); }
37 editing::TargetDescriptor describe() const override;
42 void* queryCapability(const editing::CapabilityId& capability) override;
44 [[nodiscard]] editing::Result<void> applyDomainOperation(const editing::DomainOperation& operation) override;
46 [[nodiscard]] std::unique_ptr<editing::IDomainOperationTarget> cloneDomainState() const override;
48 [[nodiscard]] editing::Result<void> commitDomainState(
49 std::unique_ptr<editing::IDomainOperationTarget> candidate) override;
51 [[nodiscard]] eve::Result<eve::Revision> currentRevision(
52 const editing::SelectionSnapshot& selection) const override;
54 editing::PropertySchema schema(const editing::SelectionSnapshot& selection) const override;
57 const editing::PropertyPath& path) const override;
59 [[nodiscard]] editing::Result<editing::DomainOperation> makeSet(const editing::SelectionSnapshot& selection,
61 const editing::Value& value,
62 editing::PropertySetMode mode) const override;
64 [[nodiscard]] editing::Result<editing::DomainOperation> makeReset(const editing::SelectionSnapshot& selection,
65 const editing::PropertyPath& path) const override;
66
72 [[nodiscard]] editing::Result<editing::DomainOperation> makeTransform(const editing::SelectionSnapshot& selection,
73 glm::vec3 center, glm::vec3 extents,
74 float yaw) const;
76 std::vector<editing::StableId> elementIds() const;
77
78private:
80 struct Entry {
83 };
87 VegetationFieldTarget(std::string id, graphics::VegetationField* field, graphics::VegetationGlobals globals,
88 std::vector<Entry> entries, std::uint64_t fieldRevision);
93 const Entry* selected(const editing::SelectionSnapshot& selection) const;
98 Entry* selected(const std::string& id);
100 [[nodiscard]] editing::Result<void> validateAndPublish(const std::vector<Entry>& entries);
102 [[nodiscard]] editing::Result<editing::DomainOperation> replacement(const Entry& before, const Entry& after,
103 std::string property) const;
104
105 std::string id_;
106 graphics::VegetationField* field_ = nullptr;
108 std::vector<Entry> entries_;
109 std::uint64_t fieldRevision_ = 0;
110 editing::Revision revision_ = 1;
111 editing::EditRegion dirty_;
112};
113
114} // namespace eve::graphics_editing
ActionParameterOperation operation
double value
std::unordered_map< std::string, QuestRuntime > entries
#define EVENGINE_API_WORLD
Definition Export.h:109
std::string path
Definition PlayHost.cpp:110
std::string id
Definition PlayHost.cpp:108
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
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Backend-independent, owning vegetation influence field. Single writer; concurrent const evaluation is...
Owning editor document whose runtime projection is one VegetationField. Element IDs remain stable whi...
editing::EditRegion dirtyRegion() const override
Dirty region.
std::uint64_t revision() const override
Revision.
editing::TargetId targetId() const override
Target id.
void clearDirtyRegion() override
Clears dirty region.
std::uint64_t Revision
PropertySetMode
PropertySetMode public API.
DomainOperation public API.
EditRegion public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Owning element definition; no scene, texture or entity pointers survive admission....
Owning global defaults. Extras = emission, wetness, overlay, alpha. Motion = signed world X/Z directi...