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
breaklinestrips.h
Go to the documentation of this file.
1
20#ifndef OPENSWMMVIS_MESH_BREAKLINESTRIPS_H
21#define OPENSWMMVIS_MESH_BREAKLINESTRIPS_H
22
23#include <QPair>
24#include <QPointF>
25#include <QVector>
26
27#include <functional>
28
29namespace mesh
30{
31
33 double minWidth = 0.0;
34 double maxWidth = 0.0;
35 double station = 0.0;
36 double maxAngleDeg = 20.0;
37 double widthChange =
38 0.25;
39 int minStations = 4;
42 double endTrimFraction = 0.25;
45 std::function<double(double, double)> elevationAt;
46};
47
48struct FacingPair {
49 int lineA = -1, lineB = -1;
50 QVector<QPointF> bankA, bankB;
51 double width = 0.0;
52 double length = 0.0;
53};
54
91[[nodiscard]] QVector<FacingPair> findFacingPairs(const QVector<QVector<QPointF>> &lines,
92 const QVector<QPair<QPointF, QPointF>> &obstacles,
93 const FacingPairOptions &opt);
94
95} // namespace mesh
96
97#endif // OPENSWMMVIS_MESH_BREAKLINESTRIPS_H
Definition meshcommands.h:38
QVector< FacingPair > findFacingPairs(const QVector< QVector< QPointF > > &lines, const QVector< QPair< QPointF, QPointF > > &obstacles, const FacingPairOptions &opt)
Greedily identify near-parallel breakline runs facing across an unobstructed sampled strip.
Definition breaklinestrips.cpp:214
Definition breaklinestrips.h:48
QVector< QPointF > bankB
The facing portions: A in A's direction, B in B's.
Definition breaklinestrips.h:50
double length
Along A.
Definition breaklinestrips.h:52
double width
Median separation.
Definition breaklinestrips.h:51
QVector< QPointF > bankA
Definition breaklinestrips.h:50
int lineB
Indices into the input lines.
Definition breaklinestrips.h:49
int lineA
Definition breaklinestrips.h:49
Definition breaklinestrips.h:32
double station
Sampling step along each line, map units (> 0).
Definition breaklinestrips.h:35
double minWidth
Separation range, map units (maxWidth > minWidth > 0).
Definition breaklinestrips.h:33
double maxAngleDeg
Largest angle between the two lines at a station.
Definition breaklinestrips.h:36
double widthChange
Largest relative change of the separation from one station to the next.
Definition breaklinestrips.h:37
double endTrimFraction
Definition breaklinestrips.h:42
double maxWidth
Definition breaklinestrips.h:34
int minStations
A pair also runs at least three separations along the line.
Definition breaklinestrips.h:39
std::function< double(double, double)> elevationAt
Definition breaklinestrips.h:45
double
Definition swmmpollutantpropertyadapter.cpp:68