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
meshminsizecleanup.h File Reference
#include "meshresult.h"
#include <QPointF>
#include <QString>
#include <QVector>
Include dependency graph for meshminsizecleanup.h:
This graph shows which files directly or indirectly include this file:

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.
 

Detailed Description

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

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:

  • conditioning removes slivers the INPUT demanded;
  • cleanup removes slivers Triangle ADDED.

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.