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
profileattributetrackswidget.h File Reference

Attribute-tracks pane: N stacked mini-charts ("tracks"), one per selected result attribute, sharing the profile plot's x-axis. More...

#include "plot/plotattribute.h"
#include "plot/profileattributesampler.h"
#include <QPen>
#include <QPointer>
#include <QString>
#include <QVector>
#include <QWidget>
#include <functional>
#include <memory>
Include dependency graph for profileattributetrackswidget.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ProfileAttributeTracksWidget
 
struct  ProfileAttributeTracksWidget::SourceProfile
 
struct  ProfileAttributeTracksWidget::Track
 

Detailed Description

Attribute-tracks pane: N stacked mini-charts ("tracks"), one per selected result attribute, sharing the profile plot's x-axis.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

Same technology as ProfilePlotWidget — plain QWidget + QPainter — because pixel-exact column alignment with the profile above is the whole point: the pane adopts the profile's left/right gutters and its virtual-chainage x quantity, and the two stay locked through zoom/pan via setVisibleXRange() / visibleXRangeChanged().

Data model: the host dialog pushes fully-resolved Tracks (title, pen, per-source sampled profiles). The widget owns no fetching, no layers, no attribute knowledge beyond node-vs-link rendering:

  • node attributes draw a polyline through the value at each node's virtual x;
  • link attributes draw one horizontal segment per link (a link's flow / velocity is a single value over its length — interpolating across nodes would invent data), with no vertical connectors.

Animation: setCurrentPeriod() indexes the pre-fetched arrays — nothing is fetched per frame (fetch-once / index-per-frame, the 2D-profile pattern).