##// END OF EJS Templates
Updates sqp color scale thresholds (1)...
Alexandre Leroux -
r1060:1474b0522998
parent child
Show More
@@ -19,6 +19,8 struct SqpColorScale {
19
19
20 explicit SqpColorScale(QCustomPlot &plot);
20 explicit SqpColorScale(QCustomPlot &plot);
21
21
22 void updateDataRange() noexcept;
23
22 /// QCustomPlot object representing the color scale.
24 /// QCustomPlot object representing the color scale.
23 /// @remarks The SqpColorScale instance has not the property on this pointer. The pointer must
25 /// @remarks The SqpColorScale instance has not the property on this pointer. The pointer must
24 /// remain valid throughout the existence of the SqpColorScale instance
26 /// remain valid throughout the existence of the SqpColorScale instance
@@ -33,9 +33,28 std::pair<double, double> SqpColorScale::computeThresholds(const SqpColorScale &
33
33
34 SqpColorScale::SqpColorScale(QCustomPlot &plot)
34 SqpColorScale::SqpColorScale(QCustomPlot &plot)
35 : m_Scale{new QCPColorScale{&plot}},
35 : m_Scale{new QCPColorScale{&plot}},
36 m_AutomaticThreshold{false},
36 m_AutomaticThreshold{true},
37 m_GradientPreset{DEFAULT_GRADIENT_PRESET}
37 m_GradientPreset{DEFAULT_GRADIENT_PRESET}
38 {
38 {
39 m_Scale->setGradient(m_GradientPreset);
39 m_Scale->setGradient(m_GradientPreset);
40 m_Scale->setDataRange(DEFAULT_RANGE);
40 m_Scale->setDataRange(DEFAULT_RANGE);
41 }
41 }
42
43 void SqpColorScale::updateDataRange() noexcept
44 {
45 // Updates data range only if mode is automatic
46 if (!m_AutomaticThreshold) {
47 return;
48 }
49
50 double minThreshold, maxThreshold;
51 std::tie(minThreshold, maxThreshold) = computeThresholds(*this);
52 if (std::isnan(minThreshold) || std::isnan(maxThreshold)) {
53 qCCritical(LOG_SqpColorScale())
54 << "Can't update data range of color scale: thresholds computed are invalid";
55 return;
56 }
57
58 // Updates thresholds
59 m_Scale->setDataRange({minThreshold, maxThreshold});
60 }
General Comments 0
You need to be logged in to leave comments. Login now