File indexing completed on 2024-04-28 05:41:05

0001 /*
0002     Copyright (C) 2013-2014 Volker Krause <vkrause@kde.org>
0003 
0004     This program is free software; you can redistribute it and/or modify it
0005     under the terms of the GNU Library General Public License as published by
0006     the Free Software Foundation; either version 2 of the License, or (at your
0007     option) any later version.
0008 
0009     This program is distributed in the hope that it will be useful, but WITHOUT
0010     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0011     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
0012     License for more details.
0013 
0014     You should have received a copy of the GNU General Public License
0015     along with this program.  If not, see <https://www.gnu.org/licenses/>.
0016 */
0017 
0018 #include "colorizer.h"
0019 
0020 #include <QColor>
0021 
0022 
0023 Colorizer::Colorizer(uint8_t saturation, uint8_t value):
0024     m_saturation(saturation),
0025     m_value(value)
0026 {
0027 }
0028 
0029 QColor Colorizer::nextColor()
0030 {
0031     QColor c = QColor::fromHsv(m_hue, m_saturation, m_value);
0032     ++m_count;
0033 
0034     if (m_count * m_increment >= 360) {
0035         m_count = 0;
0036         m_hue += m_offset;
0037         if ((m_offset * 2) < m_increment && m_increment > 1)
0038             m_increment /= 2;
0039         m_offset /= 2;
0040     }
0041 
0042     m_hue += m_increment;
0043     m_hue = m_hue % 360;
0044 
0045     return c;
0046 }