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

Slice BQ Phase 6.7.1 — MVC model for a single SWMM curve. More...

#include <QObject>
#include <QString>
#include <QVector>
Include dependency graph for curveprovider.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::curve::CurvePoint
 One (x, y) sample on a curve. More...
 
class  openswmmvis::curve::CurveProvider
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::curve
 

Enumerations

enum class  openswmmvis::curve::CurveType {
  openswmmvis::curve::Storage = 1 ,
  openswmmvis::curve::Diversion = 2 ,
  openswmmvis::curve::Rating = 3 ,
  openswmmvis::curve::Shape = 4 ,
  openswmmvis::curve::Control = 5 ,
  openswmmvis::curve::Tidal = 6 ,
  openswmmvis::curve::Pump1 = 7 ,
  openswmmvis::curve::Pump2 = 8 ,
  openswmmvis::curve::Pump3 = 9 ,
  openswmmvis::curve::Pump4 = 10 ,
  openswmmvis::curve::Pump5 = 11
}
 Curve flavour. Numeric values match the engine's TableType (1..11) so static_cast<int>(type) is safe. More...
 

Detailed Description

Slice BQ Phase 6.7.1 — MVC model for a single SWMM curve.

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

One CurveProvider per [CURVES] entry in the project. Owned by a project- scoped CurveRegistry. Acts as the single source of truth for that curve: the editor dialog's grid, line-chart preview, Object Browser property pane, and any future link/node pickers all subscribe to the provider's Qt signals (per [[feedback_mvc_synchronized_uis]]).

Storage invariant: points are strictly ascending in X. Every public mutator validates the post-mutation state against this invariant and refuses any operation that would violate it — emitting mutationRejected(reason) so the caller can surface the rejection. Bulk operations are atomic: either all points are updated, or none.

Type codes are aligned with the engine's openswmm::TableType enum (Storage=1, Diversion=2, Rating=3, Shape=4, Control=5, Tidal=6, Pump1=7..Pump5=11) so casts to/from int are safe across the FFI.