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.cpp File Reference
#include "mesh/meshminsizecleanup.h"
#include "mesh/meshcellgeom.h"
#include <QHash>
#include <QSet>
#include <algorithm>
#include <cmath>
#include <limits>
Include dependency graph for meshminsizecleanup.cpp:

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

See meshminsizecleanup.h. Standard half-edge-free edge collapse: candidate edges are the short ones, each collapse is gated by the LINK CONDITION (the textbook test for whether a collapse preserves manifoldness) plus an orientation check on every affected triangle, and the whole pass is transactional.

Variable Documentation

◆ boundaryVerts

QSet<int> boundaryVerts

◆ constrained

QSet<VKey> constrained

edges that must survive

◆ edgeTris

QHash<VKey, QVector<int> > edgeTris

edge -> incident triangles

◆ isIdentityVert

QVector<bool> isIdentityVert

tag/coupledNode only — see build()

◆ protectedVert

QVector<bool> protectedVert

◆ ringId

QVector<int> ringId

hull-cycle id, -1 = interior

◆ ringVertexCount

QHash<int, int> ringVertexCount

◆ vertNbrs

QVector<QSet<int> > vertNbrs

vertex -> adjacent vertices

◆ vertQuad

QVector<bool> vertQuad

vertex -> touches a quad (collapse refused)

◆ vertTris

QVector<QSet<int> > vertTris

vertex -> incident cells