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
featurelayerimporter.h
Go to the documentation of this file.
1
22#ifndef OPENSWMMVIS_UI_DIALOGS_IMPORT_FEATURELAYERIMPORTER_H
23#define OPENSWMMVIS_UI_DIALOGS_IMPORT_FEATURELAYERIMPORTER_H
24
28
29#include <QObject>
30#include <QSet>
31#include <QString>
32
33#include <functional>
34
35class GISVectorLayer;
36class MapCanvas;
37class SWMMModelLayer;
38
40
43struct SourceSpec {
44 QString filePath;
45 QString layerName;
46 QString filterExpr;
47 bool selectedOnly = false;
48 QSet<long long> selectedFids;
49 QString sourceWkt;
50 QString targetWkt;
51};
52
53class FeatureLayerImporter : public QObject
54{
55 Q_OBJECT
56
57public:
59 SWMMModelLayer *target,
60 MapCanvas *canvas,
62 QObject *parent = nullptr);
63
64 [[nodiscard]] const ImportMapping &mapping() const { return m_mapping; }
65 void setMapping(const ImportMapping &m) { m_mapping = m; }
66
68 [[nodiscard]] SourceSpec sourceSpec() const;
69
72 [[nodiscard]] ModelSnapshot captureModelSnapshot() const;
73
79 [[nodiscard]] static QVector<SourceFeature>
80 readSourceFeatures(const SourceSpec &spec, QString *errorOut = nullptr);
81
88 ImportPlan execute(const ImportPlan &plan,
89 const std::function<bool(int, int)> &progress = {});
90
91private:
92 GISVectorLayer *m_source = nullptr;
93 SWMMModelLayer *m_target = nullptr;
94 MapCanvas *m_canvas = nullptr;
95 ImportMapping m_mapping;
96};
97
98} // namespace openswmmvis::import
99
100#endif // OPENSWMMVIS_UI_DIALOGS_IMPORT_FEATURELAYERIMPORTER_H
A map layer backed by a GDAL/OGR vector dataset.
Definition gisvectorlayer.h:103
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition featurelayerimporter.h:54
ImportPlan execute(const ImportPlan &plan, const std::function< bool(int, int)> &progress={})
Definition featurelayerimporter.cpp:339
ModelSnapshot captureModelSnapshot() const
Definition featurelayerimporter.cpp:72
SourceSpec sourceSpec() const
Definition featurelayerimporter.cpp:52
void setMapping(const ImportMapping &m)
Definition featurelayerimporter.h:65
const ImportMapping & mapping() const
Definition featurelayerimporter.h:64
static QVector< SourceFeature > readSourceFeatures(const SourceSpec &spec, QString *errorOut=nullptr)
Definition featurelayerimporter.cpp:159
QPointer< OpenSWMMVisLayer > source
Definition maskclipresolver.cpp:30
MaskMode m
Definition maskspec.cpp:18
Definition featurelayerimporter.h:39
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Definition importmapping.h:37
Definition importplan.h:43
Definition importplanning.h:46
Definition featurelayerimporter.h:43
QSet< long long > selectedFids
honored when selectedOnly
Definition featurelayerimporter.h:48
QString targetWkt
model-layer CRS WKT; empty = none
Definition featurelayerimporter.h:50
QString filePath
OGR datasource path.
Definition featurelayerimporter.h:44
QString layerName
OGR sublayer name; empty = first layer.
Definition featurelayerimporter.h:45
QString sourceWkt
source-layer CRS WKT; empty = none
Definition featurelayerimporter.h:49
bool selectedOnly
Definition featurelayerimporter.h:47
QString filterExpr
current OGR attribute filter of the layer
Definition featurelayerimporter.h:46