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
profileresultsources.h
Go to the documentation of this file.
1
6#ifndef PROFILE_RESULT_SOURCES_H
7#define PROFILE_RESULT_SOURCES_H
8
12#include "map/mapcanvas.h"
14
15#include <QList>
16#include <QSet>
17
18namespace openswmmvis::ui {
19
20inline QList<SWMMResultsLayer *> profileResultSources(AnimationController *anim,
21 SWMMVisProjectWindow *projectWindow,
22 MapCanvas *canvas = nullptr)
23{
24 QList<SWMMResultsLayer *> result;
25 QSet<SWMMResultsLayer *> seen;
26
27 auto add = [&result, &seen](SWMMResultsLayer *layer) {
28 if (!layer || seen.contains(layer)) return;
29 seen.insert(layer);
30 result.append(layer);
31 };
32
33 if (anim) {
34 for (SWMMResultsLayer *layer : anim->allLayers())
35 add(layer);
36 }
37
38 if (projectWindow)
39 add(projectWindow->activeResultsLayer());
40
41 MapCanvas *sourceCanvas = canvas;
42 if (!sourceCanvas && projectWindow)
43 sourceCanvas = projectWindow->canvas();
44
45 if (sourceCanvas) {
46 for (OpenSWMMVisLayer *layer : sourceCanvas->layers())
47 add(qobject_cast<SWMMResultsLayer *>(layer));
48 }
49
50 return result;
51}
52
53} // namespace openswmmvis::ui
54
55#endif // PROFILE_RESULT_SOURCES_H
Slice BA — Animation Controller for time-stepped result playback.
Central coordinator for result-layer time-stepping and playback.
Definition animationcontroller.h:43
QList< SWMMResultsLayer * > allLayers() const
Definition animationcontroller.cpp:273
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
const QList< OpenSWMMVisLayer * > & layers() const
Definition mapcanvas.cpp:535
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:116
Overlays time-stepped simulation results on the SWMM network geometry.
Definition swmmresultslayer.h:96
MDI sub-window owning a MapCanvas, SWMMModelLayer, and map tools.
Definition swmmvisprojectwindow.h:58
SWMMResultsLayer * activeResultsLayer() const
Definition swmmvisprojectwindow.cpp:2087
MapCanvas * canvas() const
Definition swmmvisprojectwindow.cpp:548
Central map display — QGIS-style hybrid rendering.
Definition openswmmvislayer.h:43
QList< SWMMResultsLayer * > profileResultSources(AnimationController *anim, SWMMVisProjectWindow *projectWindow, MapCanvas *canvas=nullptr)
Definition profileresultsources.h:20
Abstract base class for all map layers displayed in the MapCanvas.
Layer that colour-maps SWMM simulation output over the network geometry for interactive time-stepped ...