##// END OF EJS Templates
Some WIP refactoring, trying to remove TimeController object...
Some WIP refactoring, trying to remove TimeController object SciQLOP core should be usable OOTB without creating controllers objects. Time range should be given on variable creation not taken from a global object. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1017:d684e1205d9a
r1345:ce477e992869
Show More
QCPColorMapIterator.cpp
58 lines | 1.4 KiB | text/x-c | CppLexer
/ gui / src / Visualization / QCPColorMapIterator.cpp
#include "Visualization/QCPColorMapIterator.h"
#include <Visualization/qcustomplot.h>
QCPColorMapIterator::QCPColorMapIterator(QCPColorMapData *data, bool begin)
: m_Data{data}, m_KeyIndex{begin ? 0 : data->keySize()}, m_ValueIndex{0}
{
updateValue();
}
QCPColorMapIterator &QCPColorMapIterator::operator++()
{
// Increments indexes
++m_ValueIndex;
if (m_ValueIndex == m_Data->valueSize()) {
++m_KeyIndex;
m_ValueIndex = 0;
}
// Updates value
updateValue();
return *this;
}
QCPColorMapIterator QCPColorMapIterator::operator++(int)
{
auto result = *this;
this->operator++();
return result;
}
QCPColorMapIterator::pointer QCPColorMapIterator::operator->() const
{
return &m_Value;
}
QCPColorMapIterator::reference QCPColorMapIterator::operator*() const
{
return m_Value;
}
bool QCPColorMapIterator::operator==(const QCPColorMapIterator &other)
{
return std::tie(m_Data, m_KeyIndex, m_ValueIndex)
== std::tie(other.m_Data, other.m_KeyIndex, other.m_ValueIndex);
}
bool QCPColorMapIterator::operator!=(const QCPColorMapIterator &other)
{
return !(*this == other);
}
void QCPColorMapIterator::updateValue()
{
m_Value = m_KeyIndex != m_Data->keySize() ? m_Data->cell(m_KeyIndex, m_ValueIndex)
: std::numeric_limits<double>::quiet_NaN();
}