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

Typed accessors for a SimpleFill SymbolLayer (VS.2). More...

#include "render/symbollayer.h"
#include <QBrush>
#include <QColor>
#include <QPen>
#include <QPolygonF>
Include dependency graph for fillsymbollayer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OpenSWMM::Render::FillSymbolLayerSpec
 Typed snapshot of a SimpleFill SymbolLayer's props. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 

Functions

void OpenSWMM::Render::drawFill (QPainter *painter, const QPolygonF &polygon, const FillSymbolLayerSpec &spec)
 Paint a filled + outlined polygon per spec.
 

Detailed Description

Typed accessors for a SimpleFill SymbolLayer (VS.2).

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
    Completes the primitive trio (Marker / Line / Fill). Mirrors
    MarkerSymbolLayerSpec (Z.4) and LineSymbolLayerSpec (Z.5) for
    polygon geometry so subcatchments / catchment polygons / 2D mesh
    cells can be styled with the same rigor as points and lines.

    A single SimpleFill kind covers solid AND hatch fills via
    Qt::BrushStyle (SolidPattern, Dense1..7Pattern, HorPattern,
    VerPattern, CrossPattern, BDiagPattern, FDiagPattern,
    DiagCrossPattern, NoBrush for outline-only). This keeps the model
    simple — no separate HatchFill spec is needed.

    Canonical property keys (stored on SymbolLayer::props for the
    SimpleFill kind):
      - "fillColor"       → QColor
      - "fillStyle"       → int (cast of Qt::BrushStyle)
      - "outlineColor"    → QColor
      - "outlineWidth"    → qreal (px)
      - "outlinePenStyle" → int (cast of Qt::PenStyle)
      - "joinStyle"       → int (cast of Qt::PenJoinStyle)

    Property keys are stable — they survive .oswp round-trips.
    Data-defined overrides target these same keys.