载入中...
搜索中...
未找到
TerrainFile.cpp
浏览该文件的文档.
29 return std::uint32_t(bytes[0]) | (std::uint32_t(bytes[1]) << 8) | (std::uint32_t(bytes[2]) << 16) |
37bool startsWith(std::span<const std::uint8_t> bytes, const std::uint8_t *magic, std::size_t size) {
41eve::Result<DecodedTerrainFile> decodePcgRaw(std::span<const std::uint8_t> bytes, TerrainFileFormat format) {
81 return terrainFileFailure(eve::DiagnosticCode::ParseError, "EVTRN payload is truncated", "evtrn");
88 return terrainFileFailure(eve::DiagnosticCode::InvalidArgument, "EVTRN dimensions are invalid", "evtrn");
90 return terrainFileFailure(eve::DiagnosticCode::InvalidArgument, "EVTRN spacing is invalid", "evtrn");
175 return terrainFileFailure(eve::DiagnosticCode::InvalidArgument, "terrain file is empty", "terrain");
179 else if (startsWith(bytes, reinterpret_cast<const std::uint8_t *>("EVTR"), 4)) format = TerrainFileFormat::Evtr;
196eve::Result<DecodedTerrainFile> loadTerrainFile(const std::string &path, TerrainFileFormat format) {
204 return terrainFileFailure(eve::DiagnosticCode::NotFound, "terrain file could not be read: " + path, path);
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Definition EvpackPointGraphLoader.h:12
TerrainFileFormat parseTerrainFileFormat(std::string_view name) noexcept
Parse a format selector from a script-facing string.
Definition TerrainFile.cpp:159
eve::Result< DecodedTerrainFile > decodeTerrainFile(std::span< const std::uint8_t > bytes, TerrainFileFormat format)
Decode a terrain height field from in-memory file bytes.
Definition TerrainFile.cpp:172
eve::Result< DecodedTerrainFile > loadTerrainFile(const std::string &path, TerrainFileFormat format)
Read and decode a terrain height field through the filesystem capability.
Definition TerrainFile.cpp:196
@ Raw16BE
Headerless square 16-bit big-endian (Mac) Pcg RAW samples.
@ Raw16LE
Headerless square 16-bit little-endian (IBM) Pcg RAW samples.
@ InvalidArgument
@ NotFound
@ Unsupported
@ ParseError
Definition Container.h:602