Krita Source Code Documentation
Loading...
Searching...
No Matches
KoGradientSegment::HSVCWColorInterpolationStrategy Class Reference

#include <KoSegmentGradient.h>

+ Inheritance diagram for KoGradientSegment::HSVCWColorInterpolationStrategy:

Public Member Functions

void colorAt (KoColor &dst, qreal t, const KoColor &start, const KoColor &end) const override
 
int type () const override
 
- Public Member Functions inherited from KoGradientSegment::ColorInterpolationStrategy
 ColorInterpolationStrategy ()
 
virtual ~ColorInterpolationStrategy ()
 

Static Public Member Functions

static HSVCWColorInterpolationStrategyinstance ()
 

Private Member Functions

 HSVCWColorInterpolationStrategy ()
 

Private Attributes

const KoColorSpace *const m_colorSpace
 

Static Private Attributes

static HSVCWColorInterpolationStrategym_instance = 0
 

Detailed Description

Definition at line 149 of file KoSegmentGradient.h.

Constructor & Destructor Documentation

◆ HSVCWColorInterpolationStrategy()

KoGradientSegment::HSVCWColorInterpolationStrategy::HSVCWColorInterpolationStrategy ( )
private

Definition at line 647 of file KoSegmentGradient.cpp.

649{
650}
static KoColorSpaceRegistry * instance()

Member Function Documentation

◆ colorAt()

void KoGradientSegment::HSVCWColorInterpolationStrategy::colorAt ( KoColor & dst,
qreal t,
const KoColor & start,
const KoColor & end ) const
overridevirtual

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 662 of file KoSegmentGradient.cpp.

663{
664 QColor sc;
665 QColor ec;
666
667 start.toQColor(&sc);
668 end.toQColor(&ec);
669
670 int s = static_cast<int>(sc.saturation() + t * (ec.saturation() - sc.saturation()) + 0.5);
671 int v = static_cast<int>(sc.value() + t * (ec.value() - sc.value()) + 0.5);
672 int h;
673
674 if (ec.hue() < sc.hue()) {
675 h = static_cast<int>(ec.hue() + (1 - t) * (sc.hue() - ec.hue()) + 0.5);
676 } else {
677 h = static_cast<int>(ec.hue() + (1 - t) * (360 - ec.hue() + sc.hue()) + 0.5);
678
679 if (h > 359) {
680 h -= 360;
681 }
682 }
683
684 qreal opacity{sc.alphaF() + t * (ec.alphaF() - sc.alphaF())};
685
686 QColor result;
687 result.setHsv(h, s, v);
688 result.setAlphaF(opacity);
689 dst.fromQColor(result);
690}
qreal v
void fromQColor(const QColor &c)
Convenient function for converting from a QColor.
Definition KoColor.cpp:213
void toQColor(QColor *c) const
a convenience method for the above.
Definition KoColor.cpp:198

References KoColor::fromQColor(), KoColor::toQColor(), and v.

◆ instance()

KoGradientSegment::HSVCWColorInterpolationStrategy * KoGradientSegment::HSVCWColorInterpolationStrategy::instance ( )
static

Definition at line 652 of file KoSegmentGradient.cpp.

653{
654 if (m_instance == 0) {
656 Q_CHECK_PTR(m_instance);
657 }
658
659 return m_instance;
660}
static HSVCWColorInterpolationStrategy * m_instance

◆ type()

int KoGradientSegment::HSVCWColorInterpolationStrategy::type ( ) const
inlineoverridevirtual

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 155 of file KoSegmentGradient.h.

155 {
156 return COLOR_INTERP_HSV_CW;
157 }
@ COLOR_INTERP_HSV_CW

References COLOR_INTERP_HSV_CW.

Member Data Documentation

◆ m_colorSpace

const KoColorSpace* const KoGradientSegment::HSVCWColorInterpolationStrategy::m_colorSpace
private

Definition at line 162 of file KoSegmentGradient.h.

◆ m_instance

KoGradientSegment::HSVCWColorInterpolationStrategy * KoGradientSegment::HSVCWColorInterpolationStrategy::m_instance = 0
staticprivate

Definition at line 161 of file KoSegmentGradient.h.


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