19#include "BDSColourScaleViridis.hh"
29std::vector<std::array<G4double, 3>> BDSColourScaleViridis::data = {
30 {0.267004, 0.004874, 0.329415},
31 {0.277018, 0.050344, 0.375715},
32 {0.282327, 0.094955, 0.417331},
33 {0.282884, 0.13592 , 0.453427},
34 {0.278826, 0.17549 , 0.483397},
35 {0.270595, 0.214069, 0.507052},
36 {0.258965, 0.251537, 0.524736},
37 {0.244972, 0.287675, 0.53726 },
38 {0.229739, 0.322361, 0.545706},
39 {0.214298, 0.355619, 0.551184},
40 {0.19943 , 0.387607, 0.554642},
41 {0.185556, 0.41857 , 0.556753},
42 {0.172719, 0.448791, 0.557885},
43 {0.160665, 0.47854 , 0.558115},
44 {0.149039, 0.508051, 0.55725 },
45 {0.13777 , 0.537492, 0.554906},
46 {0.127568, 0.566949, 0.550556},
47 {0.120565, 0.596422, 0.543611},
48 {0.120638, 0.625828, 0.533488},
49 {0.132268, 0.655014, 0.519661},
50 {0.157851, 0.683765, 0.501686},
51 {0.196571, 0.711827, 0.479221},
52 {0.24607 , 0.73891 , 0.452024},
53 {0.304148, 0.764704, 0.419943},
54 {0.369214, 0.788888, 0.382914},
55 {0.440137, 0.811138, 0.340967},
56 {0.515992, 0.831158, 0.294279},
57 {0.595839, 0.848717, 0.243329},
58 {0.678489, 0.863742, 0.189503},
59 {0.762373, 0.876424, 0.137064},
60 {0.845561, 0.887322, 0.099702},
61 {0.926106, 0.89733 , 0.104071}};
64BDSColourScaleViridis::BDSColourScaleViridis():
65 dataStep(1.0 / (G4double)(data.size()-1))
68BDSColourScaleViridis::~BDSColourScaleViridis()
71G4Colour BDSColourScaleViridis::GetValue(G4double numberFromZeroToOne)
const
73 numberFromZeroToOne = std::min(numberFromZeroToOne, 1.0);
74 numberFromZeroToOne = std::max(0.0, numberFromZeroToOne);
77 G4double arrayCoords = numberFromZeroToOne / dataStep;
78 G4int arrayIndex = (G4int) std::floor(arrayCoords);
80 const auto& value = data.at(arrayIndex);
81 return G4Colour(value[0], value[1], value[2]);