SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
io.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2#pragma once
3#include "mesh.hpp"
4#include <filesystem>
5#include <functional>
6#include <istream>
7
8namespace meshkit
9{
11struct IOOptions {
13 std::function<bool()> cancelled;
14 bool overwrite = false, durable = false, allowAttributeLoss = false;
15 bool legacy2dm =
16 false;
18};
20 std::uint64_t bytes = 0, ignoredRecords = 0, reorientedCells = 0;
21 std::vector<std::string> losses;
22};
27// Version-1 MKB is lossless for the generic model, with counted little-endian
28// records and a trailing content checksum. No host struct/padding is serialized.
29// Read failures expose no partial mesh. Writes use an exclusive same-directory
30// temporary and atomic publication; cancellation/failure preserves an old file.
31ReadResult readBinary(std::istream &, const IOOptions & = {});
32ReadResult readBinary(const std::filesystem::path &, const IOOptions & = {});
33IOReport writeBinary(const std::filesystem::path &, const Mesh &, const IOOptions & = {});
34// Bounded-record, two-pass seekable file reader: elements may precede nodes.
35// E3T/E4Q/ND/standard NS supported. Unsupported cards are never silently lost.
36// 2DM does not declare physical units; callers must supply them before meshing.
37ReadResult read2dm(const std::filesystem::path &, const IOOptions & = {});
38IOReport write2dm(const std::filesystem::path &, const Mesh &, const IOOptions & = {});
39}
Definition qtcdtstorage.h:9
ReadResult read2dm(const std::filesystem::path &, const IOOptions &={})
Definition smsio.cpp:248
UnknownRecords
Definition io.hpp:10
ReadResult readBinary(std::istream &, const IOOptions &={})
Definition binaryio.cpp:99
IOReport write2dm(const std::filesystem::path &, const Mesh &, const IOOptions &={})
Definition smsio.cpp:396
IOReport writeBinary(const std::filesystem::path &, const Mesh &, const IOOptions &={})
Definition binaryio.cpp:11
Definition io.hpp:11
bool allowAttributeLoss
Definition io.hpp:14
bool overwrite
Definition io.hpp:14
UnknownRecords unknownRecords
Definition io.hpp:17
Limits limits
Definition io.hpp:12
bool legacy2dm
Compatibility ids/optional materials; still rejects malformed geometry.
Definition io.hpp:15
std::function< bool()> cancelled
Definition io.hpp:13
bool durable
Definition io.hpp:14
Definition io.hpp:19
std::uint64_t ignoredRecords
Definition io.hpp:20
std::vector< std::string > losses
Bounded codes, with total ignored-record count above.
Definition io.hpp:21
std::uint64_t bytes
Definition io.hpp:20
std::uint64_t reorientedCells
Definition io.hpp:20
Definition mesh.hpp:59
Definition mesh.hpp:48
Definition mesh.hpp:65
Definition io.hpp:23
IOReport report
Definition io.hpp:25
Mesh mesh
Definition io.hpp:24