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

Cross-feature paint order (Symbol Levels) — Slice Z.11. More...

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

Go to the source code of this file.

Classes

struct  OpenSWMM::Render::PaintStep
 One entry in the paint sequence computed by computeSymbolLevelOrder. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Functions

int OpenSWMM::Render::symbolLayerLevel (const SymbolLayer &layer)
 
void OpenSWMM::Render::setSymbolLayerLevel (SymbolLayer &layer, int level)
 
bool OpenSWMM::Render::operator== (const PaintStep &a, const PaintStep &b)
 
QVector< PaintStepOpenSWMM::Render::computeSymbolLevelOrder (const QVector< SymbolStyle > &features, bool enabled)
 Compute the paint sequence for features under enabled Symbol Levels.
 

Variables

constexpr const char * OpenSWMM::Render::kSymbolLevelPropKey = "level"
 

Detailed Description

Cross-feature paint order (Symbol Levels) — Slice Z.11.

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
    QGIS-native feature. Without Symbol Levels, every feature is
    painted top-down before moving to the next; intersection
    seams in line networks look fragmented because each feature's
    outline paints over the previous feature's fill. With Symbol
    Levels enabled, the paint pass groups by (level, feature)
    instead of (feature, level) — all symbol layers at level 0
    paint across every feature first, then level 1, etc.

    The level is a per-SymbolLayer integer (canonical prop key
    `"level"`, default 0). The enable flag lives on Rule
    (`Rule::symbolLevelsEnabled` — added in Z.11).

    Slice Z.11 ships the data-side: the prop convention, the
    enable flag, and the paint-order helper. Integration with the
    actual layer paint loops is the named Z.11a follow-up — the
    existing renderers' paint paths consume the helper output as
    a sequence of (feature-index, symbol-layer-index) pairs.