##// END OF EJS Templates
All the codebase is modified to build with new Variable Controller...
All the codebase is modified to build with new Variable Controller it only builds now there won't be any data update most of the code is broken now ¯\_(ツ)_/¯ Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1110:0e96e473601d
r1348:ea7d1a66f4ab
Show More
SqpColorScale.cpp
60 lines | 1.8 KiB | text/x-c | CppLexer
Alexandre Leroux
Creates color scale for Sciqlop...
r1008 #include "Visualization/SqpColorScale.h"
Alexandre Leroux
Creates method that computes thresholds of a SqpColorScale
r1018 #include <Data/DataSeriesUtils.h>
#include <Visualization/QCPColorMapIterator.h>
Q_LOGGING_CATEGORY(LOG_SqpColorScale, "SqpColorScale")
Alexandre Leroux
Creates color scale for Sciqlop...
r1008 namespace {
const auto DEFAULT_GRADIENT_PRESET = QCPColorGradient::gpJet;
const auto DEFAULT_RANGE = QCPRange{1.0e3, 1.7e7};
} // namespace
Alexandre Leroux
Creates method that computes thresholds of a SqpColorScale
r1018 std::pair<double, double> SqpColorScale::computeThresholds(const SqpColorScale &scale)
{
auto qcpScale = scale.m_Scale;
auto colorMaps = qcpScale->colorMaps();
if (colorMaps.size() != 1) {
return {std::numeric_limits<double>::quiet_NaN(), std::numeric_limits<double>::quiet_NaN()};
}
// Computes thresholds
auto isLogarithmicScale = qcpScale->dataScaleType() == QCPAxis::stLogarithmic;
auto colorMapData = colorMaps.first()->data();
QCPColorMapIterator begin{colorMapData, true};
QCPColorMapIterator end{colorMapData, false};
return DataSeriesUtils::thresholds(begin, end, isLogarithmicScale);
}
Alexandre Leroux
Creates color scale for Sciqlop...
r1008 SqpColorScale::SqpColorScale(QCustomPlot &plot)
: m_Scale{new QCPColorScale{&plot}},
Alexandre Leroux
Minor fix...
r1110 m_AutomaticThreshold{false},
Alexandre Leroux
Creates color scale for Sciqlop...
r1008 m_GradientPreset{DEFAULT_GRADIENT_PRESET}
{
m_Scale->setGradient(m_GradientPreset);
m_Scale->setDataRange(DEFAULT_RANGE);
}
Alexandre Leroux
Updates sqp color scale thresholds (1)...
r1019
void SqpColorScale::updateDataRange() noexcept
{
// Updates data range only if mode is automatic
if (!m_AutomaticThreshold) {
return;
}
double minThreshold, maxThreshold;
std::tie(minThreshold, maxThreshold) = computeThresholds(*this);
if (std::isnan(minThreshold) || std::isnan(maxThreshold)) {
qCCritical(LOG_SqpColorScale())
<< "Can't update data range of color scale: thresholds computed are invalid";
return;
}
// Updates thresholds
m_Scale->setDataRange({minThreshold, maxThreshold});
}