载入中...
搜索中...
未找到
VirtualGeometryTarget.h
浏览该文件的文档.
1#pragma once
2
7
8#include <cstdint>
9#include <memory>
10#include <string>
11#include <vector>
12
13namespace eve::virtualgeometry {
14struct VirtualGeometryAsset;
15}
16
18
24using editing::Result;
46
58
61 public virtual IEditableTarget,
64 public IPropertyProvider {
65public:
67 explicit VirtualGeometryDocumentTarget(std::string id);
69 TargetId targetId() const override { return TargetId(id_); }
71 TargetDescriptor describe() const override;
74 void* queryCapability(const CapabilityId& capability) override;
76 Result<void> applyDomainOperation(const DomainOperation& operation) override;
78 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
80 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
82 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
84 PropertySchema schema(const SelectionSnapshot& selection) const override;
86 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
88 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
89 const EditorValue& value, PropertySetMode mode) const override;
91 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
92 const PropertyPath& path) const override;
94 const VirtualGeometryImportValue& value() const { return value_; }
96 std::vector<EditorDiagnostic> validate() const;
98 EditorValue snapshotValue() const;
100 Result<void> loadSnapshot(const EditorValue& snapshot);
101
102private:
104 bool matches(const SelectionSnapshot& selection) const;
106 EditorValue contentValue() const;
108 Result<DomainOperation> replacement(EditorValue content, std::string property) const;
109 std::string id_;
111};
112
115 std::vector<float> positions, normals;
116 std::vector<std::uint32_t> indices;
117};
118
121public:
123 virtual ~IVirtualGeometryMeshResolver() = default;
125 virtual Result<VirtualGeometryMeshData> resolve(const std::string& assetId) const = 0;
126};
127
130 float distance = 0;
131 int clusters = 0;
132 std::uint64_t triangles = 0;
133 std::vector<int> levelHistogram;
134};
135
139 int vertices = 0;
140 std::uint64_t sourceTriangles = 0, storedTriangles = 0;
141 int clusters = 0, maxLod = 0, roots = 0;
142 std::uint64_t checksum = 0;
143 std::vector<VirtualGeometryLodSample> lodCurve;
144};
145
148public:
155 const IVirtualGeometryMeshResolver& resolver);
158 const virtualgeometry::VirtualGeometryAsset* asset() const { return asset_.get(); }
160 Revision revision() const { return revision_; }
161
162private:
163 std::unique_ptr<virtualgeometry::VirtualGeometryAsset> asset_;
164 Revision revision_ = 0;
165};
166
167} // namespace eve::virtualgeometry_editing
ActionParameterOperation operation
double value
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string path
Definition PlayHost.cpp:110
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
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
Dirty region and revision shared by every editable document target.
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.
Asset resolver boundary for VirtualGeometry preprocessing.
virtual Result< VirtualGeometryMeshData > resolve(const std::string &assetId) const =0
Return an owned triangulated mesh for one asset generation.
virtual ~IVirtualGeometryMeshResolver()=default
Releases IVirtualGeometryMeshResolver resources.
Candidate-first CPU cluster-DAG builder and LOD preview service.
~VirtualGeometryBuildRuntime()
Virtual geometry build runtime.
const virtualgeometry::VirtualGeometryAsset * asset() const
Access the published asset.
VirtualGeometryBuildRuntime()
Virtual geometry build runtime.
const VirtualGeometryImportValue & value() const
Value.
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
StrongId< ObjectIdTag > ObjectId
Definition EditingIds.h:65
PropertyType
PropertyType public API.
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
PropertySetMode
PropertySetMode public API.
PropertyFlag
PropertyFlag public API.
eve::StatusCode Status
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
Result< void > validatePropertyValue(const PropertyDescriptor &descriptor, const Value &value)
Validate property value.
PropertyReadState
PropertyReadState public API.
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
Severity
Stable severity of a diagnostic, independent of its display text.
Definition Diagnostic.h:20
DomainOperation public API.
EditRegion public API.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Fully processed virtual-geometry asset (CPU representation). Produced by Builder from a Mesh; uploade...
Immutable quality/cost report for a built virtual-geometry generation.
Authored virtual-geometry import and LOD-preview settings.
virtualgeometry::VirtualGeometryBuilder::Options builder
One sample in the logarithmic camera-distance LOD cost curve.
Owned neutral triangle mesh supplied by an importer/AssetDB adapter.