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
meshquadmerge.h File Reference
#include "mesh/meshresult.h"
#include <QPair>
#include <QSet>
#include <QVector>
Include dependency graph for meshquadmerge.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mesh::QuadMergeOptions
 Acceptance thresholds for a merged quad. More...
 

Namespaces

namespace  mesh
 

Functions

QPair< int, int > mesh::edgeKey (int a, int b) noexcept
 Unordered vertex-pair key used for locked edges: (min, max).
 
int mesh::mergeTrianglePairs (MeshResult &mesh, const QuadMergeOptions &opts, const QSet< QPair< int, int > > &lockedEdges, QVector< int > *oldToNew=nullptr)
 Greedily merge adjacent triangle pairs of mesh into convex quads.
 

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

Tri-pair merge (workplans/TRI_QUAD_MESHING_PLAN_2026-09-06.md §3.1, phase G2). Post-processes a triangle mesh into a quad-dominant mixed mesh by greedily pairing adjacent triangles into convex quadrilaterals, best quality first. Unmatched triangles remain, so the output is mixed by nature. Never merges across a locked edge (breaklines, boundary segments, BC-carrying edges), across different region tags, or between cells whose hydraulic attributes differ.

Result cells follow the engine order — every remaining triangle first, then every quad — and the caller receives the old→new cell index map so any per-cell array it holds can be remapped.