![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
#include <QPointF>#include <QRectF>#include <QVector>Go to the source code of this file.
Classes | |
| class | mesh::CrossField |
| struct | mesh::CrossField::Options |
Namespaces | |
| namespace | mesh |
Boundary-aligned 2D cross field on a regular grid (workplans/QUAD_MESHING_REDESIGN_PLAN_2026-09-06.md §4.4b).
A cross (4-RoSy) at angle θ is represented by u = (cos 4θ, sin 4θ), which is invariant under θ → θ + 90°. The field is the discrete harmonic interpolant of Dirichlet data laid along "aligned polylines" (the region ring, interior constraint segments, an optional guide): every grid cell a polyline passes through is pinned to that segment's tangent; every other cell of the bounding-box grid is an unknown solved by SOR on the 5-point Laplacian. No inside/outside mask is needed — exterior cells simply carry harmless values. No third-party solver (plan D2/D9).
Query: bilinear interpolation of u, then θ = atan2(u_y, u_x) / 4 folded to [0, π/2). Where |u| collapses (a singularity) θ is still returned — callers accept the resulting irregular lattice there.