Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHSVOption Class Reference

#include <KisHSVOption.h>

+ Inheritance diagram for KisHSVOption:

Public Member Functions

void apply (KoColorTransformation *transfo, const KisPaintInformation &info) const
 
- Public Member Functions inherited from KisCurveOption
qreal computeRotationLikeValue (const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
 
qreal computeSizeLikeValue (const KisPaintInformation &info, bool useStrengthValue=true) const
 
ValueComponents computeValueComponents (const KisPaintInformation &info, bool useStrengthValue) const
 
bool isChecked () const
 
bool isRandom () const
 
 KisCurveOption (const KisCurveOptionData &data)
 
 KisCurveOption (KisCurveOption &)=delete
 
KisCurveOptionoperator= (KisCurveOption &)=delete
 
qreal strengthMaxValue () const
 
qreal strengthMinValue () const
 
qreal strengthValue () const
 

Static Public Member Functions

static KisHSVOptioncreateHueOption (const KisPropertiesConfiguration *setting)
 
static KisHSVOptioncreateSaturationOption (const KisPropertiesConfiguration *setting)
 
static KisHSVOptioncreateValueOption (const KisPropertiesConfiguration *setting)
 

Private Member Functions

 KisHSVOption (const KisCurveOptionData &data)
 

Static Private Member Functions

template<typename Data >
static Data initializeData (const KisPropertiesConfiguration *setting)
 

Private Attributes

KoID m_id
 
int m_paramId {-1}
 

Detailed Description

Definition at line 15 of file KisHSVOption.h.

Constructor & Destructor Documentation

◆ KisHSVOption()

KisHSVOption::KisHSVOption ( const KisCurveOptionData & data)
private

Definition at line 15 of file KisHSVOption.cpp.

16 : KisCurveOption(data),
17 m_id(data.id)
18{
19}
KisCurveOption(const KisCurveOptionData &data)

Member Function Documentation

◆ apply()

void KisHSVOption::apply ( KoColorTransformation * transfo,
const KisPaintInformation & info ) const

Theoretically, we might want to make this a user-selectable option, but I doubt anyone would complain. See details in the bugreport:

https://bugs.kde.org/show_bug.cgi?id=462193

Definition at line 36 of file KisHSVOption.cpp.

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}
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
virtual int parameterId(const QString &name) const
virtual void setParameter(int id, const QVariant &parameter)
QString id() const
Definition KoID.cpp:63

References KisCurveOption::computeRotationLikeValue(), KisCurveOption::computeSizeLikeValue(), KoID::id(), KisCurveOption::isChecked(), KisPaintInformation::isHoveringMode(), m_id, m_paramId, KoColorTransformation::parameterId(), KoColorTransformation::setParameter(), KisCurveOption::strengthValue(), and v.

◆ createHueOption()

KisHSVOption * KisHSVOption::createHueOption ( const KisPropertiesConfiguration * setting)
static

Definition at line 21 of file KisHSVOption.cpp.

22{
23 return new KisHSVOption(initializeData<KisHueOptionData>(setting));
24}
KisHSVOption(const KisCurveOptionData &data)

References KisHSVOption().

◆ createSaturationOption()

KisHSVOption * KisHSVOption::createSaturationOption ( const KisPropertiesConfiguration * setting)
static

Definition at line 26 of file KisHSVOption.cpp.

27{
28 return new KisHSVOption(initializeData<KisSaturationOptionData>(setting));
29}

References KisHSVOption().

◆ createValueOption()

KisHSVOption * KisHSVOption::createValueOption ( const KisPropertiesConfiguration * setting)
static

Definition at line 31 of file KisHSVOption.cpp.

32{
33 return new KisHSVOption(initializeData<KisValueOptionData>(setting));
34}

References KisHSVOption().

◆ initializeData()

template<typename Data >
Data KisHSVOption::initializeData ( const KisPropertiesConfiguration * setting)
staticprivate

Definition at line 69 of file KisHSVOption.cpp.

70{
71 Data data;
72 data.read(setting);
73 return data;
74}

Member Data Documentation

◆ m_id

KoID KisHSVOption::m_id
private

Definition at line 31 of file KisHSVOption.h.

◆ m_paramId

int KisHSVOption::m_paramId {-1}
mutableprivate

Definition at line 32 of file KisHSVOption.h.

32{-1};

The documentation for this class was generated from the following files: