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
tracedata.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
2
12#pragma once
13#include <QJsonObject>
14#include <QPointF>
15#include <QString>
16#include <QVector>
17#include <memory>
18#include <openswmm/engine/openswmm_trace.h>
19
20class SWMMModelLayer;
21namespace openswmmvis::trace
22{
23struct Node {
24 QString id;
25 int type = 0, flags = 0;
26 QPointF point;
27 bool hasGeometry = false;
28};
29struct Link {
30 QString id;
31 int from = -1, to = -1, type = 0;
32 double length = 0;
33 QVector<QPointF> points;
34};
35struct Snapshot {
36 QVector<Node> nodes;
37 QVector<Link> links;
43 QJsonObject toJson() const;
49 static Snapshot fromJson(const QJsonObject &j);
57 static Snapshot capture(SWMMModelLayer *model, QString *error);
64 bool valid(QString *error = nullptr) const;
65};
66struct Dataset {
69 QString provenance =
70 QStringLiteral("User-supplied model pairing; original topology unverified");
71 SWMM_TraceOptions options{};
72 SWMM_TraceInfo info{};
73 bool partial = false;
74 QVector<SWMM_TraceNodeAverage> nodes;
75 QVector<SWMM_TraceLinkAverage> links;
79 Dataset() { swmm_trace_default_options(&options); }
80};
81struct Result {
82 std::shared_ptr<const Dataset> dataset;
83 QString id;
84 int seed = 0, direction = 0;
85 bool saved = false;
86 QVector<SWMM_TraceValue> nodes, links;
87 SWMM_TraceSummary summary{};
88 QJsonObject style;
93 QString title() const;
94};
100QString statusText(int flags);
106QJsonObject infoJson(const SWMM_TraceInfo &i);
112SWMM_TraceInfo infoFromJson(const QJsonObject &j);
118QJsonObject optionsJson(const SWMM_TraceOptions &o);
124SWMM_TraceOptions optionsFromJson(const QJsonObject &j);
130QJsonObject summaryJson(const SWMM_TraceSummary &s);
136SWMM_TraceSummary summaryFromJson(const QJsonObject &j);
144SWMM_Trace createHandle(const Snapshot &s, const SWMM_TraceOptions &o, QString *error);
145} // namespace openswmmvis::trace
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:137
size_t i
Definition contourjob.cpp:30
ModelFacade * model
Definition extensionmodelaccess.cpp:625
double s
Scene px per model length unit.
Definition inletdrawingview.cpp:95
Definition traceanalysislayer.h:22
SWMM_Trace createHandle(const Snapshot &s, const SWMM_TraceOptions &o, QString *error)
Create native trace topology/options on the calling thread.
Definition tracedata.cpp:212
QJsonObject infoJson(const SWMM_TraceInfo &i)
Encode trace source/algorithm coverage metadata.
Definition tracedata.cpp:129
QString statusText(int flags)
Format trace availability/approximation flags for display and persisted diagnostics.
Definition tracedata.cpp:110
QJsonObject optionsJson(const SWMM_TraceOptions &o)
Encode trace numerical thresholds for package provenance.
Definition tracedata.cpp:150
SWMM_TraceInfo infoFromJson(const QJsonObject &j)
Decode trace coverage metadata without schema validation.
Definition tracedata.cpp:137
QJsonObject summaryJson(const SWMM_TraceSummary &s)
Encode terminal fractions and SI trace-budget diagnostics.
Definition tracedata.cpp:169
SWMM_TraceSummary summaryFromJson(const QJsonObject &j)
Decode persisted trace-budget diagnostics.
Definition tracedata.cpp:190
SWMM_TraceOptions optionsFromJson(const QJsonObject &j)
Overlay saved numerical options onto native defaults.
Definition tracedata.cpp:158
Definition tracedata.h:66
Snapshot snapshot
Definition tracedata.h:67
bool partial
Built from an incomplete output; never reused.
Definition tracedata.h:73
QString packagePath
Definition tracedata.h:68
QString provenance
Definition tracedata.h:69
SWMM_TraceInfo info
Definition tracedata.h:72
QVector< SWMM_TraceLinkAverage > links
Definition tracedata.h:75
QString sourceId
Definition tracedata.h:68
Dataset()
Create empty value storage with native trace default numerical options.
Definition tracedata.h:79
QVector< SWMM_TraceNodeAverage > nodes
Definition tracedata.h:74
QString outputPath
Definition tracedata.h:68
QString label
Definition tracedata.h:68
SWMM_TraceOptions options
Definition tracedata.h:71
QString runId
Definition tracedata.h:68
QString fingerprint
Definition tracedata.h:68
Definition tracedata.h:23
bool hasGeometry
Definition tracedata.h:27
int type
Definition tracedata.h:25
int flags
Definition tracedata.h:25
QString id
Definition tracedata.h:24
QPointF point
Definition tracedata.h:26
Definition tracedata.h:81
QVector< SWMM_TraceValue > links
Definition tracedata.h:86
QJsonObject style
Definition tracedata.h:88
QString title() const
Describe source label, direction, and seed identity.
Definition tracedata.cpp:101
int seed
Definition tracedata.h:84
bool saved
Definition tracedata.h:85
std::shared_ptr< const Dataset > dataset
Definition tracedata.h:82
QVector< SWMM_TraceValue > nodes
Definition tracedata.h:86
SWMM_TraceSummary summary
Definition tracedata.h:87
QString id
Definition tracedata.h:83
int direction
Definition tracedata.h:84
Definition tracedata.h:35
QString modelFingerprint
Definition tracedata.h:38
QVector< Node > nodes
Definition tracedata.h:36
static Snapshot capture(SWMMModelLayer *model, QString *error)
Copy editing-model topology/geometry and classify unresolved exchange/loss flags.
Definition tracesnapshot.cpp:25
QVector< Link > links
Definition tracedata.h:37
QJsonObject toJson() const
Copy topology/geometry and model fingerprint into a JSON value.
Definition tracedata.cpp:22
bool valid(QString *error=nullptr) const
Validate supported node identity/type, link connectivity/length, and supplied geometry.
Definition tracedata.cpp:71
QString wkt
Definition tracedata.h:38
static Snapshot fromJson(const QJsonObject &j)
Decode saved topology using Qt default conversions.
Definition tracedata.cpp:45
double error
Definition terrainerrorfield.cpp:42