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
meshregiondefaultswidget.h
Go to the documentation of this file.
1
37#ifndef MESHREGIONDEFAULTSWIDGET_H
38#define MESHREGIONDEFAULTSWIDGET_H
39
40#include "mesh/meshinfil.h"
41
42#include <QString>
43#include <QStringList>
44#include <QVector>
45#include <QWidget>
46#include <QtNumeric>
47
48class QTableWidget;
49class QTableWidgetItem;
50
51class MeshRegionDefaultsWidget : public QWidget
52{
53 Q_OBJECT
54
55public:
61 struct RegionRow
62 {
63 QString tag;
64 double manningsN = qQNaN();
65 double initDepth = qQNaN();
67 };
68
69 explicit MeshRegionDefaultsWidget(QWidget *parent = nullptr);
70
72 void setDepthUnit(const QString &unit);
73
76 void setStarHydraulics(double manningsN, double initDepth);
77
80 void setRegionTags(const QStringList &tags);
81
83 [[nodiscard]] QVector<RegionRow> rows() const;
84
87 [[nodiscard]] QVector<mesh::InfilDefaultRow> infilDefaults() const;
88
91 [[nodiscard]] bool validate(QString *errOut) const;
92
93private slots:
94 void onItemChanged(QTableWidgetItem *item);
95 void onCurrentCellChanged(int row, int column, int prevRow, int prevColumn);
96
97private:
98 void appendRow(const RegionRow &values);
101 void applyMethodMask(int row);
102 void renderHydraulicCell(int row, int column);
103 void renderParamCell(int row, int slot);
105 void refreshParamHeaders(int row);
106
107 [[nodiscard]] mesh::InfilMethod methodAt(int row) const;
108 [[nodiscard]] RegionRow rowAt(int row) const;
109 [[nodiscard]] QString rowLabel(int row) const;
110
111 QTableWidget *m_table = nullptr;
112 double m_starMannings = 0.035;
113 double m_starDepth = 0.0;
116 bool m_updating = false;
117};
118
119#endif // MESHREGIONDEFAULTSWIDGET_H
Unit unit
Definition aquifereditordialog.cpp:57
Definition meshregiondefaultswidget.h:52
QVector< mesh::InfilDefaultRow > infilDefaults() const
Definition meshregiondefaultswidget.cpp:560
void setRegionTags(const QStringList &tags)
Definition meshregiondefaultswidget.cpp:266
QVector< RegionRow > rows() const
Definition meshregiondefaultswidget.cpp:551
void setStarHydraulics(double manningsN, double initDepth)
Definition meshregiondefaultswidget.cpp:248
bool validate(QString *errOut) const
Definition meshregiondefaultswidget.cpp:585
void setDepthUnit(const QString &unit)
Definition meshregiondefaultswidget.cpp:241
Per-cell 2D infiltration: value types, tag/override resolution and method↔parameter masks.
InfilMethod
Definition meshinfil.h:61
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
One table row, as collectInputs() reads it back.
Definition meshregiondefaultswidget.h:62
double manningsN
Definition meshregiondefaultswidget.h:64
mesh::InfilRow infil
Definition meshregiondefaultswidget.h:66
double initDepth
Definition meshregiondefaultswidget.h:65
QString tag
Definition meshregiondefaultswidget.h:63
One infiltration specification: method + positional parameters + destination.
Definition meshinfil.h:98