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

Slice BL — model layer for the Comparison Plot Dialog. More...

#include "plot/irunlayer.h"
#include "plot/plotattribute.h"
#include "plot/seriesstyle.h"
#include <QObject>
#include <QString>
#include <QVector>
#include <memory>
Include dependency graph for comparisonplotmodel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::plot::RunSource
 One loaded run in the plot — a 1D .out, an observed CSV, or a 2D mesh layer. More...
 
struct  openswmmvis::plot::SeriesSpec
 One chart series — points at a RunSource via index and identifies what to read from it. More...
 
struct  openswmmvis::plot::AttributeRow
 Derived aggregation for one chart row. The model recomputes these whenever the spec list changes; views read them to lay out axes. More...
 
struct  openswmmvis::plot::ComparisonPair
 One user-configured 1v1 comparison: X-series vs Y-series (COMPARISON_PLOT_1V1_AND_TREE_PLAN Phase 5). Both series must target the same PlotAttribute (same chart row). When the pair list is empty the view falls back to auto pairing (baseline vs every other run, matched by objectRef). More...
 
class  openswmmvis::plot::ComparisonPlotModel
 Model layer for the Comparison Plot Dialog. More...
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::plot
 

Detailed Description

Slice BL — model layer for the Comparison Plot Dialog.

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

Holds three things:

  • A list of RunSource records (one per loaded run / observed dataset). One run is flagged isBaseline for the 1v1 scatter column.
  • A list of SeriesSpec records (one per chart series).
  • A cache of AttributeRow aggregations (one row per distinct PlotAttribute present in the spec list).

The model owns no chart widgets — it emits signals; the view subscribes. Series resolution is delegated to each RunSource's IRunLayer.

CF.3 amendment (2026-05-21): no model-level changes needed; the Mesh2DCell ObjectRef discriminator + Mesh2D* attributes were added to the underlying types directly, and SWMM2DResultsLayer implements IRunLayer to participate as a RunSource.