18#include <QPainterPath>
25 QString
field = QStringLiteral(
"ratio"),
transform = QStringLiteral(
"linear");
38 QJsonObject
toJson()
const;
57 QJsonObject
toJson()
const;
80 double taper()
const {
return m_taper; }
89 bool arrows()
const {
return m_arrows; }
121 QJsonObject
toJson()
const override;
126 void fromJson(
const QJsonObject &j)
override;
130 bool m_arrows =
true;
131 double m_minContribution = 0.001;
142QPainterPath
taperedPath(
const QVector<QPointF> &
input,
double startWidth,
double endWidth);
163 std::shared_ptr<Result>
result()
const {
return m_result; }
184 QList<OpenSWMM::Render::ISublayer *>
sublayers()
const override {
return m_parts; }
188 std::vector<std::unique_ptr<openswmmvis::ui::ILayerStyleSubject>>
styleSubjects()
override;
206 void paint(QPainter *
p,
const QVector<QPointF> &
nodes,
207 const QVector<QVector<QPointF>> &
links)
const;
215 double value(
bool node,
int index,
const QString &field)
const;
236 QList<OpenSWMM::Render::LegendSymbolItem>
legend(
bool node)
const;
247 bool *
node,
int *index)
const;
315 QVector<double> colorEdges(
bool node,
const Channel &channel)
const;
318 quint64 revision = 0;
319 QVector<double>
edges;
321 mutable ColorCache m_nodeColorCache, m_linkColorCache;
322 std::shared_ptr<Result> m_result;
324 QList<OpenSWMM::Render::ISublayer *> m_parts;
325 bool m_highlightNode =
true;
326 int m_highlight = -1;
348 QString
id()
const override;
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:27
Shared classification model: mode + binner + ramp + range + per-class overrides, with a revision stam...
Definition classificationscheme.h:63
Mixin interface for layers that expose a list of ISublayers.
Definition isublayerhost.h:67
One toggleable visual aspect of a results / model layer.
Definition isublayer.h:88
Kind
Coarse taxonomy of sublayer paint behaviours.
Definition isublayer.h:100
@ LineKind
Definition isublayer.h:102
Base class for per-sublayer style property bags.
Definition sublayerstyle.h:58
void styleChanged()
Emitted when any property changes.
void setDirty()
Emit styleChanged() immediately without tracking or comparing any state. Subclasses determine whether...
Definition sublayerstyle.h:109
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:133
void setVisible(bool visible)
Shows or hides this layer.
Definition openswmmvislayer.cpp:92
double opacity() const
Returns the layer opacity in the range [0.0, 1.0]. 0.0 = fully transparent; 1.0 = fully opaque.
Definition openswmmvislayer.cpp:101
void setOpacity(double opacity)
Sets the layer opacity. Values are clamped to [0.0, 1.0].
Definition openswmmvislayer.cpp:106
bool isVisible() const
Returns true when this layer should be drawn.
Definition openswmmvislayer.cpp:87
Top-level project container managing sessions, the SWMM model layer, and persistence paths for one SW...
Definition openswmmvisworkspace.h:42
Overlays time-stepped simulation results on the SWMM network geometry.
Definition swmmresultslayer.h:104
Represents a coordinate reference system backed by a GDAL OGRSpatialReference.
Definition spatialreferencesystem.h:29
Slice US.1 (UNIFIED_STYLING_AND_UI_CONSISTENCY_PLAN.md S1) — the shared classification value type emb...
Definition traceanalysislayer.h:150
QList< OpenSWMM::Render::LegendSymbolItem > legend(bool node) const
Build colour and size legend rows for one element type.
Definition traceanalysislayer.cpp:774
QJsonObject savedStyle() const
Definition traceanalysislayer.cpp:400
std::vector< std::unique_ptr< openswmmvis::ui::ILayerStyleSubject > > styleSubjects() override
Definition traceanalysislayer.cpp:456
void restoreStyle(const QJsonObject &j)
Definition traceanalysislayer.cpp:410
QVector< QColor > colors(bool node) const
Compute one colour per saved estimate using the selected colour channel.
Definition traceanalysislayer.cpp:589
double widthReference() const
Definition traceanalysislayer.h:257
void featurePicked(bool node, int index)
void paint(QPainter *p, const QVector< QPointF > &nodes, const QVector< QVector< QPointF > > &links) const
Definition traceanalysislayer.cpp:638
QPair< double, double > range(bool node, const Channel &c) const
Find numeric scaling bounds over contributing finite values.
Definition traceanalysislayer.cpp:543
double normalized(bool node, int index, const Channel &c) const
Map a raw metric into channel position.
Definition traceanalysislayer.cpp:561
void populateScene(QGraphicsScene *scene, const MapExtent &, const SpatialReferenceSystem *canvas) override
Definition traceanalysislayer.cpp:463
bool contributes(bool node, int index) const
Definition traceanalysislayer.cpp:426
QString sourceDescription() const override
Definition traceanalysislayer.cpp:422
QList< OpenSWMM::Render::ISublayer * > sublayers() const override
Definition traceanalysislayer.h:184
void setResult(std::shared_ptr< Result > result)
Definition traceanalysislayer.cpp:439
TraceStyle * traceStyle() const
Definition traceanalysislayer.h:180
bool hitTest(QPointF pixel, const QTransform &mapToPixel, const SpatialReferenceSystem *canvas, bool *node, int *index) const
Pick visible contributing nodes before links using display-size pixel geometry.
Definition traceanalysislayer.cpp:847
QString labelText(bool node, int index) const
Format one enabled node/link label from saved values.
Definition traceanalysislayer.cpp:609
std::shared_ptr< Result > result() const
Definition traceanalysislayer.h:163
QVector< double > linkWidths() const
Definition traceanalysislayer.cpp:926
QVector< double > nodeSizes() const
Definition traceanalysislayer.cpp:941
void highlight(bool node, int index)
Definition traceanalysislayer.cpp:993
Definition traceanalysislayer.h:65
Channel linkColor
Definition traceanalysislayer.h:75
void setArrows(bool v)
Definition traceanalysislayer.cpp:255
TraceLabels nodeLabels
Definition traceanalysislayer.h:76
bool labels
Definition traceanalysislayer.h:68
bool arrows() const
Definition traceanalysislayer.h:89
void setTaper(double v)
Definition traceanalysislayer.cpp:247
void setLabels(bool v)
Definition traceanalysislayer.cpp:270
QJsonObject toJson() const override
Definition traceanalysislayer.cpp:277
double taper() const
Definition traceanalysislayer.h:80
Channel nodeSize
Definition traceanalysislayer.h:75
Channel nodeColor
Definition traceanalysislayer.h:75
void changed()
Announce direct public channel/label edits through SublayerStyle::setDirty(); no validation or source...
Definition traceanalysislayer.h:117
bool labels() const
Definition traceanalysislayer.h:108
TraceLabels linkLabels
Definition traceanalysislayer.h:76
double minContribution() const
Elements carrying less than this fraction of the seed's flow are hidden and unlabelled.
Definition traceanalysislayer.h:99
Channel linkWidth
Definition traceanalysislayer.h:75
bool arrows
Definition traceanalysislayer.h:67
void fromJson(const QJsonObject &j) override
Definition traceanalysislayer.cpp:291
void setMinContribution(double v)
Definition traceanalysislayer.cpp:262
Definition traceanalysislayer.h:331
qreal opacity() const override
Definition traceanalysislayer.h:365
Kind kind() const override
Definition traceanalysislayer.h:344
QSGNode * buildOrUpdateNode(QSGNode *, const OpenSWMM::Render::SublayerContext &) override
Decline Qt Quick scene-node rendering for this painter-based analysis.
Definition traceanalysislayer.h:387
QList< OpenSWMM::Render::LegendSymbolItem > legendSymbolItems() const override
Definition traceanalysislayer.cpp:982
QString id() const override
Definition traceanalysislayer.cpp:967
void setVisible(bool v) override
Definition traceanalysislayer.h:361
TraceAnalysisLayer * layer() const
Definition traceanalysislayer.h:394
bool travel() const
Definition traceanalysislayer.h:398
bool isVisible() const override
Definition traceanalysislayer.h:356
OpenSWMM::Render::SublayerStyle * style() override
Definition traceanalysislayer.h:378
void setOpacity(qreal v) override
Definition traceanalysislayer.h:370
bool isDynamic() const override
Definition traceanalysislayer.h:374
QString displayName() const override
Definition traceanalysislayer.cpp:971
QGraphicsScene * scene
Definition inletdrawingview.cpp:91
Mixin interface for layers that own a list of ISublayers.
Shared label-configuration value-type used by every layer that paints text labels.
ArrowPlacement p
Definition linesymbollayer.cpp:29
int w
Definition mesh2dresultsexport.cpp:477
std::vector< int > owner
containing cell per pixel (-1 = outside)
Definition mesh2dresultsexport.cpp:766
Definition traceanalysislayer.h:22
QPainterPath taperedPath(const QVector< QPointF > &input, double startWidth, double endWidth)
Build a filled pixel-space ribbon with segment quads and round join disks.
Definition traceanalysislayer.cpp:310
QString fieldLabel(const QString &f, bool node=false)
Definition traceanalysislayer.cpp:341
std::vector< Edge > edges
Definition constraintaudit.cpp:192
Abstract base class for all map layers displayed in the MapCanvas.
QString node
Definition raingageassignment.cpp:301
double value
Definition rasterfluxintegration.cpp:27
QVector< double > samples
Definition resultscalarsublayer.cpp:29
std::ifstream input
Definition smsio.cpp:21
Per-layer label rendering parameters.
Definition labelconfig.h:50
bool enabled
Definition labelconfig.h:52
Per-frame parameters handed to ISublayer::buildOrUpdateNode().
Definition isublayer.h:74
Definition traceanalysislayer.h:24
OpenSWMM::Render::ClassificationScheme colors
Definition traceanalysislayer.h:29
double minimumSize
Definition traceanalysislayer.h:27
static Channel fromJson(const QJsonObject &j)
Definition traceanalysislayer.cpp:196
double maximum
Definition traceanalysislayer.h:27
double maximumSize
Definition traceanalysislayer.h:27
double minimum
Definition traceanalysislayer.h:27
Channel()
Initialize an independent visual channel with a continuous colour scheme and ratio/linear/automatic d...
Definition traceanalysislayer.cpp:180
QString transform
Definition traceanalysislayer.h:25
QString field
Definition traceanalysislayer.h:25
QJsonObject toJson() const
Definition traceanalysislayer.cpp:184
bool proportional
Definition traceanalysislayer.h:28
bool automatic
Definition traceanalysislayer.h:26
Definition traceanalysislayer.h:45
QJsonObject toJson() const
Definition traceanalysislayer.cpp:230
bool percent
Definition traceanalysislayer.h:47
int precision
Definition traceanalysislayer.h:48
TraceLabels()
Initialize ratio labels with a halo, two decimal digits and percent/ID formatting enabled.
Definition traceanalysislayer.cpp:225
static TraceLabels fromJson(const QJsonObject &j)
Definition traceanalysislayer.cpp:237
OpenSWMM::Render::LabelConfig appearance
Definition traceanalysislayer.h:46
bool showId
Definition traceanalysislayer.h:47
double c
Definition terrainerrorfield.cpp:42
QVector< QPointF > nodes
Definition traceanalysislayer.cpp:163
QVector< QVector< QPointF > > links
Definition traceanalysislayer.cpp:164
Value types for flow balance and travel-time analysis results.