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

Y2b-1 (amendment D-Y4) — one plottable result, fixed or species. More...

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

Go to the source code of this file.

Classes

struct  openswmmvis::plot::ResultDescriptor
 One plottable result: a fixed attribute OR a species by name. More...
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::plot
 

Detailed Description

Y2b-1 (amendment D-Y4) — one plottable result, fixed or species.

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

The plot surface's PlotAttribute is a closed enum: it cannot say "TSS at this node" because a run's species list is only known once its .out is open, and D-G1 forbids extending the enum by POLLUT_BASE + index (a saved integer would silently repoint when a model edit reorders species). A ResultDescriptor is the union the pickers need: either a fixed attribute (every existing enumerator, unchanged) or a species carried BY NAME — the same name-keyed identity Y2a gave map theming (speciesattributes.h).

Y2b-1 is plumbing only: IRunLayer::resultDescriptorsForKind serves the list (fixed set for every layer; fixed + this run's species for a .out-backed layer). Pickers consume it in Y2b-2; tabular/statistics and .oswp persistence follow in Y2b-3.

The list builder (resultDescriptorsForKind) is INLINE in irunlayer.h: IRunLayer's virtual defaults call it, and IRunLayer is a header-only interface — hundreds of tests stub it without linking any plot TU. Only the label/unit authorities live in resultdescriptor.cpp (they pull in the Y2a species helpers).