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
palettedrasterrenderer.h
Go to the documentation of this file.
1
18#ifndef OPENSWMM_RENDER_PALETTEDRASTERRENDERER_H
19#define OPENSWMM_RENDER_PALETTEDRASTERRENDERER_H
20
22
23#include <QColor>
24#include <QHash>
25#include <QList>
26#include <QString>
27
28namespace OpenSWMM::Render
29{
30
36{
37public:
39 struct Class
40 {
41 int value = 0;
42 QString label;
43 QColor color;
44 };
45
47 ~PalettedRasterRenderer() override = default;
48
49 [[nodiscard]] const QList<Class> &classes() const { return m_classes; }
50 void setClasses(QList<Class> classes);
51
55 [[nodiscard]] QString paletteName() const { return m_paletteName; }
56 void setPaletteName(QString name);
57
60 void buildClassesFromValues(const QList<int> &uniqueValues);
61
62 // IRasterRenderer.
63 [[nodiscard]] QString rendererId() const override
64 {
65 return QStringLiteral("palettedraster");
66 }
67 [[nodiscard]] QColor colorForValue(double value,
68 bool isNoData = false) const override;
69 [[nodiscard]] QList<LegendSymbolItem> legendSymbolItems() const override;
70 [[nodiscard]] QJsonObject toJson() const override;
71 void fromJson(const QJsonObject &j) override;
72 [[nodiscard]] std::unique_ptr<IRasterRenderer> clone() const override;
73
74private:
75 [[nodiscard]] QColor paletteColor(int index) const;
76 void rebuildIndex();
77
78 QList<Class> m_classes;
79 QHash<int, int> m_valueToIndex;
80 QString m_paletteName = QStringLiteral("Tab10");
81};
82
83} // namespace OpenSWMM::Render
84
85#endif // OPENSWMM_RENDER_PALETTEDRASTERRENDERER_H
Abstract interface — every raster layer's paint path goes here.
Definition irasterrenderer.h:66
Discrete value → colour raster renderer (categorical rasters).
Definition palettedrasterrenderer.h:36
void setClasses(QList< Class > classes)
Definition palettedrasterrenderer.cpp:42
QString paletteName() const
Definition palettedrasterrenderer.h:55
void setPaletteName(QString name)
Definition palettedrasterrenderer.cpp:48
const QList< Class > & classes() const
Definition palettedrasterrenderer.h:49
QList< LegendSymbolItem > legendSymbolItems() const override
Returns one LegendSymbolItem per visible legend row. Drives the legend dock, the on-canvas legend ove...
Definition palettedrasterrenderer.cpp:98
void buildClassesFromValues(const QList< int > &uniqueValues)
Definition palettedrasterrenderer.cpp:70
void fromJson(const QJsonObject &j) override
Restores this renderer from a JSON object previously produced by toJson(). Implementations should tol...
Definition palettedrasterrenderer.cpp:132
QColor colorForValue(double value, bool isNoData=false) const override
Returns the display colour for one raw pixel value.
Definition palettedrasterrenderer.cpp:85
QJsonObject toJson() const override
Serialises this renderer to a JSON object. The "id" field equals rendererId(); remaining keys are ren...
Definition palettedrasterrenderer.cpp:115
QString rendererId() const override
Stable string id ("singlebandpseudocolor", "singlebandgray", "paletted", "hillshade",...
Definition palettedrasterrenderer.h:63
std::unique_ptr< IRasterRenderer > clone() const override
Deep copy. Owning layers / map presets / undo stack call this when they need a renderer snapshot deco...
Definition palettedrasterrenderer.cpp:151
Sister interface to IFeatureRenderer for single-band raster layers.
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
Definition gisrasterlayer.h:40
QString name
Definition sectionmodelbuilders.cpp:474
Definition palettedrasterrenderer.h:40
QString label
Definition palettedrasterrenderer.h:42
int value
Definition palettedrasterrenderer.h:41
QColor color
Definition palettedrasterrenderer.h:43