![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
Go to the source code of this file.
Classes | |
| struct | mesh::CleanupPolicy |
| struct | mesh::CleanupReport |
Namespaces | |
| namespace | mesh |
Functions | |
| bool | mesh::collapseSubScaleCells (MeshResult *mesh, const CleanupPolicy &policy, CleanupReport *report) |
Collapse sub-scale edges in mesh, protecting all constrained and coupled geometry. | |
Post-generation sliver removal (MIN_CELL_SIZE_ENFORCEMENT_PLAN_2026-08-17.md §6 Phase 5).
This is the JUNIOR partner to PSLG conditioning (pslgminsize.h), and the division of labour is worth stating plainly because it is easy to expect too much of this file:
Cleanup cannot do conditioning's job. Every edge that carries a marker, and every vertex that carries a tag or a coupled node, is protected — those are coupling identities and the whole point of constraining the mesh — so a sliver wedged between two constrained edges is untouchable here. When that happens the cell is reported in CleanupReport::unfixable rather than silently left behind, because it is actionable: it means the PSLG, not the mesh, needs attention.
Safety posture: any validity failure abandons the pass and restores the pre-pass mesh. A mesh with slivers is a slow simulation; a mesh with inverted or non-manifold cells is a wrong one.