Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHSVOption.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Cyrille Berger <cberger@cberger.net>
3 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#include "KisHSVOption.h"
8
9
13
14
16 : KisCurveOption(data),
17 m_id(data.id)
18{
19}
20
22{
23 return new KisHSVOption(initializeData<KisHueOptionData>(setting));
24}
25
27{
28 return new KisHSVOption(initializeData<KisSaturationOptionData>(setting));
29}
30
32{
33 return new KisHSVOption(initializeData<KisValueOptionData>(setting));
34}
35
37{
38 if (!isChecked()) return;
39
40 if (m_paramId == -1) {
41 m_paramId = transfo->parameterId(m_id.id());
42 }
43
44 qreal v = 0;
45 if (m_id.id() == "h") {
46 const qreal scalingPartCoeff = 1.0;
47 v = computeRotationLikeValue(info, 0, false, scalingPartCoeff, info.isHoveringMode());
48 } else {
49 v = computeSizeLikeValue(info);
50 qreal halfValue = strengthValue() * 0.5;
51 v = (v * strengthValue()) + (0.5 - halfValue);
52 v = (v * 2) - 1;
53 }
54 transfo->setParameter(m_paramId, v);
55 transfo->setParameter(3, 0); //sets the type to HSV.
56 transfo->setParameter(4, false); //sets the colorize to false.
57
65 transfo->setParameter(8, false); //sets the compatibility to false.
66}
67
68template <typename Data>
70{
71 Data data;
72 data.read(setting);
73 return data;
74}
qreal v
qreal computeRotationLikeValue(const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
qreal strengthValue() const
bool isChecked() const
qreal computeSizeLikeValue(const KisPaintInformation &info, bool useStrengthValue=true) const
static KisHSVOption * createSaturationOption(const KisPropertiesConfiguration *setting)
void apply(KoColorTransformation *transfo, const KisPaintInformation &info) const
KisHSVOption(const KisCurveOptionData &data)
static Data initializeData(const KisPropertiesConfiguration *setting)
static KisHSVOption * createValueOption(const KisPropertiesConfiguration *setting)
static KisHSVOption * createHueOption(const KisPropertiesConfiguration *setting)
virtual int parameterId(const QString &name) const
virtual void setParameter(int id, const QVariant &parameter)
QString id() const
Definition KoID.cpp:63