载入中...
搜索中...
未找到
TerrainFile.h
浏览该文件的文档.
1#pragma once
2
4
5#include <cstdint>
6#include <span>
7#include <string>
8#include <string_view>
9
10namespace eve::procgen {
11
22enum class TerrainFileFormat : std::uint8_t {
23 Auto,
24 Evtr,
25 Evtrn,
26 Raw8,
27 Raw16LE,
28 Raw16BE
29};
30
40 float spacingX = 1.f;
41 float spacingZ = 1.f;
42 float minHeight = 0.f;
43 float maxHeight = 0.f;
44 bool hasSpacing = false;
45 std::string format;
46};
47
55[[nodiscard]] EVENGINE_API_DOMAINS TerrainFileFormat parseTerrainFileFormat(std::string_view name) noexcept;
56
65 std::span<const std::uint8_t> bytes, TerrainFileFormat format);
66
74[[nodiscard]] eve::Result<DecodedTerrainFile> loadTerrainFile(const std::string &path,
75 TerrainFileFormat format);
76
77} // namespace eve::procgen
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::uint64_t bytes
std::string name
std::string path
Definition PlayHost.cpp:110
Move-only operation result carrying either a value or Status.
Definition Result.h:155
In-memory terrain heightmap: a dense float grid (row-major, index = y * width + x) materialized from ...
Definition Heightmap.h:21
TerrainFileFormat parseTerrainFileFormat(std::string_view name) noexcept
Parse a format selector from a script-facing string.
eve::Result< DecodedTerrainFile > decodeTerrainFile(std::span< const std::uint8_t > bytes, TerrainFileFormat format)
Decode a terrain height field from in-memory file bytes.
eve::Result< DecodedTerrainFile > loadTerrainFile(const std::string &path, TerrainFileFormat format)
Read and decode a terrain height field through the filesystem capability.
TerrainFileFormat
Persisted terrain encodings the runtime can decode.
Definition TerrainFile.h:22
@ Auto
Detect from the leading magic bytes.
@ Evtrn
Raw EVTRN heightfield blob.
@ Raw16BE
Headerless square 16-bit big-endian (Mac) Pcg RAW samples.
@ Raw8
Headerless square 8-bit Pcg RAW samples.
@ Evtr
Chunked EVTR archive.
@ Raw16LE
Headerless square 16-bit little-endian (IBM) Pcg RAW samples.
Height field decoded from a persisted terrain file.
Definition TerrainFile.h:38
std::string format
"evtr" or "evtrn".
Definition TerrainFile.h:45