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
overviewmappanel.h
Go to the documentation of this file.
1
16#ifndef OPENSWMMVIS_UI_PANELS_OVERVIEWMAPPANEL_H
17#define OPENSWMMVIS_UI_PANELS_OVERVIEWMAPPANEL_H
18
19#include <QDockWidget>
20#include <QPointer>
21#include <QRectF>
22#include <QWidget>
23
24class MapCanvas;
25class SWMMModelLayer;
26
27namespace openswmmvis::ui {
28
29class OverviewMapWidget : public QWidget
30{
31 Q_OBJECT
32public:
33 explicit OverviewMapWidget(QWidget *parent = nullptr);
34 void setCanvas(MapCanvas *canvas);
35 void setModelLayer(SWMMModelLayer *layer);
36
37 void refresh();
38
39signals:
40 void requestCenterAt(const QPointF &mapPt);
41 void requestPanTo(const QRectF &mapRect);
42
43protected:
44 void paintEvent(QPaintEvent *e) override;
45 void mousePressEvent(QMouseEvent *e) override;
46 void mouseMoveEvent(QMouseEvent *e) override;
47 void mouseReleaseEvent(QMouseEvent *e) override;
48
49private:
50 QPointF widgetToMap(const QPoint &px) const;
51
52 QPointer<MapCanvas> m_canvas;
53 QPointer<SWMMModelLayer> m_modelLayer;
54 QRectF m_modelExtent;
55 QVector<QPointF> m_nodeCoords; // map space
56 QVector<QPair<QPointF, QPointF>> m_linkLines; // map space
57
58 bool m_dragging = false;
59 QPoint m_dragStart;
60};
61
62class OverviewMapPanel : public QDockWidget
63{
64 Q_OBJECT
65public:
66 explicit OverviewMapPanel(QWidget *parent = nullptr);
67 OverviewMapWidget *widget() const { return m_widget; }
68
69private:
70 OverviewMapWidget *m_widget = nullptr;
71};
72
73} // namespace openswmmvis::ui
74
75#endif // OPENSWMMVIS_UI_PANELS_OVERVIEWMAPPANEL_H
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 overviewmappanel.h:63
OverviewMapWidget * widget() const
Definition overviewmappanel.h:67
Definition overviewmappanel.h:30
void mouseMoveEvent(QMouseEvent *e) override
Definition overviewmappanel.cpp:117
void setModelLayer(SWMMModelLayer *layer)
Definition overviewmappanel.cpp:35
void requestCenterAt(const QPointF &mapPt)
void requestPanTo(const QRectF &mapRect)
void setCanvas(MapCanvas *canvas)
Definition overviewmappanel.cpp:29
void refresh()
Re-sample model geometry + repaint.
Definition overviewmappanel.cpp:41
void paintEvent(QPaintEvent *e) override
Definition overviewmappanel.cpp:68
void mousePressEvent(QMouseEvent *e) override
Definition overviewmappanel.cpp:108
void mouseReleaseEvent(QMouseEvent *e) override
Definition overviewmappanel.cpp:124
int e
Definition inpmeshreader.cpp:41
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176