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

Slice US.1 (UNIFIED_STYLING plan S1) — adapter interface that lets one ClassificationEditor drive any classified visual. More...

#include "render/classificationscheme.h"
#include <QPair>
#include <QString>
#include <QStringList>
#include <QVector>
#include <functional>
#include <memory>
Include dependency graph for classificationbindings.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::ui::IClassificationBinding
 What ClassificationEditor talks to instead of a concrete model. More...
 
class  openswmmvis::ui::GraduatedRendererBinding
 Bridges the editor's ClassificationScheme onto a 1D per-kind GraduatedRenderer without changing the renderer's JSON. More...
 
class  openswmmvis::ui::SublayerSchemeBinding
 Drives a ClassificationScheme stored by value on a style bag. More...
 
class  openswmmvis::ui::RasterSchemeBinding
 Drives the GraduatedRasterRenderer live on a GISRasterLayer. More...
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 
namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Detailed Description

Slice US.1 (UNIFIED_STYLING plan S1) — adapter interface that lets one ClassificationEditor drive any classified visual.

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

The editor knows nothing about renderers or style bags. It reads a ClassificationScheme via scheme(), writes edits via setScheme(), and asks the binding for the data range + a value sample to run auto-classification. Concrete bindings translate that onto:

  • GraduatedRendererBinding — the 1D per-kind GraduatedRenderer (maps scheme fields onto the renderer's existing accessors, pushing only what changed so unrelated state — e.g. the ramp when only the class count changed — is never clobbered).
  • SublayerSchemeBinding — a SublayerStyle bag that stores a ClassificationScheme by value (std::function getter/setter + sample provider; the same lambda-adapter idiom as ColorSourceBindings in swmm2dresultsstylepanel.cpp).
  • RasterSchemeBinding — a GISRasterLayer's live GraduatedRasterRenderer (scheme + band statistics + cached edges; every push reclassifies against the band sample and invalidates the tile cache).