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

Q_PROPERTY view over a Rule's SingleSymbolRenderer (Slice B.6c). More...

#include "render/markershape.h"
#include <QColor>
#include <QFont>
#include <QObject>
#include <QtGlobal>
Include dependency graph for symbolstyleadapter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OpenSWMM::Render::SymbolStyleAdapter
 
class  OpenSWMM::Render::PointSymbolStyleAdapter
 Single-Symbol panel surface for point (marker) archetypes — Junctions / Outfalls / Storage / Dividers / RainGages on the SWMM model layer, and the equivalent point categories on the results layer. More...
 
class  OpenSWMM::Render::LineSymbolStyleAdapter
 Single-Symbol panel surface for line archetypes — Conduits / Pumps / Orifices / Weirs / Outlets on the SWMM model layer and the equivalent link categories on the results layer. More...
 
class  OpenSWMM::Render::RasterColorRampSymbolStyleAdapter
 Depth color-ramp surface — DepthColorRampStyle. More...
 
class  OpenSWMM::Render::HillshadeSymbolStyleAdapter
 Mesh-fill / hillshade surface — MeshFillStyle. More...
 
class  OpenSWMM::Render::ContourBandSymbolStyleAdapter
 Filled-isoband surface — ContourBandStyle. More...
 
class  OpenSWMM::Render::IsolineSymbolStyleAdapter
 Contour-line surface — IsolineStyle. More...
 
class  OpenSWMM::Render::MeshEdgeSymbolStyleAdapter
 Mesh-wireframe surface — MeshEdgeStyle. More...
 
class  OpenSWMM::Render::MeshNodeSymbolStyleAdapter
 Mesh-vertex marker surface — MeshNodeStyle. More...
 
class  OpenSWMM::Render::VelocityVectorSymbolStyleAdapter
 2D velocity-arrow surface — VelocityVectorStyle. More...
 
class  OpenSWMM::Render::PolygonSymbolStyleAdapter
 Single-Symbol panel surface for polygon archetypes — Subcatchments on the SWMM model layer and the polygon categories on the results layer. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Detailed Description

Q_PROPERTY view over a Rule's SingleSymbolRenderer (Slice B.6c).

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
    SymbolStyleAdapter is what makes the Single Symbol case
    editable through the Rule Model. The existing
    `FeatureStyleEditor` / `SwmmElementSymbolEditor` editors bind
    to QObjects via QPropertyModel, but Rule's renderer hands out
    a plain `SymbolStyle` struct — not a QObject. This adapter
    bridges the gap: it owns a non-owning pointer to a Rule and
    exposes the most-common SymbolStyle fields as Q_PROPERTYs.

    The adapter watches the Rule's `rendererReplaced` signal so
    external swaps (e.g. SymbologyTab class change) refresh the
    Q_PROPERTY view automatically.

    Property keys mirror the canonical SymbolLayer prop keys from
    MarkerSymbolLayerSpec (Z.4) + LineSymbolLayerSpec (Z.5). Edits
    are written back to the first SymbolLayer's props map; multi-
    layer symbols (composite stacks) still work but only the
    bottom layer is exposed to the editor in this slice.

    Slice B.6c shipped the read/write seam (this class). Slice SS.1
    adds the three archetype-aware adapters
    (\ref PointSymbolStyleAdapter / \ref LineSymbolStyleAdapter /
    \ref PolygonSymbolStyleAdapter) so the QPropertyModel-driven
    editor only surfaces properties that apply to the underlying
    geometry. The factory \ref SymbolStyleAdapter::createFor picks
    the right archetype subclass by inspecting the Rule's first
    SymbolLayer kind. See
    docs/RENDERING_SINGLE_SYMBOL_TRANSFER_PLAN.md.