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
scalarramplut.h
Go to the documentation of this file.
1
21#ifndef OPENSWMM_RENDER_SCALARRAMPLUT_H
22#define OPENSWMM_RENDER_SCALARRAMPLUT_H
23
24#include <QtGlobal>
25
26#include <algorithm>
27#include <cmath>
28
29namespace OpenSWMM::Render
30{
31
33{
36 static constexpr int kSize = 256;
37
41 [[nodiscard]] static double normalize(double value, double vMin, double vMax)
42 {
43 if (!(vMax > vMin) || std::isnan(value)) return 0.0;
44 return std::clamp((value - vMin) / (vMax - vMin), 0.0, 1.0);
45 }
46
48 [[nodiscard]] static int indexFor(double value, double vMin, double vMax)
49 {
50 return int(std::lround(normalize(value, vMin, vMax) * (kSize - 1)));
51 }
52
55 [[nodiscard]] static double positionForTexel(int i)
56 {
57 return double(std::clamp(i, 0, kSize - 1)) / double(kSize - 1);
58 }
59};
60
61} // namespace OpenSWMM::Render
62
63#endif // OPENSWMM_RENDER_SCALARRAMPLUT_H
size_t i
Definition contourjob.cpp:27
Definition gisrasterlayer.h:40
Definition scalarramplut.h:33
static int indexFor(double value, double vMin, double vMax)
Definition scalarramplut.h:48
static double positionForTexel(int i)
Definition scalarramplut.h:55
static double normalize(double value, double vMin, double vMax)
Definition scalarramplut.h:41
static constexpr int kSize
Definition scalarramplut.h:36
double
Definition swmmpollutantpropertyadapter.cpp:50