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
meshedgepropertyadapter.h
Go to the documentation of this file.
1
11#ifndef OPENSWMMVIS_UI_PROPERTIES_MESHEDGEPROPERTYADAPTER_H
12#define OPENSWMMVIS_UI_PROPERTIES_MESHEDGEPROPERTYADAPTER_H
13
14#include "mesh/meshbctype.h"
15
16#include <QObject>
17#include <QPointer>
18#include <QString>
19
20class SWMM2DMeshLayer;
21
22class MeshEdgePropertyAdapter : public QObject
23{
24 Q_OBJECT
25 Q_PROPERTY(int triIdx READ triIdx)
26 Q_PROPERTY(int edgeLocal READ edgeLocal)
27 Q_PROPERTY(bool isBoundary READ isBoundary)
28 Q_PROPERTY(double length READ length)
29 Q_PROPERTY(int bcType READ bcType WRITE setBCType NOTIFY changed)
30 Q_PROPERTY(double bcHead READ bcHead WRITE setBCHead NOTIFY changed)
31 Q_PROPERTY(double bcSlope READ bcSlope WRITE setBCSlope NOTIFY changed)
32 Q_PROPERTY(double bcFlow READ bcFlow WRITE setBCFlow NOTIFY changed)
33 Q_PROPERTY(QString bcTseries READ bcTseries WRITE setBCTseries NOTIFY changed)
34 Q_PROPERTY(QString bcCurve READ bcCurve WRITE setBCCurve NOTIFY changed)
35 Q_PROPERTY(QString bcGroup READ bcGroup WRITE setBCGroup NOTIFY changed)
36 Q_PROPERTY(double bcConveyance READ bcConveyance WRITE setBCConveyance NOTIFY changed)
37
38public:
40 QObject *parent = nullptr);
41
42 [[nodiscard]] int triIdx() const { return m_tri; }
43 [[nodiscard]] int edgeLocal() const { return m_e; }
44 [[nodiscard]] bool isBoundary() const;
45 [[nodiscard]] double length() const;
46 [[nodiscard]] int bcType() const;
47 [[nodiscard]] double bcHead() const;
48 [[nodiscard]] double bcSlope() const;
49 [[nodiscard]] double bcFlow() const;
50 [[nodiscard]] QString bcTseries() const;
51 [[nodiscard]] QString bcCurve() const;
52 [[nodiscard]] QString bcGroup() const;
53 [[nodiscard]] double bcConveyance() const;
54
55 Q_INVOKABLE QString displayLabelFor(const QString &property) const;
56
57public slots:
58 void setBCType(int newType);
59 void setBCHead(double v);
60 void setBCSlope(double v);
61 void setBCFlow(double v);
62 void setBCTseries(const QString &name);
63 void setBCCurve(const QString &name);
64 void setBCGroup(const QString &name);
65 void setBCConveyance(double v);
66 void refresh() { emit changed(); }
67
68signals:
69 void changed();
70
71private slots:
72 void onLayerAttributeChanged(const QString &refName);
73
74private:
78 template <typename F>
79 void mutate(F &&fn);
80
81 QPointer<SWMM2DMeshLayer> m_layer;
82 int m_tri = -1;
83 int m_e = -1;
84 QString m_refName;
85};
86
87#endif // OPENSWMMVIS_UI_PROPERTIES_MESHEDGEPROPERTYADAPTER_H
Definition meshedgepropertyadapter.h:23
void refresh()
Definition meshedgepropertyadapter.h:66
void setBCFlow(double v)
Definition meshedgepropertyadapter.cpp:100
int edgeLocal() const
Definition meshedgepropertyadapter.h:43
int triIdx
Definition meshedgepropertyadapter.h:25
QString bcTseries
Definition meshedgepropertyadapter.h:33
bool isBoundary
Definition meshedgepropertyadapter.h:27
int bcType
Definition meshedgepropertyadapter.h:29
void setBCCurve(const QString &name)
Definition meshedgepropertyadapter.cpp:110
double bcHead
Definition meshedgepropertyadapter.h:30
double bcFlow
Definition meshedgepropertyadapter.h:32
double bcConveyance
Definition meshedgepropertyadapter.h:36
void setBCTseries(const QString &name)
Definition meshedgepropertyadapter.cpp:105
int edgeLocal
Definition meshedgepropertyadapter.h:26
void setBCSlope(double v)
Definition meshedgepropertyadapter.cpp:95
void setBCHead(double v)
Definition meshedgepropertyadapter.cpp:90
QString bcCurve
Definition meshedgepropertyadapter.h:34
QString bcGroup
Definition meshedgepropertyadapter.h:35
void setBCType(int newType)
Definition meshedgepropertyadapter.cpp:83
void setBCConveyance(double v)
Definition meshedgepropertyadapter.cpp:120
double length
Definition meshedgepropertyadapter.h:28
double bcSlope
Definition meshedgepropertyadapter.h:31
Q_INVOKABLE QString displayLabelFor(const QString &property) const
Definition meshedgepropertyadapter.cpp:134
void setBCGroup(const QString &name)
Definition meshedgepropertyadapter.cpp:115
Definition swmm2dmeshlayer.h:64
QVector< int > v
pool vertex indices
Definition pslgminsize.cpp:159
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474