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
unitsystem.h
Go to the documentation of this file.
1
7#ifndef UNITSYSTEM_H
8#define UNITSYSTEM_H
9
10#include <QObject>
11#include <QString>
12
13#include <openswmm/legacy/engine/openswmm_solver.h>
14#include <openswmm/engine/openswmm_model.h>
15
27class UnitSystem : public QObject
28{
29 Q_OBJECT
30
31public:
32 explicit UnitSystem(QObject *parent = nullptr);
33
34 // ---- Delegating facade ---------------------------------------------------
35
37 static UnitSystem *instance();
38
40 static void setActiveProject(UnitSystem *units);
41
43 static UnitSystem *activeProject();
44
45 // ---- Per-project state ---------------------------------------------------
46
47 swmm_FlowUnitsProperty flowUnits() const;
48
50 void syncFromEngine(SWMM_Engine engine);
51
53 void setFlowUnits(swmm_FlowUnitsProperty units, SWMM_Engine engine = nullptr);
54
55 bool isSI() const;
56 QString flowUnitLabel() const; // "CFS", "CMS", …
57 QString lengthLabel() const; // "ft" or "m"
58 QString depthLabel() const; // "ft" or "m"
59 QString velocityLabel() const; // "ft/s" or "m/s"
60 QString areaLabel() const; // "ac" or "ha"
61 QString volumeLabel() const; // "ft³" or "m³"
62
63signals:
64 void unitsChanged(swmm_FlowUnitsProperty newUnits);
65
66private:
67 swmm_FlowUnitsProperty mFlowUnits = swmm_CFS;
68};
69
70#endif // UNITSYSTEM_H
Per-project flow-units state + label helpers.
Definition unitsystem.h:28
void unitsChanged(swmm_FlowUnitsProperty newUnits)
QString depthLabel() const
Definition unitsystem.cpp:157
static UnitSystem * activeProject()
Definition unitsystem.cpp:66
static void setActiveProject(UnitSystem *units)
Definition unitsystem.cpp:39
QString flowUnitLabel() const
Definition unitsystem.cpp:138
QString lengthLabel() const
Definition unitsystem.cpp:152
bool isSI() const
Definition unitsystem.cpp:132
QString volumeLabel() const
Definition unitsystem.cpp:172
QString velocityLabel() const
Definition unitsystem.cpp:162
QString areaLabel() const
Definition unitsystem.cpp:167
swmm_FlowUnitsProperty flowUnits() const
Definition unitsystem.cpp:76
void syncFromEngine(SWMM_Engine engine)
Definition unitsystem.cpp:83
void setFlowUnits(swmm_FlowUnitsProperty units, SWMM_Engine engine=nullptr)
Definition unitsystem.cpp:110
static UnitSystem * instance()
Definition unitsystem.cpp:29
void * SWMM_Engine
Definition objectdefaultsapplier.h:19
QVector< int > parent
union-find
Definition pslgminsize.cpp:176