载入中...
搜索中...
未找到
TerrainDocumentCodec.cpp
浏览该文件的文档.
13const editor::EditorValue* field(const editor::EditorValue::Object& object, std::string_view name) {
20 if (!integer || *integer <= 0 || std::uint64_t(*integer) > std::numeric_limits<std::uint32_t>::max()) return false;
43editor::Result<editor::EditorValue> encodeTerrainDocument(const procgen::Heightmap& heightmap, float spacingX,
48 if (width == 0 || height == 0 || width > limits.maximumDimension || height > limits.maximumDimension ||
76 static const std::set<std::string, std::less<>> allowed{"schema", "schemaVersion", "width", "height",
93 if (!schemaText || *schemaText != "eve.terrain-editor-document" || !versionNumber || *versionNumber != 1)
99 if (!dimension(field(*object, "width"), width) || !dimension(field(*object, "height"), height) ||
101 std::uint64_t(width) * height > limits.maximumSamples || !finiteNumber(field(*object, "spacingX"), spacingX) ||
107 const auto* heights = heightsValue ? heightsValue->getIf<editor::EditorValue::Array>() : nullptr;
Versioned editor persistence for editable heightfields.
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
In-memory terrain heightmap: a dense float grid (row-major, index = y * width + x) materialized from ...
Definition Heightmap.h:21
eve::editing::Value EditorValue
Compatibility alias for the UI-independent authoring value tree.
Definition EditorValue.h:8
editor::Result< TerrainDocumentData > decodeTerrainDocument(const editor::EditorValue &value, const TerrainDocumentLimits &limits)
Validate and atomically decode one terrain editor snapshot.
Definition TerrainDocumentCodec.cpp:73
editor::Result< editor::EditorValue > encodeTerrainDocument(const procgen::Heightmap &heightmap, float spacingX, float spacingZ, const TerrainDocumentLimits &limits)
Encode the current authoritative heightmap as eve.terrain-editor-document/1.
Definition TerrainDocumentCodec.cpp:43
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
Owning editable terrain state restored from one document snapshot.
Definition TerrainDocumentCodec.h:22
float spacingZ
Definition TerrainDocumentCodec.h:25
procgen::Heightmap heightmap
Definition TerrainDocumentCodec.h:23
float spacingX
Definition TerrainDocumentCodec.h:24
Allocation limits checked before an editor terrain document is materialized.
Definition TerrainDocumentCodec.h:16