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

Slice BC's longitudinal section renderer. More...

#include "plot/profilebuilder.h"
#include "plot/profileplotoptions.h"
#include <QBrush>
#include <QColor>
#include <QDateTime>
#include <QPen>
#include <QPointer>
#include <QSet>
#include <QString>
#include <QVector>
#include <QWidget>
#include <limits>
#include <memory>
#include <optional>
Include dependency graph for profileplotwidget.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ProfilePlotWidget
 
struct  ProfilePlotWidget::SeriesBinding
 One elevation-axis curve to render: a (results-layer × output kind) pair with resolved style and pre-computed data. More...
 
struct  ProfilePlotWidget::LayerToggles
 Label / terrain / orientation switches and per-output user preferences (currentHglLine, currentHglFill, maxHglBand, etc.). More...
 
struct  ProfilePlotWidget::Surface2DSample
 One station of the 2D inundation overlay: the active 2D results layer's water surface sampled where the path crosses the mesh. chainage is REAL path chainage (converted to virtual x when painting, like terrain samples). bed is the mesh bed elevation at the station; wse is bed + interpolated depth, or NaN when the station is dry / off-mesh / has no data (a gap). More...
 

Detailed Description

Slice BC's longitudinal section renderer.

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
    Paints a SWMM/EPA-style profile view from a `PathStatic` plus
    one or more `SeriesBinding`s.  Rendering layers (z-order, low to
    high):

      1. Soil fill — translucent earth tone between the ground line
         (`invertElev + maxDepth` per node) and the conduit crown,
         including the manhole shaft at each connecting node.
      2. Conduit segments — per-link upstream/downstream invert +
         crown lines, with offset1/offset2 honored at each end.
         Non-conduit links (pump / weir / orifice / outlet) render
         as labelled glyphs spanning the gap.
      3. Connecting-node glyphs — per-node vertical bar from invert
         to rim, with node ID labelled.  Junction/Outfall/Storage/
         Divider get distinct symbols.
      4. Max-HGL / Max-EGL envelopes — invert→max fill (always
         from the link/node invert up to the peak), one fill per
         source, toggled independently by `LayerToggles::maxHglBand`
         (for the fill) and `maxHglLine` / `maxEglLine`
         (for the outline).
      5. Current HGL / EGL lines — animated, driven by
         `setCurrentPeriod()`.  EGL is dashed.

    Coordinates: x = chainage along path (in model units); y =
    elevation (in model units).  Pixel mapping is recomputed on
    `resizeEvent` to keep the data extent visible with a fixed
    margin.  Plain `QWidget` + `QPainter` — no QGraphicsScene —
    since the view is chart-like, not map-like.