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

Toggleable visual aspect of an output layer. More...

#include "render/legendsymbolitem.h"
#include <QDateTime>
#include <QList>
#include <QMatrix4x4>
#include <QObject>
#include <QRectF>
#include <QString>
Include dependency graph for isublayer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenSWMM::Render::SublayerContext
 Per-frame parameters handed to ISublayer::buildOrUpdateNode(). More...
 
class  OpenSWMM::Render::ISublayer
 One toggleable visual aspect of a results / model layer. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Detailed Description

Toggleable visual aspect of an output layer.

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
    Plan reference: RENDERING_OUTPUT_SUBLAYERS_PLAN.md §3.

    An ISublayer is one paint pass with its own visibility, opacity,
    style bag, legend contribution, and (importantly) a self-declared
    isDynamic() flag that tells AnimationController whether to
    invalidate this sublayer on time-step changes.

    Each output layer (SWMMResultsLayer, SWMM2DResultsLayer, …) owns
    an ordered list of ISublayers; paint order = list order
    (bottom-up). The user can re-order via the layer-tree dock
    (Slice S3) and toggle individual sublayers via the third tier
    of LayerTreeModel.

    The sublayer model refines the IFeatureRenderer abstraction
    (§J.2). A SingleSymbolRenderer produces a one-or-two-sublayer
    default mix (marker + line); a GraduatedRenderer adds a
    ColorRamp sublayer on top. Existing renderer code keeps
    working — it just produces sublayers under the hood instead of
    monolithic paint passes.

    Style bags (style()) are QObjects with Q_PROPERTYs so the
    existing QPropertyModel-backed editor stack drives the UI
    (today: the unified LayerStyleDialog; the original Slice S3
    SublayerStyleDialog was retired).

    Cross-slice: Slice S1 (interface only). Concrete sublayers
    (ConduitLineSublayer, NodeMarkerSublayer, DepthColorRampSublayer,
    IsolineSublayer, ContourBandSublayer, VelocityVectorSublayer)
    land in S2 / S5.