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
meshquadmatch.h
Go to the documentation of this file.
1
29#ifndef OPENSWMMVIS_MESH_MESHQUADMATCH_H
30#define OPENSWMMVIS_MESH_MESHQUADMATCH_H
31
33#include "mesh/meshresult.h"
34
35#include <QPair>
36#include <QSet>
37#include <QVector>
38
39namespace mesh {
40
45{
46 int v[4] = {-1, -1, -1, -1};
47};
48
50{
52 bool gapPairing = true;
53 bool polish = true;
54};
55
57{
60 int gapQuads = 0;
62 int polishSwaps = 0;
63};
64
73 const QVector<int> &cellIds,
74 const QVector<QuadTemplate> &templates,
75 const QSet<QPair<int, int>> &lockedEdges,
76 const QuadPairingOptions &opts,
77 QVector<int> *oldToNew);
78
82QVector<int> maximumMatching(int n, const QVector<QPair<int, int>> &edges);
83
87bool unionQuad(const QVector<MeshVertex> &vertices, const MeshTriangle &t1,
89
90} // namespace mesh
91
92#endif // OPENSWMMVIS_MESH_MESHQUADMATCH_H
std::size_t n
Definition mesh2dresultsexport.cpp:426
QVector< QuadTemplate > templates
Input (== Triangle output) vertex ids.
Definition meshgenerator.cpp:173
int t1
Definition meshquadmatch.cpp:40
int t2
Definition meshquadmatch.cpp:40
MeshTriangle quad
Definition meshquadmatch.cpp:39
Definition meshcommands.h:302
QVector< int > maximumMatching(int n, const QVector< QPair< int, int > > &edges)
Maximum-cardinality matching on a general graph — Edmonds' blossom algorithm (O(V·E))....
Definition meshquadmatch.cpp:75
bool unionQuad(const QVector< MeshVertex > &vertices, const MeshTriangle &t1, const MeshTriangle &t2, MeshTriangle &quad)
The CCW quad formed by two triangles sharing edge (p,q): returns false when they do not share exactly...
Definition meshquadmatch.cpp:178
QuadPairingStats pairTrianglesIntoQuads(MeshResult &mesh, const QVector< int > &cellIds, const QVector< QuadTemplate > &templates, const QSet< QPair< int, int > > &lockedEdges, const QuadPairingOptions &opts, QVector< int > *oldToNew)
Pair the triangles cellIds (indices into mesh.triangles; every one must be a triangle) into quads....
Definition meshquadmatch.cpp:211
Result of MeshGenerator::generate.
Definition meshresult.h:116
A cell in the mesh — a triangle or (since the engine's mixed tri-quad meshes, workplans/TRI_QUAD_MESH...
Definition meshresult.h:54
Definition meshquadmatch.h:50
QuadQualityBounds bounds
Definition meshquadmatch.h:51
bool polish
Alternating-4-cycle improvement after blossom.
Definition meshquadmatch.h:53
bool gapPairing
Run blossom on the residual (false = templates only; tests).
Definition meshquadmatch.h:52
Definition meshquadmatch.h:57
int leftoverTriangles
Region triangles still triangles on exit.
Definition meshquadmatch.h:61
int polishSwaps
Definition meshquadmatch.h:62
int templateQuads
Definition meshquadmatch.h:58
int templatesSkipped
Split, already used, or failed the bounds.
Definition meshquadmatch.h:59
int gapQuads
Definition meshquadmatch.h:60
Acceptance bounds shared by pairing, cleanup, smoothing and the legacy tri-pair merge....
Definition meshquadquality.h:33
Four vertex ids in cyclic (CCW) order. Before the PSLG is built these are meshquadpoints' combined in...
Definition meshquadmatch.h:45
int v[4]
Definition meshquadmatch.h:46