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

One paint pass in a compositional SymbolStyle stack. More...

#include <QJsonObject>
#include <QMap>
#include <QString>
#include <QVariantMap>
Include dependency graph for symbollayer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenSWMM::Render::SymbolLayer
 One paint pass in the SymbolStyle stack. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Enumerations

enum class  OpenSWMM::Render::SymbolLayerKind {
  OpenSWMM::Render::SimpleMarker ,
  OpenSWMM::Render::SimpleLine ,
  OpenSWMM::Render::SimpleFill ,
  OpenSWMM::Render::MarkerLine ,
  OpenSWMM::Render::HatchFill ,
  OpenSWMM::Render::PatternFill ,
  OpenSWMM::Render::SvgMarker ,
  OpenSWMM::Render::FontMarker ,
  OpenSWMM::Render::RasterColorRamp ,
  OpenSWMM::Render::Hillshade ,
  OpenSWMM::Render::Contour ,
  OpenSWMM::Render::MeshEdge ,
  OpenSWMM::Render::MeshNode ,
  OpenSWMM::Render::VectorGlyph
}
 The kind of paint pass this SymbolLayer represents. More...
 

Functions

QString OpenSWMM::Render::symbolLayerKindToString (SymbolLayerKind kind)
 Returns the JSON string token for a SymbolLayerKind.
 
SymbolLayerKind OpenSWMM::Render::symbolLayerKindFromString (const QString &s)
 Parses the JSON string token back into a SymbolLayerKind.
 

Detailed Description

One paint pass in a compositional SymbolStyle stack.

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
    A SymbolLayer is one "pass" of drawing for a feature — e.g. a
    simple-marker pass, a simple-line pass, a hatch-fill pass.
    Multiple SymbolLayers stack inside a SymbolStyle (bottom-up
    paint order) so users can build composite symbols (e.g. an outer
    ring + an inner ring + a centre cross marker for a double-ringed
    manhole) without inventing one-off symbol classes.

    Properties are stored as a QVariantMap to keep the type
    lightweight — concrete renderers know which keys their kind reads
    (a SimpleMarker layer expects "shape", "size", "color"; a
    SimpleLine layer expects "color", "width", "dashPattern"; etc.).

    dataDefinedOverrides maps property names to expression strings
    that, when evaluated against a feature's attributes, override
    the corresponding entry in props at paint time. The expression
    language is BI.2's LabelExpression DSL (deferred — sub-phase
    8.13.6.1 only persists the strings; evaluation lands later).

    Cross-slice: Slice BI Phase 8.13.6 (see GUI_IMPLEMENTATION_PLAN.md
    §J.3). Sub-phase 8.13.6.1 — interface + types only.