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
patch.hpp
Go to the documentation of this file.
1
26#ifndef MESHKIT_NATIVE_MESHPATCH_HPP
27#define MESHKIT_NATIVE_MESHPATCH_HPP
28
29namespace meshkit::plan
30{
31
40
45struct SweptPatch {
47 double width = 0.0;
48 int across = 0;
49 double along = 0.0;
51};
52
60 int across = 0;
61 double along = 0.0;
63};
64
72
83
92Text validate(const PatchMesh &pm);
93
97Polygon orderedPatchBoundary(const PatchMesh &pm, Text *err = nullptr);
98
102PatchMesh makeTransfinitePatch(const StructuredPatch &p, Text *err = nullptr);
103
108PatchMesh makeSweptPatch(const SweptPatch &p, Text *err = nullptr);
109
113PatchMesh makeBankPairPatch(const BankPairPatch &p, Text *err = nullptr);
114
115// ── Quad-region redesign (QUAD_MESHING_REDESIGN_PLAN_2026-09-06.md §4.2) ───
116
125PatchMesh makeTransfinitePatch(const Vector<Vector<Point2>> &sides, int n, int m, const Text &tag,
126 Text *err = nullptr);
127// Four already-stationed cyclic sides. Opposite side counts must agree.
128// Retains every boundary coordinate exactly; shared owners can reuse/reverse
129// one canonical sequence. No independent boundary resampling occurs.
131 Text *err = nullptr);
132
136PatchMesh makeMappedPatch(const Polygon &ring, const Vector<int> &corners, double h,
137 const Text &tag, Text *err = nullptr);
138
144PatchMesh makeMappedPatch(const Polygon &ring, const Vector<int> &corners, double hAlong,
145 double hAcross, double alongAngleDeg, const Text &tag,
146 Text *err = nullptr);
147
148} // namespace meshkit::plan
149
150#endif // MESHKIT_NATIVE_MESHPATCH_HPP
Definition storage.hpp:18
Definition planmodel.hpp:49
Definition planmodel.hpp:14
ArrowPlacement p
Definition linesymbollayer.cpp:29
MaskMode m
Definition maskspec.cpp:21
int h
Definition mesh2dresultsexport.cpp:477
Definition blocks.hpp:25
PatchMesh makeMappedPatch(const Polygon &ring, const Vector< int > &corners, double h, const Text &tag, Text *err=nullptr)
Split a CCW ring at the four corners (ring vertex indices, ring order) into polyline sides,...
Definition patch.cpp:1040
PatchMesh makeBankPairPatch(const BankPairPatch &p, Text *err=nullptr)
Build a conforming strip between two simple, disjoint banks. Rejects ambiguous endpoint pairing,...
Definition patch.cpp:1253
Text validate(const StructuredPatch &p)
Input checks. Empty string = valid.
Definition patch.cpp:407
Polygon orderedPatchBoundary(const PatchMesh &pm, Text *err=nullptr)
Validate the complete patch and return its CCW boundary, without a repeated closing vertex....
Definition patch.cpp:630
PatchMesh makeTransfinitePatchAtStations(const Vector< Vector< Point2 > > &sides, const Text &tag, Text *err=nullptr)
Definition patch.cpp:883
PatchMesh makeSweptPatch(const SweptPatch &p, Text *err=nullptr)
Sweep the centreline: (stations)×(across+1) vertices, (stations-1)×across quads. Station and index co...
Definition patch.cpp:1092
PatchMesh makeTransfinitePatch(const StructuredPatch &p, Text *err=nullptr)
Transfinite interpolation on the four straight sides. The result has (n+1)×(m+1) vertices and n×m qua...
Definition patch.cpp:656
const Polygon & ring
Definition patch.cpp:164
Vector< int > sides
Definition planning.cpp:203
Two open bank polylines with independently supplied directions. Endpoints are paired by minimum total...
Definition patch.hpp:58
int across
Definition patch.hpp:60
double along
Definition patch.hpp:61
Vector< Point2 > bankA
Definition patch.hpp:59
Vector< Point2 > bankB
Definition patch.hpp:59
Text tag
Definition patch.hpp:62
A polyline through a patch's vertices that must be reported as mesh edges with a marker — a conduit r...
Definition patch.hpp:67
int marker
Definition patch.hpp:69
Vector< int > path
Local vertex indices, consecutive ones joined by quad edges.
Definition patch.hpp:68
Text tag
Definition patch.hpp:70
A generated patch in local indices. Quads are emitted CCW.
Definition patch.hpp:74
Vector< PatchLine > lines
Definition patch.hpp:81
Vector< Point2 > xy
Definition patch.hpp:75
Text tag
Definition patch.hpp:78
Vector< std::pair< int, int > > boundarySegments
Local index pairs around the patch.
Definition patch.hpp:77
Vector< MeshTriangle > quads
v3 >= 0, local indices.
Definition patch.hpp:76
Four-sided patch: corners in cyclic order (either orientation); n subdivisions along corner0→corner1 ...
Definition patch.hpp:35
int m
Definition patch.hpp:37
Vector< Point2 > corners
Exactly 4, cyclic.
Definition patch.hpp:36
Text tag
Definition patch.hpp:38
Swept patch: the centreline is offset ±width/2 (mitred at interior vertices) and cut into across quad...
Definition patch.hpp:45
Vector< Point2 > centreline
>= 2 points.
Definition patch.hpp:46
Text tag
Definition patch.hpp:50
double width
Definition patch.hpp:47
int across
Definition patch.hpp:48
double along
Definition patch.hpp:49