14#ifndef OPENSWMMVIS_MESH_INPMESHWRITER_H
15#define OPENSWMMVIS_MESH_INPMESHWRITER_H
116 double defaultMannings = 0.035,
176 [[nodiscard]]
static bool writeExternal(
const QString &inpPath,
177 const QString &meshFilePath,
180 double defaultMannings = 0.035,
181 QString *errorOut =
nullptr,
182 const UnitInfo &units = {});
187 [[nodiscard]]
static bool writeExternal(
const QString &inpPath,
188 const QString &meshFilePath,
189 const MeshResult &
mesh,
190 const CouplingMap &coupling,
191 const QVector<MeshEdgeBC> &bcs,
192 double defaultMannings,
193 QString *errorOut =
nullptr,
194 const UnitInfo &units = {});
201 [[nodiscard]]
static bool writeInline(
const QString &inpPath,
202 const MeshResult &
mesh,
203 const CouplingMap &coupling,
204 double defaultMannings = 0.035,
205 QString *errorOut =
nullptr,
206 const UnitInfo &units = {});
210 [[nodiscard]]
static bool writeInline(
const QString &inpPath,
211 const MeshResult &
mesh,
212 const CouplingMap &coupling,
213 const QVector<MeshEdgeBC> &bcs,
214 double defaultMannings,
215 QString *errorOut =
nullptr,
216 const UnitInfo &units = {});
232 const QString &meshFilePath,
233 QString *errorOut =
nullptr);
255 const MeshResult &
mesh,
256 const QVector<MeshEdgeBC> &bcs,
257 QString *errorOut =
nullptr);
295 const MeshResult &
mesh,
296 QString *errorOut =
nullptr,
297 double defaultMannings = 0.035);
312 QString *errorOut =
nullptr);
316 const QString &inpPath,
317 const QString &meshFilePath,
318 const MeshResult &
mesh,
319 const CouplingMap &coupling,
320 double defaultMannings = 0.035,
321 QString *errorOut =
nullptr,
322 const UnitInfo &units = {});
Definition inpmeshwriter.h:57
static QString buildBCSectionText(const QVector< MeshEdgeBC > &bcs)
Slice §V.VD.1 — render the [2D_BOUNDARY_CONDITIONS] section for the per-edge BC vector....
Definition inpmeshwriter.cpp:819
static bool patchAttributeSections(const QString &filePath, const MeshResult &mesh, QString *errorOut=nullptr, double defaultMannings=0.035)
Replace the [2D_VERTICES], [2D_TRIANGLES], [2D_QUADS], [2D_VERTEX_NODE_MAP], [2D_TRIANGLE_NODE_MAP] a...
Definition inpmeshwriter.cpp:1017
static bool patchBCSections(const QString &filePath, const MeshResult &mesh, const QVector< MeshEdgeBC > &bcs, QString *errorOut=nullptr)
Replace the [2D_BOUNDARY_CONDITIONS] and [2D_EDGE_CONVEYANCE] sections of filePath (a ....
Definition inpmeshwriter.cpp:996
static bool writeMeshFileRef(const QString &inpPath, const QString &meshFilePath, QString *errorOut=nullptr)
Retarget the .inp's [2D_MESH_FILE] reference at an already-existing .2dm without writing any mesh geo...
Definition inpmeshwriter.cpp:724
static bool write(MeshOutputMode mode, const QString &inpPath, const QString &meshFilePath, const MeshResult &mesh, const CouplingMap &coupling, double defaultMannings=0.035, QString *errorOut=nullptr, const UnitInfo &units={})
Convenience dispatch on MeshOutputMode.
Definition inpmeshwriter.cpp:794
static bool writeInline(const QString &inpPath, const MeshResult &mesh, const CouplingMap &coupling, double defaultMannings=0.035, QString *errorOut=nullptr, const UnitInfo &units={})
Replace (or append) all four 2D sections in the .inp at inpPath. Existing 2D sections are stripped fi...
Definition inpmeshwriter.cpp:636
static QString buildSectionText(const MeshResult &mesh, const CouplingMap &coupling, double defaultMannings=0.035, const UnitInfo &units={})
Render the 2D mesh sections as a single text block.
Definition inpmeshwriter.cpp:541
static bool writeExternal(const QString &inpPath, const QString &meshFilePath, const MeshResult &mesh, const CouplingMap &coupling, double defaultMannings=0.035, QString *errorOut=nullptr, const UnitInfo &units={})
Default mode: write the mesh into a sibling .2dm file and patch the .inp with a [2D_MESH_FILE] refere...
Definition inpmeshwriter.cpp:664
static QString buildConveyanceSectionText(const MeshResult &mesh, const QVector< MeshEdgeBC > &bcs)
Engine §11A — render the [2D_EDGE_CONVEYANCE] section.
Definition inpmeshwriter.cpp:886
static bool clearMeshFileRef(const QString &inpPath, QString *errorOut=nullptr)
Strip any [2D_MESH_FILE] reference from the .inp so the engine falls back to the inline [2D_*] mesh s...
Definition inpmeshwriter.cpp:759
QuadRegionMode mode
Resolved mode.
Definition meshgenerator.cpp:154
Definition meshcommands.h:302
MeshOutputMode
Output strategy for the four 2D mesh sections.
Definition inpmeshwriter.h:51
@ Inline
Inline the four sections directly in the .inp.
@ External
Write .2dm next to the .inp; reference via [2D_MESH_FILE].
1D↔2D coupling map produced by the meshing dialog.
Definition inpmeshwriter.h:34
QHash< int, QString > triangleToNode
Definition inpmeshwriter.h:38
QHash< int, QString > vertexToNode
Definition inpmeshwriter.h:36
QHash< int, double > triangleMannings
Definition inpmeshwriter.h:41
Unit & provenance metadata written as ;; header comments.
Definition inpmeshwriter.h:75
QString sourceCrsTag
Goes into ;; SOURCE_CRS: (e.g. "EPSG:2249").
Definition inpmeshwriter.h:77
QString linearUnitName
Goes into ;; UNITS: (e.g. "metre", "US survey foot", "SI (m)").
Definition inpmeshwriter.h:76
Result of MeshGenerator::generate.
Definition meshresult.h:116