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

Sister interface to IFeatureRenderer for single-band raster layers. More...

#include "render/legendsymbolitem.h"
#include <QColor>
#include <QJsonObject>
#include <QList>
#include <QString>
#include <memory>
Include dependency graph for irasterrenderer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OpenSWMM::Render::IRasterRenderer
 Abstract interface — every raster layer's paint path goes here. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Detailed Description

Sister interface to IFeatureRenderer for single-band raster layers.

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
    Where IFeatureRenderer maps a (feature, attrs) pair to a
    SymbolStyle, IRasterRenderer maps a raw pixel value to a
    display QColor.  The narrower domain (single scalar in / one
    RGBA colour out) means a much smaller surface than the feature
    interface: there is no per-feature attribute map, no symbol
    layer stack, no scale-range gate.

    Concrete renderers planned by GUI_IMPLEMENTATION_PLAN.md §J.2
    (sub-phase 8.13.6.7):
      - SingleBandPseudoColorRenderer — interpolated stops + clamp policy
      - SingleBandGrayRenderer        — min→black, max→white, optional invert
      - PalettedRenderer              — discrete byte-value → colour table
      - HillshadeRenderer             — light-direction-shaded relief
      - MultiBandColorRenderer        — RGB(A) bypass, no ramp

    Sub-phase 8.13.6.7 ships the interface + SingleBandPseudoColorRenderer
    stub only; the remaining concrete renderers arrive in later slices
    when their corresponding UI is implemented.

    Legend pipeline alignment: legendSymbolItems() returns the same
    LegendSymbolItem type used by IFeatureRenderer so the legend dock
    can render mixed-layer compositions through a single code path
    (§J.5 legend-from-renderer rule).

    JSON round-trip (toJson / fromJson) is mandatory for .oswp
    save/load and .swmm-style.json import/export (Slice BB Phase
    8.6.13).  clone() returns a deep copy for map preset capture
    (Slice CJ.2) without aliasing the live renderer.