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
preferencesmanager.h
Go to the documentation of this file.
1
19#ifndef PREFERENCESMANAGER_H
20#define PREFERENCESMANAGER_H
21
22#include "render/colorramp.h"
23#include "plot/numberformat.h"
24
25#include <QBrush>
26#include <QColor>
27#include <QMap>
28#include <QObject>
29#include <QPen>
30#include <QSettings>
31#include <QString>
32
33class PreferencesManager : public QObject
34{
35 Q_OBJECT
36
37public:
42
43 // ── Selection (MapToolSelect) ────────────────────────────────────────
48 [[nodiscard]] int clickTolerancePx() const;
49 void setClickTolerancePx(int pixels);
50
53 [[nodiscard]] int dragThresholdPx() const;
54 void setDragThresholdPx(int pixels);
55
58 [[nodiscard]] bool clearSelectionOnMiss() const;
59 void setClearSelectionOnMiss(bool on);
60
74 [[nodiscard]] QPen selectionPen(const QString &className) const;
75 void setSelectionPen(const QString &className, const QPen &pen);
76
81 [[nodiscard]] QBrush selectionBrush(const QString &className) const;
82 void setSelectionBrush(const QString &className, const QBrush &brush);
83
86 [[nodiscard]] QColor selectionColor(const QString &className) const;
87
91 void resetSelectionStyleToDefault(const QString &className);
92
93 // ── Appearance ───────────────────────────────────────────────────────
96 [[nodiscard]] QString appearanceMode() const;
97 void setAppearanceMode(const QString &mode);
98
99 // ── Canvas / Default tool ────────────────────────────────────────────
102 [[nodiscard]] QString defaultTool() const;
103 void setDefaultTool(const QString &tool);
104
108 [[nodiscard]] QString defaultCrsMode() const;
109 void setDefaultCrsMode(const QString &mode);
110
113 [[nodiscard]] QString defaultCrsAuthority() const;
114 [[nodiscard]] int defaultCrsCode() const;
115 void setDefaultCrsAuthority(const QString &authority);
116 void setDefaultCrsCode(int code);
117
118 // ── GPU / QSG rendering ──────────────────────────────────────────────
126 [[nodiscard]] bool qsgRenderEnabled() const;
127 void setQsgRenderEnabled(bool enabled);
128
135 [[nodiscard]] bool qsgMeshRenderEnabled() const;
136 void setQsgMeshRenderEnabled(bool enabled);
137
143 [[nodiscard]] bool autoBuildRasterOverviews() const;
144 void setAutoBuildRasterOverviews(bool enabled);
145
146 // ── Snapping ─────────────────────────────────────────────────────────
148 [[nodiscard]] bool snapEnabled() const;
149 void setSnapEnabled(bool enabled);
150
152 [[nodiscard]] int snapTolerancePx() const;
153 void setSnapTolerancePx(int px);
154
157 [[nodiscard]] bool snapToVertices() const;
158 void setSnapToVertices(bool enabled);
159
160 // ── Rendering / Map LOD ──────────────────────────────────────────────
164 [[nodiscard]] qreal labelLodM11Min() const;
165 void setLabelLodM11Min(qreal m11);
166
178 [[nodiscard]] QPen linkPen(const QString &linkType) const;
179 void setLinkPen(const QString &linkType, const QPen &pen);
180
183 [[nodiscard]] QColor linkColor(const QString &linkType) const;
184
188 void resetLinkPenToDefault(const QString &linkType);
189
198 [[nodiscard]] QPen nodePen(const QString &nodeType) const;
199 void setNodePen(const QString &nodeType, const QPen &pen);
200
204 [[nodiscard]] QBrush nodeBrush(const QString &nodeType) const;
205 void setNodeBrush(const QString &nodeType, const QBrush &brush);
206
210 [[nodiscard]] double nodeSize(const QString &nodeType) const;
211 void setNodeSize(const QString &nodeType, double sizePx);
212
216 void resetNodeStyleToDefault(const QString &nodeType);
217
218 // ── Rendering / Custom color ramps (Slice BB-α) ──────────────────────
225 [[nodiscard]] QMap<QString, RasterColorRamp> customColorRamps() const;
226 void saveCustomColorRamp(const QString &name, const RasterColorRamp &ramp);
227 void removeCustomColorRamp(const QString &name);
228
229 // ── 2D mesh boundary-condition edge styling ──────────────────────────
240 [[nodiscard]] bool meshBcColorByType() const;
241 void setMeshBcColorByType(bool on);
242
243 [[nodiscard]] QColor meshBcColor(int type) const;
244 void setMeshBcColor(int type, const QColor &color);
245
246 [[nodiscard]] double meshBcWidthPx(int type) const;
247 void setMeshBcWidthPx(int type, double px);
248
249 // ── Simulation ───────────────────────────────────────────────────────
253 [[nodiscard]] int progressTickMs() const;
254 void setProgressTickMs(int ms);
255
259 [[nodiscard]] int live2DHistoryCap() const;
260 void setLive2DHistoryCap(int frames);
261
265 [[nodiscard]] int live2DHistoryMB() const;
266 void setLive2DHistoryMB(int megabytes);
267
272 [[nodiscard]] bool liveResults1DEnabled() const;
273 void setLiveResults1DEnabled(bool on);
274
279 [[nodiscard]] double animationSpeed() const;
280 void setAnimationSpeed(double speed);
281
282 // ── Profile plot path discovery ──────────────────────────────────────
289 [[nodiscard]] int profileMaxPaths() const;
290 void setProfileMaxPaths(int n);
291
298 [[nodiscard]] int profileEndpointHaloRadiusPx() const;
300
303 [[nodiscard]] QPen profileStartEndpointPen() const;
304 void setProfileStartEndpointPen(const QPen &pen);
305
308 [[nodiscard]] QPen profileEndEndpointPen() const;
309 void setProfileEndEndpointPen(const QPen &pen);
310
311 // ── Map Decorations / Scale Bar ──────────────────────────────────────
312 [[nodiscard]] QColor scaleBarPenColor() const;
313 void setScaleBarPenColor(const QColor &color);
314
315 [[nodiscard]] int scaleBarPenWidth() const;
316 void setScaleBarPenWidth(int width);
317
318 [[nodiscard]] int scaleBarPenStyle() const;
319 void setScaleBarPenStyle(int style);
320
321 [[nodiscard]] QString scaleBarFontFamily() const;
322 void setScaleBarFontFamily(const QString &family);
323
324 [[nodiscard]] int scaleBarFontSize() const;
325 void setScaleBarFontSize(int size);
326
327 [[nodiscard]] int scaleBarUnits() const;
328 void setScaleBarUnits(int units);
329
330 [[nodiscard]] int scaleBarPosition() const;
332
333 [[nodiscard]] int scaleBarMaxBarLength() const;
335
336 [[nodiscard]] int scaleBarLabelDecimals() const;
338
339 [[nodiscard]] bool scaleBarCompactNotation() const;
340 void setScaleBarCompactNotation(bool compact);
341
342 // ── Map Decorations / Measure Tool ───────────────────────────────────
343 [[nodiscard]] QColor measureLineColor() const;
344 void setMeasureLineColor(const QColor &color);
345
346 [[nodiscard]] QString measureLabelFontFamily() const;
347 void setMeasureLabelFontFamily(const QString &family);
348
349 [[nodiscard]] int measureLabelFontSize() const;
350 void setMeasureLabelFontSize(int size);
351
352 [[nodiscard]] int measureLabelDecimals() const;
354
355 [[nodiscard]] QColor measureFillColor() const;
356 void setMeasureFillColor(const QColor &color);
357
358 [[nodiscard]] int measureFillOpacity() const;
359 void setMeasureFillOpacity(int opacity);
360
361 // ── Plots: default numeric precision ─────────────────────────────────
368 [[nodiscard]] int plotXAxisFormatMode() const;
370 [[nodiscard]] int plotXAxisPrecision() const;
372
373 [[nodiscard]] int plotYAxisFormatMode() const;
375 [[nodiscard]] int plotYAxisPrecision() const;
377
381
382 // ── Element naming prefixes ──────────────────────────────────────────
391 [[nodiscard]] QString elementNamePrefix(const QString &kind) const;
392 void setElementNamePrefix(const QString &kind, const QString &prefix);
393
394 // ── Terrain editing defaults ─────────────────────────────────────────
397 [[nodiscard]] double terrainDefaultNodeOffset() const;
398 void setTerrainDefaultNodeOffset(double offset);
399
402 [[nodiscard]] double terrainDefaultLinkOffset() const;
403 void setTerrainDefaultLinkOffset(double offset);
404
405 // ── Application defaults applied on project creation ─────────────────
409 [[nodiscard]] bool autoLengthEnabled() const;
410 void setAutoLengthEnabled(bool enabled);
411
415 [[nodiscard]] QString defaultEngineMode() const;
416 void setDefaultEngineMode(const QString &version);
417
418 // ── Simulation defaults for new (blank) projects ─────────────────────
424 {
425 QString flowUnits = QStringLiteral("CFS");
426 QString infiltrationModel = QStringLiteral("HORTON");
427 QString flowRouting = QStringLiteral("DYNWAVE");
428
429 // Legacy-SWMM parity: a new project simulates every process that
430 // its model data exercises. IGNORE_ROUTING YES here made every
431 // File→New model appear dead (no flows anywhere) unless the user
432 // found Simulation Defaults and opted routing back in.
433 bool ignoreRainfall = false;
434 bool ignoreRdii = false;
435 bool ignoreSnowmelt = false;
436 bool ignoreGroundwater = false;
437 bool ignoreQuality = false;
438 bool ignoreRouting = false;
439 bool module2DEnabled = false;
440
441 bool allowPonding = false;
442 bool skipSteadyState = false;
443 double minSlopePct = 0.0;
444
445 QString sweepStart = QStringLiteral("01/01");
446 QString sweepEnd = QStringLiteral("12/31");
447 double dryDays = 0.0;
448
449 // Time steps stored as seconds.
450 int reportStepSec = 60;
451 int dryStepSec = 5 * 60;
452 int wetStepSec = 60;
453 int ruleStepSec = 0;
454 double routingStepSec = 5.0;
455
456 int maxTrials = 8;
457 double headTolerance = 0.005;
458 double sysFlowTolPct = 5.0;
459 double latFlowTolPct = 5.0;
460
461 // Dynamic-wave specific.
462 QString inertialDamping = QStringLiteral("PARTIAL");
463 QString normalFlowLimited = QStringLiteral("BOTH");
464 QString forceMainEquation = QStringLiteral("H-W");
465 QString surchargeMethod = QStringLiteral("EXTRAN");
466 bool variableStepOn = true;
467 double variableStepFactor = 0.75;
468 double minRoutingStepSec = 0.5;
469 double lengtheningStepSec = 0.0;
470
471 // New-engine only. Emitted only when defaultEngineMode is the
472 // refactored engine; for legacy engine the keys are suppressed.
473 QString nodeContinuity = QStringLiteral("SEMI_IMPLICIT");
474 bool andersonAccel = true;
475
476 // Mixed-flow options (engine issue #156; GUI issue #10). Applies to
477 // dynamic-wave and FV routing; new-engine only like nodeContinuity.
478 // The sibling #156 keys deliberately do NOT live here:
479 // TPA_CELERITY follows the DPS_* rule (method-specific, engine-side
480 // default), FV_PRESSURE_CLOSURE follows the FV_* gap, and
481 // REPORT_SIGNED_HEADS follows the RPT_* rule (no report keys here).
482 QString unsteadyFriction = QStringLiteral("NONE");
483 double ufK3 = 0.015;
484
489 int threads = 0;
490 };
491
492 [[nodiscard]] SimulationDefaults simulationDefaults() const;
494
495 // ── 2D model defaults for new projects ───────────────────────────────
504 {
505 // [2D_OPTIONS] solver keys (defaults mirror the engine's).
506 double maxTimestepSec = 10.0;
507 double theta = 0.8;
508 double cflNumber = 0.7;
509 int ltsTiers = 4;
510 double hMove = 0.003;
511 double froudeMax = 1.5;
512 bool advection = false;
513 double dryDepth = 0.001;
514 double limiterEpsilon = 1e-6;
515 double fluxDhEps = 0.004;
516 QString cellClosure = QStringLiteral("FLAT");
517 QString faceReconstruction = QStringLiteral("MEAN");
518 double vfrMinWetFrac = 0.01;
519 double couplingCd = 0.65;
520 double couplingSync = 0.0;
521 bool couplingAreaAuto = false;
522 QString rainfallMode = QStringLiteral("NATURAL_NEIGHBOUR");
523 bool report2D = false;
524
525 // Mesh-generation seeds (SI canonical; the dialog unit-scales).
526 double meshMinAngleDeg = 33.0;
527 double meshMaxArea = 0.0;
528 int meshMaxSteiner = -1;
529 double meshIdwPower = 2.0;
530 double meshSimplifyEpsM = 0.1;
531 double meshSnapEpsM = 0.01;
533 // 2026-09-11: nodes pinned as Steiner vertices, at their rim
534 // elevation, with the minimum separation demoting close clusters —
535 // all on by default (virtual junctions are never pinned).
537 bool meshNodesUseRim = true;
538 bool meshMinNodeSepOn = true;
539 double meshMinNodeSepM = 2.0;
540 bool meshThinningOn = true;
541 double meshThinningTol = 0.75;
543 bool meshMinSpacingOn = true;
544 double meshMinSpacingM = 15.0;
545 double meshBoundaryBufferM = 0.0;
547 double meshMaxBoundaryEdgeM = 20.0;
548 double meshManningsN = 0.035;
549 double meshInitDepth = 0.0;
551 };
552
553 [[nodiscard]] TwoDDefaults twoDDefaults() const;
554 void setTwoDDefaults(const TwoDDefaults &d);
555
556 // ── Object creation defaults ─────────────────────────────────────────
568 {
569 // Junctions (0 = engine "auto from highest crown" for max depth)
570 double junctionMaxDepth = 0.0;
571 double junctionInitDepth = 0.0;
572 double junctionSurDepth = 0.0;
573 double junctionPondedArea = 0.0;
574
575 // Outfalls
576 QString outfallType = QStringLiteral("FREE");
577 bool outfallFlapGate = false;
578
579 // Storage (functional area A = coeff*d^expon + constant)
580 double storageMaxDepth = 15.0;
581 double storageFuncCoeff = 0.0;
583 double storageFuncConstant = 1000.0;
584 double storageSeepRate = 0.0;
585
586 // Dividers
587 QString dividerType = QStringLiteral("OVERFLOW");
588
589 // Conduits
590 QString conduitShape = QStringLiteral("CIRCULAR");
591 double conduitGeom1 = 1.0;
592 double conduitGeom2 = 0.0;
593 double conduitGeom3 = 0.0;
594 double conduitGeom4 = 0.0;
595 double conduitRoughness = 0.013;
596 double conduitLength = 400.0;
598 double conduitLossInlet = 0.0;
599 double conduitLossOutlet = 0.0;
600 bool conduitFlapGate = false;
601
602 // Pumps (ideal pump: no curve reference to default)
603 bool pumpInitStateOn = true;
604 double pumpStartupDepth = 0.0;
605 double pumpShutoffDepth = 0.0;
606
607 // Orifices
608 QString orificeType = QStringLiteral("SIDE");
609 double orificeGeom1 = 1.0;
610 double orificeCd = 0.65;
611 bool orificeFlapGate = false;
612 double orificeOpenCloseRate = 0.0;
613
614 // Weirs
615 QString weirType = QStringLiteral("TRANSVERSE");
616 double weirGeom1 = 3.0;
617 double weirGeom2 = 3.0;
618 double weirCd = 3.33;
620 bool weirFlapGate = false;
621
622 // Outlets (rating Q = C*h^n)
623 QString outletRatingType = QStringLiteral("FUNCTIONAL_DEPTH");
624 double outletCoeff = 10.0;
625 double outletExponent = 0.5;
626 bool outletFlapGate = false;
627
628 // Subcatchments
629 double subcatchArea = 5.0;
630 double subcatchWidth = 500.0;
631 double subcatchSlopePct = 0.5;
632 double subcatchImpervPct = 25.0;
633 double subcatchNImperv = 0.012;
634 double subcatchNPerv = 0.15;
635 double subcatchDsImperv = 0.06;
636 double subcatchDsPerv = 0.15;
638 double hortonMaxRate = 3.0;
639 double hortonMinRate = 0.5;
640 double hortonDecay = 4.0;
641 double hortonDryTime = 7.0;
642 double gaSuction = 3.5;
643 double gaKsat = 0.5;
644 double gaImd = 0.26;
645 double cnCurveNumber = 80.0;
646 double cnDryTime = 7.0;
647
648 // Rain gages
649 QString gageRainFormat = QStringLiteral("INTENSITY");
651 double gageSnowCatch = 1.0;
652
654 [[nodiscard]] static ObjectDefaults usSeed();
656 [[nodiscard]] static ObjectDefaults siSeed();
657 };
658
659 [[nodiscard]] ObjectDefaults objectDefaults(bool si) const;
660 void setObjectDefaults(const ObjectDefaults &d, bool si);
661
662signals:
666 void preferenceChanged(const QString &group, const QString &key);
667
668private:
669 explicit PreferencesManager(QObject *parent = nullptr);
670
671 QSettings m_settings;
672};
673
674#endif // PREFERENCESMANAGER_H
Definition preferencesmanager.h:34
void removeCustomColorRamp(const QString &name)
Definition preferencesmanager.cpp:875
int live2DHistoryCap() const
Definition preferencesmanager.cpp:917
bool snapToVertices() const
Definition preferencesmanager.cpp:587
int defaultCrsCode() const
Definition preferencesmanager.cpp:508
void setPlotXAxisPrecision(int count)
Definition preferencesmanager.cpp:1400
void resetSelectionStyleToDefault(const QString &className)
Definition preferencesmanager.cpp:432
QString appearanceMode() const
Definition preferencesmanager.cpp:475
double terrainDefaultNodeOffset() const
Definition preferencesmanager.cpp:1478
bool scaleBarCompactNotation() const
Default false.
Definition preferencesmanager.cpp:1294
void setProfileEndEndpointPen(const QPen &pen)
Definition preferencesmanager.cpp:1157
void setMeasureFillOpacity(int opacity)
Definition preferencesmanager.cpp:1374
QMap< QString, RasterColorRamp > customColorRamps() const
Definition preferencesmanager.cpp:835
QString defaultEngineMode() const
Definition preferencesmanager.cpp:1527
bool clearSelectionOnMiss() const
Definition preferencesmanager.cpp:273
QString scaleBarFontFamily() const
Default "sans-serif".
Definition preferencesmanager.cpp:1214
int scaleBarPosition() const
ScaleBarSettings::Position as int; default 0 (BottomLeft)
Definition preferencesmanager.cpp:1254
void setAutoLengthEnabled(bool enabled)
Definition preferencesmanager.cpp:1519
void setPlotYAxisFormatMode(int mode)
Definition preferencesmanager.cpp:1412
void setLive2DHistoryMB(int megabytes)
Definition preferencesmanager.cpp:941
void setDefaultCrsCode(int code)
Definition preferencesmanager.cpp:525
void setMeasureFillColor(const QColor &color)
Definition preferencesmanager.cpp:1362
QPen selectionPen(const QString &className) const
Definition preferencesmanager.cpp:374
int plotYAxisPrecision() const
Default 2; range 0–10.
Definition preferencesmanager.cpp:1419
int plotYAxisFormatMode() const
Default 0 (Decimals)
Definition preferencesmanager.cpp:1407
void setQsgRenderEnabled(bool enabled)
Definition preferencesmanager.cpp:544
QString measureLabelFontFamily() const
Default "sans-serif".
Definition preferencesmanager.cpp:1321
double terrainDefaultLinkOffset() const
Definition preferencesmanager.cpp:1493
void setDragThresholdPx(int pixels)
Definition preferencesmanager.cpp:263
void setSelectionPen(const QString &className, const QPen &pen)
Definition preferencesmanager.cpp:387
void saveCustomColorRamp(const QString &name, const RasterColorRamp &ramp)
Definition preferencesmanager.cpp:854
void setScaleBarFontFamily(const QString &family)
Definition preferencesmanager.cpp:1220
int scaleBarMaxBarLength() const
Default 100; range 20–500.
Definition preferencesmanager.cpp:1267
double meshBcWidthPx(int type) const
Definition preferencesmanager.cpp:1041
void setScaleBarUnits(int units)
Definition preferencesmanager.cpp:1247
void setScaleBarLabelDecimals(int decimals)
Definition preferencesmanager.cpp:1287
void setDefaultTool(const QString &tool)
Definition preferencesmanager.cpp:465
void setPlotXAxisFormatMode(int mode)
Definition preferencesmanager.cpp:1388
QBrush nodeBrush(const QString &nodeType) const
Definition preferencesmanager.cpp:754
int profileMaxPaths() const
Definition preferencesmanager.cpp:1089
TwoDDefaults twoDDefaults() const
Definition preferencesmanager.cpp:1687
void setClearSelectionOnMiss(bool on)
Definition preferencesmanager.cpp:280
QString defaultCrsAuthority() const
Definition preferencesmanager.cpp:501
SimulationDefaults simulationDefaults() const
Definition preferencesmanager.cpp:1560
void setSnapTolerancePx(int px)
Definition preferencesmanager.cpp:580
int scaleBarLabelDecimals() const
-1=auto, 0=whole, n=n decimals. Default -1.
Definition preferencesmanager.cpp:1281
void setLive2DHistoryCap(int frames)
Definition preferencesmanager.cpp:924
void setTerrainDefaultLinkOffset(double offset)
Definition preferencesmanager.cpp:1500
void resetLinkPenToDefault(const QString &linkType)
Definition preferencesmanager.cpp:680
int live2DHistoryMB() const
Definition preferencesmanager.cpp:934
void setScaleBarMaxBarLength(int length)
Definition preferencesmanager.cpp:1273
void setLabelLodM11Min(qreal m11)
Definition preferencesmanager.cpp:610
QColor selectionColor(const QString &className) const
Definition preferencesmanager.cpp:427
int measureLabelFontSize() const
Default 8; range 4–72.
Definition preferencesmanager.cpp:1333
void setObjectDefaults(const ObjectDefaults &d, bool si)
Definition preferencesmanager.cpp:1906
void setPlotYAxisPrecision(int count)
Definition preferencesmanager.cpp:1424
QPen nodePen(const QString &nodeType) const
Definition preferencesmanager.cpp:726
int scaleBarUnits() const
ScaleBarSettings::Units as int; default 0 (Auto)
Definition preferencesmanager.cpp:1241
void setClickTolerancePx(int pixels)
Definition preferencesmanager.cpp:246
void setMeasureLineColor(const QColor &color)
Definition preferencesmanager.cpp:1314
int plotXAxisFormatMode() const
Default 0 (Decimals)
Definition preferencesmanager.cpp:1383
bool qsgMeshRenderEnabled() const
Definition preferencesmanager.cpp:551
void setLiveResults1DEnabled(bool on)
Definition preferencesmanager.cpp:958
void setScaleBarPenWidth(int width)
Definition preferencesmanager.cpp:1193
void setMeasureLabelFontSize(int size)
Definition preferencesmanager.cpp:1338
ObjectDefaults objectDefaults(bool si) const
Definition preferencesmanager.cpp:1836
bool liveResults1DEnabled() const
Definition preferencesmanager.cpp:951
QColor linkColor(const QString &linkType) const
Definition preferencesmanager.cpp:675
void preferenceChanged(const QString &group, const QString &key)
void setAppearanceMode(const QString &mode)
Definition preferencesmanager.cpp:481
qreal labelLodM11Min() const
Definition preferencesmanager.cpp:603
int scaleBarPenStyle() const
Qt::PenStyle as int; default Qt::SolidLine.
Definition preferencesmanager.cpp:1201
void setSnapEnabled(bool enabled)
Definition preferencesmanager.cpp:568
QString defaultTool() const
Definition preferencesmanager.cpp:458
double animationSpeed() const
Definition preferencesmanager.cpp:1064
void setQsgMeshRenderEnabled(bool enabled)
Definition preferencesmanager.cpp:556
openswmmvis::plot::NumberFormat plotXAxisFormat() const
Definition preferencesmanager.cpp:1431
void setDefaultEngineMode(const QString &version)
Definition preferencesmanager.cpp:1536
void setLinkPen(const QString &linkType, const QPen &pen)
Definition preferencesmanager.cpp:663
int dragThresholdPx() const
Definition preferencesmanager.cpp:256
static PreferencesManager * instance()
Definition preferencesmanager.cpp:147
void setTwoDDefaults(const TwoDDefaults &d)
Definition preferencesmanager.cpp:1737
void setNodePen(const QString &nodeType, const QPen &pen)
Definition preferencesmanager.cpp:742
void setMeasureLabelFontFamily(const QString &family)
Definition preferencesmanager.cpp:1326
QPen profileStartEndpointPen() const
Definition preferencesmanager.cpp:1123
QString defaultCrsMode() const
Definition preferencesmanager.cpp:488
void setAutoBuildRasterOverviews(bool enabled)
Definition preferencesmanager.cpp:296
int measureFillOpacity() const
Area fill opacity 0–100 %. Default 30.
Definition preferencesmanager.cpp:1369
QPen profileEndEndpointPen() const
Definition preferencesmanager.cpp:1144
void setProfileStartEndpointPen(const QPen &pen)
Definition preferencesmanager.cpp:1136
QString elementNamePrefix(const QString &kind) const
Definition preferencesmanager.cpp:1446
void setScaleBarPenStyle(int style)
Definition preferencesmanager.cpp:1207
void setSimulationDefaults(const SimulationDefaults &d)
Definition preferencesmanager.cpp:1615
QColor measureFillColor() const
Area polygon fill base color. Default #6495ED (cornflower blue)
Definition preferencesmanager.cpp:1357
int progressTickMs() const
Definition preferencesmanager.cpp:900
int clickTolerancePx() const
Definition preferencesmanager.cpp:239
void setSelectionBrush(const QString &className, const QBrush &brush)
Definition preferencesmanager.cpp:414
void setMeshBcColorByType(bool on)
Definition preferencesmanager.cpp:1005
void setProgressTickMs(int ms)
Definition preferencesmanager.cpp:907
bool autoLengthEnabled() const
Definition preferencesmanager.cpp:1512
void setScaleBarPosition(int position)
Definition preferencesmanager.cpp:1260
void setMeshBcWidthPx(int type, double px)
Definition preferencesmanager.cpp:1050
int scaleBarPenWidth() const
Default 2; range 1–20.
Definition preferencesmanager.cpp:1187
openswmmvis::plot::NumberFormat plotYAxisFormat() const
Definition preferencesmanager.cpp:1436
bool qsgRenderEnabled() const
Definition preferencesmanager.cpp:539
double nodeSize(const QString &nodeType) const
Definition preferencesmanager.cpp:779
QBrush selectionBrush(const QString &className) const
Definition preferencesmanager.cpp:400
void setScaleBarCompactNotation(bool compact)
Definition preferencesmanager.cpp:1300
void setNodeBrush(const QString &nodeType, const QBrush &brush)
Definition preferencesmanager.cpp:767
void setScaleBarPenColor(const QColor &color)
Definition preferencesmanager.cpp:1180
void setScaleBarFontSize(int size)
Definition preferencesmanager.cpp:1233
void setDefaultCrsAuthority(const QString &authority)
Definition preferencesmanager.cpp:515
bool snapEnabled() const
Definition preferencesmanager.cpp:563
void setAnimationSpeed(double speed)
Definition preferencesmanager.cpp:1071
bool autoBuildRasterOverviews() const
Definition preferencesmanager.cpp:289
QColor measureLineColor() const
Segment + vertex dot color. Default Qt::red.
Definition preferencesmanager.cpp:1309
void setProfileMaxPaths(int n)
Definition preferencesmanager.cpp:1096
void setTerrainDefaultNodeOffset(double offset)
Definition preferencesmanager.cpp:1485
void resetNodeStyleToDefault(const QString &nodeType)
Definition preferencesmanager.cpp:805
int measureLabelDecimals() const
Decimal places in labels. Default 2; range 0–6.
Definition preferencesmanager.cpp:1345
void setDefaultCrsMode(const QString &mode)
Definition preferencesmanager.cpp:494
void setProfileEndpointHaloRadiusPx(int px)
Definition preferencesmanager.cpp:1113
QColor scaleBarPenColor() const
Definition preferencesmanager.cpp:1169
void setElementNamePrefix(const QString &kind, const QString &prefix)
Definition preferencesmanager.cpp:1465
int snapTolerancePx() const
Definition preferencesmanager.cpp:575
int scaleBarFontSize() const
Default 8; range 4–72.
Definition preferencesmanager.cpp:1227
QPen linkPen(const QString &linkType) const
Definition preferencesmanager.cpp:645
void setMeasureLabelDecimals(int decimals)
Definition preferencesmanager.cpp:1350
int profileEndpointHaloRadiusPx() const
Definition preferencesmanager.cpp:1106
void setSnapToVertices(bool enabled)
Definition preferencesmanager.cpp:592
void setNodeSize(const QString &nodeType, double sizePx)
Definition preferencesmanager.cpp:793
void setMeshBcColor(int type, const QColor &color)
Definition preferencesmanager.cpp:1028
int plotXAxisPrecision() const
Default 0; range 0–10.
Definition preferencesmanager.cpp:1395
bool meshBcColorByType() const
Definition preferencesmanager.cpp:999
QColor meshBcColor(int type) const
Definition preferencesmanager.cpp:1014
RasterColorRamp — gradient mapping from a normalised value in [0,1] to a display QColor.
enum OpenSWMM::Render::@788::Value::Type type
int code
Definition heatconfigdialog.cpp:40
int e
Definition inpmeshreader.cpp:41
std::size_t n
Definition mesh2dresultsexport.cpp:426
const char * key
Definition meshcellparams.cpp:24
int decimals
Definition meshcellparams.cpp:30
QuadRegionMode mode
Resolved mode.
Definition meshgenerator.cpp:154
double length
Definition meshpatch.cpp:64
int count
Definition numberformat.cpp:101
Single source of truth for how chart plots render numeric values.
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
TokenKind kind
Definition queryparser.cpp:34
int position
Definition queryparser.cpp:149
QString name
Definition sectionmodelbuilders.cpp:474
Definition preferencesmanager.h:568
double storageSeepRate
in/hr | mm/hr
Definition preferencesmanager.h:584
bool weirFlapGate
Definition preferencesmanager.h:620
bool outfallFlapGate
Definition preferencesmanager.h:577
double hortonMinRate
in/hr | mm/hr
Definition preferencesmanager.h:639
double orificeCd
Definition preferencesmanager.h:610
QString conduitShape
Definition preferencesmanager.h:590
double gaSuction
in | mm
Definition preferencesmanager.h:642
double subcatchPctZeroImperv
Definition preferencesmanager.h:637
double outletCoeff
unit-semantic: 10.0 US, 0.5 SI
Definition preferencesmanager.h:624
double pumpStartupDepth
ft | m
Definition preferencesmanager.h:604
double gageSnowCatch
Definition preferencesmanager.h:651
double storageFuncCoeff
Definition preferencesmanager.h:581
QString orificeType
Definition preferencesmanager.h:608
int gageIntervalMin
minutes
Definition preferencesmanager.h:650
double orificeOpenCloseRate
hr
Definition preferencesmanager.h:612
double hortonMaxRate
in/hr | mm/hr
Definition preferencesmanager.h:638
double conduitGeom4
Definition preferencesmanager.h:594
double pumpShutoffDepth
ft | m
Definition preferencesmanager.h:605
double subcatchDsImperv
in | mm
Definition preferencesmanager.h:635
static ObjectDefaults usSeed()
Compiled-in US-customary seed (the member initializers).
Definition preferencesmanager.cpp:1808
static ObjectDefaults siSeed()
Compiled-in SI seed — usSeed() with unit-differing fields overridden.
Definition preferencesmanager.cpp:1813
bool orificeFlapGate
Definition preferencesmanager.h:611
double subcatchWidth
ft | m
Definition preferencesmanager.h:630
double storageMaxDepth
ft | m
Definition preferencesmanager.h:580
double weirCd
unit-semantic: 3.33 US, 1.84 SI
Definition preferencesmanager.h:618
double subcatchDsPerv
in | mm
Definition preferencesmanager.h:636
double gaImd
Definition preferencesmanager.h:644
double subcatchSlopePct
Definition preferencesmanager.h:631
double conduitGeom1
ft | m
Definition preferencesmanager.h:591
double cnCurveNumber
Definition preferencesmanager.h:645
double storageFuncConstant
ft2 | m2
Definition preferencesmanager.h:583
double outletExponent
Definition preferencesmanager.h:625
double subcatchArea
ac | ha (skipped when auto-area on)
Definition preferencesmanager.h:629
double cnDryTime
days
Definition preferencesmanager.h:646
int conduitBarrels
Definition preferencesmanager.h:597
bool pumpInitStateOn
Definition preferencesmanager.h:603
double conduitRoughness
concrete
Definition preferencesmanager.h:595
double junctionInitDepth
ft | m
Definition preferencesmanager.h:571
QString outletRatingType
Definition preferencesmanager.h:623
double junctionPondedArea
ft2 | m2
Definition preferencesmanager.h:573
double hortonDecay
1/hr
Definition preferencesmanager.h:640
double weirGeom2
length, ft | m
Definition preferencesmanager.h:617
double weirGeom1
height, ft | m
Definition preferencesmanager.h:616
QString weirType
Definition preferencesmanager.h:615
bool outletFlapGate
Definition preferencesmanager.h:626
bool conduitFlapGate
Definition preferencesmanager.h:600
double conduitGeom3
Definition preferencesmanager.h:593
QString outfallType
Definition preferencesmanager.h:576
double conduitLossInlet
Definition preferencesmanager.h:598
double conduitGeom2
Definition preferencesmanager.h:592
double subcatchImpervPct
Definition preferencesmanager.h:632
double conduitLength
ft | m (skipped when auto-length on)
Definition preferencesmanager.h:596
double hortonDryTime
days
Definition preferencesmanager.h:641
int weirEndContractions
Definition preferencesmanager.h:619
QString gageRainFormat
Definition preferencesmanager.h:649
double orificeGeom1
circular diameter, ft | m
Definition preferencesmanager.h:609
double subcatchNImperv
Definition preferencesmanager.h:633
QString dividerType
Definition preferencesmanager.h:587
double junctionSurDepth
ft | m
Definition preferencesmanager.h:572
double junctionMaxDepth
ft | m (0 = auto)
Definition preferencesmanager.h:570
double conduitLossOutlet
Definition preferencesmanager.h:599
double storageFuncExponent
Definition preferencesmanager.h:582
double gaKsat
in/hr | mm/hr
Definition preferencesmanager.h:643
double subcatchNPerv
Definition preferencesmanager.h:634
Definition preferencesmanager.h:424
bool skipSteadyState
Definition preferencesmanager.h:442
double ufK3
UF_K3 (Vitkovsky k3)
Definition preferencesmanager.h:483
bool ignoreRainfall
Definition preferencesmanager.h:433
QString sweepStart
Definition preferencesmanager.h:445
bool allowPonding
Definition preferencesmanager.h:441
QString normalFlowLimited
Slope+Froude.
Definition preferencesmanager.h:463
int maxTrials
Definition preferencesmanager.h:456
double dryDays
Definition preferencesmanager.h:447
bool variableStepOn
Definition preferencesmanager.h:466
double routingStepSec
ROUTING_STEP (seconds, fractional ok)
Definition preferencesmanager.h:454
QString surchargeMethod
Definition preferencesmanager.h:465
bool ignoreRouting
Definition preferencesmanager.h:438
QString flowRouting
Definition preferencesmanager.h:427
bool ignoreQuality
Definition preferencesmanager.h:437
bool ignoreGroundwater
Definition preferencesmanager.h:436
double lengtheningStepSec
LENGTHENING_STEP.
Definition preferencesmanager.h:469
QString nodeContinuity
Definition preferencesmanager.h:473
QString sweepEnd
Definition preferencesmanager.h:446
int reportStepSec
REPORT_STEP (1 minute)
Definition preferencesmanager.h:450
QString forceMainEquation
Definition preferencesmanager.h:464
QString unsteadyFriction
UNSTEADY_FRICTION.
Definition preferencesmanager.h:482
int ruleStepSec
RULE_STEP (0 = use routing step)
Definition preferencesmanager.h:453
QString flowUnits
Definition preferencesmanager.h:425
double minSlopePct
MIN_SLOPE (%)
Definition preferencesmanager.h:443
double headTolerance
HEAD_TOLERANCE.
Definition preferencesmanager.h:457
bool ignoreSnowmelt
Definition preferencesmanager.h:435
double latFlowTolPct
LAT_FLOW_TOL surface = percent.
Definition preferencesmanager.h:459
bool andersonAccel
Definition preferencesmanager.h:474
bool module2DEnabled
Definition preferencesmanager.h:439
double variableStepFactor
VARIABLE_STEP Courant fraction (0 disables)
Definition preferencesmanager.h:467
double sysFlowTolPct
SYS_FLOW_TOL surface = percent.
Definition preferencesmanager.h:458
int threads
Definition preferencesmanager.h:489
QString inertialDamping
"Dampen"
Definition preferencesmanager.h:462
int dryStepSec
DRY_STEP (runoff dry-weather step, 5 min)
Definition preferencesmanager.h:451
double minRoutingStepSec
MINIMUM_STEP (CFL floor)
Definition preferencesmanager.h:468
QString infiltrationModel
Definition preferencesmanager.h:426
bool ignoreRdii
Definition preferencesmanager.h:434
int wetStepSec
WET_STEP (1 minute)
Definition preferencesmanager.h:452
Definition preferencesmanager.h:504
bool meshMinNodeSepOn
Definition preferencesmanager.h:538
double froudeMax
FROUDE_MAX.
Definition preferencesmanager.h:511
double meshThinningTol
normal-dot threshold
Definition preferencesmanager.h:541
double meshMinNodeSepM
Definition preferencesmanager.h:539
double hMove
H_MOVE (m)
Definition preferencesmanager.h:510
bool meshMaxBoundaryEdgeOn
Definition preferencesmanager.h:546
double meshNodeFlattenRadM
Definition preferencesmanager.h:532
double meshMaxArea
0 = unconstrained
Definition preferencesmanager.h:527
int meshThinningPasses
Definition preferencesmanager.h:542
double meshIdwPower
Definition preferencesmanager.h:529
double vfrMinWetFrac
VFR_MIN_WET_FRAC.
Definition preferencesmanager.h:518
double meshMinAngleDeg
Definition preferencesmanager.h:526
QString rainfallMode
RAINFALL_MODE.
Definition preferencesmanager.h:522
int ltsTiers
LTS_TIERS.
Definition preferencesmanager.h:509
bool report2D
REPORT_2D.
Definition preferencesmanager.h:523
double cflNumber
CFL_NUMBER.
Definition preferencesmanager.h:508
double fluxDhEps
FLUX_DH_EPS (m)
Definition preferencesmanager.h:515
bool advection
ADVECTION.
Definition preferencesmanager.h:512
double meshSnapEpsM
Definition preferencesmanager.h:531
double meshBoundaryBufferM
0 = (auto)
Definition preferencesmanager.h:545
double meshMaxBoundaryEdgeM
Definition preferencesmanager.h:547
double limiterEpsilon
LIMITER_EPSILON.
Definition preferencesmanager.h:514
bool couplingAreaAuto
COUPLING_AREA AUTO vs DEFAULT.
Definition preferencesmanager.h:521
bool meshNodesAsVertices
nodes → Steiner vertices
Definition preferencesmanager.h:536
double couplingCd
COUPLING_CD.
Definition preferencesmanager.h:519
bool meshOutputExternal
Definition preferencesmanager.h:550
double meshSimplifyEpsM
Definition preferencesmanager.h:530
bool meshMinSpacingOn
Poisson-disk minimum terrain point spacing.
Definition preferencesmanager.h:543
bool meshThinningOn
Definition preferencesmanager.h:540
double dryDepth
DRY_DEPTH (m)
Definition preferencesmanager.h:513
double theta
THETA.
Definition preferencesmanager.h:507
double meshManningsN
Definition preferencesmanager.h:548
QString faceReconstruction
FACE_RECONSTRUCTION.
Definition preferencesmanager.h:517
double maxTimestepSec
MAX_TIMESTEP (s)
Definition preferencesmanager.h:506
double meshMinSpacingM
the dialog rounds to whole model units
Definition preferencesmanager.h:544
bool meshNodesUseRim
rim elevation instead of terrain
Definition preferencesmanager.h:537
QString cellClosure
CELL_CLOSURE.
Definition preferencesmanager.h:516
int meshMaxSteiner
-1 = unlimited
Definition preferencesmanager.h:528
double meshInitDepth
mesh length units; 0 = dry
Definition preferencesmanager.h:549
double couplingSync
COUPLING_SYNC (0 = every routing step)
Definition preferencesmanager.h:520
Gradient mapping from a normalised value in [0,1] to a QColor.
Definition colorramp.h:71
A mode + count describing how to render a double.
Definition numberformat.h:41