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
rastersymbollayers.h
Go to the documentation of this file.
1
30#ifndef OPENSWMM_RENDER_RASTERSYMBOLLAYERS_H
31#define OPENSWMM_RENDER_RASTERSYMBOLLAYERS_H
32
33#include "render/colorramp.h"
36#include "render/symbollayer.h"
37
38#include <QColor>
39#include <QPen>
40
41namespace OpenSWMM::Render
42{
43
44// ╭───────────────────────────────────────────────────────────────────╮
45// │ Raster color ramp │
46// ╰───────────────────────────────────────────────────────────────────╯
47
66{
69 qreal clampMin = 0.0;
70 qreal clampMax = 1.0;
71 QColor noDataColor = QColor(0, 0, 0, 0);
72 qreal opacity = 1.0;
73
74 [[nodiscard]] SymbolLayer toSymbolLayer() const;
75 [[nodiscard]] static RasterColorRampSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
76 void writeToSymbolLayer(SymbolLayer &layer) const;
77};
78
79// ╭───────────────────────────────────────────────────────────────────╮
80// │ Hillshade │
81// ╰───────────────────────────────────────────────────────────────────╯
82
99{
100 qreal azimuthDeg = 315.0;
101 qreal altitudeDeg = 45.0;
102 qreal zExaggeration = 1.0;
103 qreal shadowFloor = 0.2;
104 QString blendMode = QStringLiteral("Multiply");
105
111 qreal strength = 0.5;
112
113 [[nodiscard]] SymbolLayer toSymbolLayer() const;
114 [[nodiscard]] static HillshadeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
115 void writeToSymbolLayer(SymbolLayer &layer) const;
116};
117
118// ╭───────────────────────────────────────────────────────────────────╮
119// │ Contour │
120// ╰───────────────────────────────────────────────────────────────────╯
121
126enum class ContourMode : int {
127 Lines = 0,
128 Filled = 1,
129 Both = 2
130};
131
132[[nodiscard]] QString contourModeToString(ContourMode m);
133[[nodiscard]] ContourMode contourModeFromString(const QString &s);
134
155{
159 QColor lineColor = QColor(40, 40, 40);
160 qreal lineWidthPx = 0.75;
161 int labelEveryN = 0;
162 QString labelFormat = QStringLiteral("%.1f");
163
170 bool smoothBands = true;
171
172 [[nodiscard]] SymbolLayer toSymbolLayer() const;
173 [[nodiscard]] static ContourSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
174 void writeToSymbolLayer(SymbolLayer &layer) const;
175};
176
177// ╭───────────────────────────────────────────────────────────────────╮
178// │ Mesh edge │
179// ╰───────────────────────────────────────────────────────────────────╯
180
195{
196 QColor color = QColor(80, 80, 80);
197 qreal width = 0.5;
198 Qt::PenStyle penStyle = Qt::SolidLine;
199 int lodMinZoom = 0;
200
207 qreal slopeBreak = 0.5;
208 qreal wideWidthPx = 1.5;
209 QColor wideColor = QColor(40, 40, 40);
210
211 [[nodiscard]] QPen toQPen() const;
212 [[nodiscard]] SymbolLayer toSymbolLayer() const;
213 [[nodiscard]] static MeshEdgeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
214 void writeToSymbolLayer(SymbolLayer &layer) const;
215};
216
217// ╭───────────────────────────────────────────────────────────────────╮
218// │ Mesh node │
219// ╰───────────────────────────────────────────────────────────────────╯
220
235{
237
238 [[nodiscard]] SymbolLayer toSymbolLayer() const;
239 [[nodiscard]] static MeshNodeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
240 void writeToSymbolLayer(SymbolLayer &layer) const;
241};
242
243// ╭───────────────────────────────────────────────────────────────────╮
244// │ Velocity vector glyphs (Slice AN.1) │
245// ╰───────────────────────────────────────────────────────────────────╯
246
269{
271 qreal glyphLengthMinPx = 4.0;
272 qreal glyphLengthMaxPx = 40.0;
273 qreal glyphSpacingPx = 30.0;
274 qreal headSizePx = 5.0;
275 QColor color = QColor(20, 20, 20, 220);
276 qreal dryDepthCutoff = 0.01;
277
278 [[nodiscard]] SymbolLayer toSymbolLayer() const;
279 [[nodiscard]] static VelocityVectorSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer);
280 void writeToSymbolLayer(SymbolLayer &layer) const;
281};
282
283} // namespace OpenSWMM::Render
284
285#endif // OPENSWMM_RENDER_RASTERSYMBOLLAYERS_H
Computes break values + maps a value to a bin index.
Definition intervalbinner.h:49
RasterColorRamp — gradient mapping from a normalised value in [0,1] to a display QColor.
double s
Scene px per model length unit.
Definition inletdrawingview.cpp:82
Slice BB-α — classifies a set of numeric samples into N bins.
Typed accessors for a SimpleMarker SymbolLayer (Slice Z.4).
MaskMode m
Definition maskspec.cpp:18
Definition gisrasterlayer.h:40
ContourMode
What a contour Symbol Layer paints.
Definition rastersymbollayers.h:126
ContourMode contourModeFromString(const QString &s)
Definition rastersymbollayers.cpp:94
QString contourModeToString(ContourMode m)
Definition rastersymbollayers.cpp:87
Iso-line / iso-band paint pass.
Definition rastersymbollayers.h:155
bool smoothBands
Definition rastersymbollayers.h:170
static ContourSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:204
RasterColorRamp ramp
Definition rastersymbollayers.h:158
QString labelFormat
Definition rastersymbollayers.h:162
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:230
qreal lineWidthPx
Definition rastersymbollayers.h:160
int labelEveryN
Definition rastersymbollayers.h:161
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:196
QColor lineColor
Definition rastersymbollayers.h:159
ContourMode mode
Definition rastersymbollayers.h:156
IntervalBinner binner
Definition rastersymbollayers.h:157
Terrain-hillshade overlay (DEM / mesh bed elevation).
Definition rastersymbollayers.h:99
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:181
QString blendMode
Definition rastersymbollayers.h:104
qreal strength
Definition rastersymbollayers.h:111
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:148
qreal shadowFloor
Definition rastersymbollayers.h:103
qreal altitudeDeg
Definition rastersymbollayers.h:101
qreal zExaggeration
Definition rastersymbollayers.h:102
static HillshadeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:156
qreal azimuthDeg
Definition rastersymbollayers.h:100
Typed snapshot of a SimpleMarker SymbolLayer's props.
Definition markersymbollayer.h:58
TIN / mesh wireframe paint pass.
Definition rastersymbollayers.h:195
QPen toQPen() const
Definition rastersymbollayers.cpp:247
int lodMinZoom
Definition rastersymbollayers.h:199
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:256
QColor color
Definition rastersymbollayers.h:196
qreal wideWidthPx
Definition rastersymbollayers.h:208
Qt::PenStyle penStyle
Definition rastersymbollayers.h:198
QColor wideColor
Definition rastersymbollayers.h:209
qreal slopeBreak
Definition rastersymbollayers.h:207
qreal width
Definition rastersymbollayers.h:197
static MeshEdgeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:264
bool useSlopeDrivenWidth
Definition rastersymbollayers.h:206
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:289
TIN / mesh vertex marker paint pass.
Definition rastersymbollayers.h:235
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:322
MarkerSymbolLayerSpec marker
Definition rastersymbollayers.h:236
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:307
static MeshNodeSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:315
Continuous-color ramp paint pass for raster / 2D-mesh data.
Definition rastersymbollayers.h:66
qreal clampMin
Definition rastersymbollayers.h:69
static RasterColorRampSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:113
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:133
RasterColorRamp ramp
Definition rastersymbollayers.h:67
qreal clampMax
Definition rastersymbollayers.h:70
QColor noDataColor
Definition rastersymbollayers.h:71
IntervalBinner binner
Definition rastersymbollayers.h:68
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:105
qreal opacity
Definition rastersymbollayers.h:72
One paint pass in the SymbolStyle stack.
Definition symbollayer.h:90
2D vector-field glyph paint pass (velocity arrows).
Definition rastersymbollayers.h:269
qreal glyphLengthMaxPx
Definition rastersymbollayers.h:272
qreal glyphSpacingPx
Definition rastersymbollayers.h:273
QColor color
Definition rastersymbollayers.h:275
qreal headSizePx
Definition rastersymbollayers.h:274
qreal glyphLengthScalePxPerMps
Definition rastersymbollayers.h:270
SymbolLayer toSymbolLayer() const
Definition rastersymbollayers.cpp:333
qreal glyphLengthMinPx
Definition rastersymbollayers.h:271
static VelocityVectorSymbolLayerSpec fromSymbolLayer(const SymbolLayer &layer)
Definition rastersymbollayers.cpp:341
qreal dryDepthCutoff
Definition rastersymbollayers.h:276
void writeToSymbolLayer(SymbolLayer &layer) const
Definition rastersymbollayers.cpp:364
Gradient mapping from a normalised value in [0,1] to a QColor.
Definition colorramp.h:71
One paint pass in a compositional SymbolStyle stack.