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
pslgprep.cpp File Reference
#include "mesh/pslgprep.h"
#include "core/editgeometry.h"
#include <QSet>
#include <QtConcurrent/QtConcurrent>
#include <algorithm>
#include <cmath>
Include dependency graph for pslgprep.cpp:

Namespaces

namespace  mesh
 
namespace  mesh::pslg
 

Functions

QVector< QPointF > mesh::pslg::simplifyPolyline (const QVector< QPointF > &pts, double epsilon)
 
QVector< QPointF > mesh::pslg::simplifyRing (const QVector< QPointF > &ring, double epsilon)
 
QVector< QPointF > mesh::pslg::densifyRing (const QVector< QPointF > &ring, double maxLen)
 
double mesh::pslg::polylineLength (const QVector< QPointF > &pts)
 
double mesh::pslg::ringSignedArea (const QVector< QPointF > &ring)
 
QVector< QPointF > mesh::pslg::resampleMinLength (const QVector< QPointF > &pts, double minLen, double maxDeviation, int *flaggedOut=nullptr)
 Length-based decimation — the inverse of densifyRing().
 
QVector< QPointF > mesh::pslg::resampleRingMinLength (const QVector< QPointF > &ring, double minLen, double maxDeviation, int *flaggedOut=nullptr)
 
double mesh::pslg::distSqToSegment (const QPointF &p, const QPointF &a, const QPointF &b)
 
void mesh::pslg::snapAndDedupe (QVector< mesh::SteinerPoint > &pts, double snapEps)
 
QVector< bool > mesh::pslg::greedyMinSeparation (const QVector< QPointF > &pts, double minSep)
 Greedy minimum-separation thinning in input order.
 
PreparedRing mesh::pslg::prepareHoleRing (const QVector< QPointF > &raw, double simplifyEps, double maxEdgeLen)
 
bool mesh::pslg::prepareHoleRings (const QVector< QVector< QPointF > > &raw, double simplifyEps, double maxEdgeLen, QVector< PreparedRing > *out, const std::function< bool()> &isCancelled={}, const std::function< void(int, int)> &onChunk={}, int *skippedOut=nullptr)
 Prepare many hole rings in parallel (order-preserving).
 

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

The RDP / densify / dedupe helpers are moved verbatim from meshgenerationdialog.cpp's anonymous namespace so the pipeline, collectInputs, and tests share one implementation.