![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
The single seam every layer paint path goes through. More...
#include "render/featureref.h"#include "render/legendsymbolitem.h"#include "render/symbolstyle.h"#include <QColor>#include <QJsonObject>#include <QList>#include <QString>#include <QVariantMap>#include <memory>Go to the source code of this file.
Classes | |
| class | OpenSWMM::Render::IFeatureRenderer |
| Abstract interface — every vector layer's paint path goes here. More... | |
Namespaces | |
| namespace | OpenSWMM |
| namespace | OpenSWMM::Render |
Enumerations | |
| enum class | OpenSWMM::Render::ClassEditKind { OpenSWMM::Render::Color , OpenSWMM::Render::Size , OpenSWMM::Render::Width , OpenSWMM::Render::Symbol } |
| Categories of per-class mutation that a renderer may support. More... | |
The single seam every layer paint path goes through.
IFeatureRenderer is the load-bearing abstraction introduced by
GUI_IMPLEMENTATION_PLAN.md §J.2. Every vector / point / line /
polygon layer owns one IFeatureRenderer and asks it
`symbolFor(feature, attrs)` to obtain the SymbolStyle to paint.
Concrete renderers (sub-phase 8.13.6.2):
- SingleSymbolRenderer — one SymbolStyle for all features.
- GraduatedRenderer — classify a numeric attribute into bins.
- CategorizedRenderer — distinct symbol per unique enum value.
- RuleBasedRenderer — first-match rule list with expressions.
The legend pipeline (§J.5) walks `legendSymbolItems()` to build
a legend that is structurally guaranteed to match what the map
draws — there is no second code path for "what does this layer
look like".
JSON round-trip (`toJson` / `fromJson`) is mandatory so styles
survive `.oswp` save/load and `.swmm-style.json` import/export
(Slice BB Phase 8.6.13).
`clone()` returns a deep copy so layers can hand out renderer
snapshots to map presets (Slice CJ.2) without aliasing.
Sub-phase 8.13.6.1 — interface + types only. No concrete
renderers, no Layer integration, no paint-loop refactor. Those
arrive in subsequent sub-phases under the same Phase 8.13.6.