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

#include <KoSegmentGradient.h>

+ Inheritance diagram for KoGradientSegment::HSVCCWColorInterpolationStrategy:

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 HSVCCWColorInterpolationStrategyinstance ()
 

Private Member Functions

 HSVCCWColorInterpolationStrategy ()
 

Private Attributes

const KoColorSpace *const m_colorSpace
 

Static Private Attributes

static HSVCCWColorInterpolationStrategym_instance = 0
 

Detailed Description

Definition at line 165 of file KoSegmentGradient.h.

Constructor & Destructor Documentation

◆ HSVCCWColorInterpolationStrategy()

KoGradientSegment::HSVCCWColorInterpolationStrategy::HSVCCWColorInterpolationStrategy ( )
private

Definition at line 692 of file KoSegmentGradient.cpp.

694{
695}
static KoColorSpaceRegistry * instance()

Member Function Documentation

◆ colorAt()

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

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 708 of file KoSegmentGradient.cpp.

709{
710 QColor sc;
711 QColor se;
712
713 start.toQColor(&sc);
714 end.toQColor(&se);
715
716 int s = static_cast<int>(sc.saturation() + t * (se.saturation() - sc.saturation()) + 0.5);
717 int v = static_cast<int>(sc.value() + t * (se.value() - sc.value()) + 0.5);
718 int h;
719
720 if (sc.hue() < se.hue()) {
721 h = static_cast<int>(sc.hue() + t * (se.hue() - sc.hue()) + 0.5);
722 } else {
723 h = static_cast<int>(sc.hue() + t * (360 - sc.hue() + se.hue()) + 0.5);
724
725 if (h > 359) {
726 h -= 360;
727 }
728 }
729
730 qreal opacity = sc.alphaF() + t * (se.alphaF() - sc.alphaF());
731
732 QColor result;
733 result.setHsv(h, s, v);
734 result.setAlphaF(opacity);
735 dst.fromQColor(result);
736}
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::HSVCCWColorInterpolationStrategy * KoGradientSegment::HSVCCWColorInterpolationStrategy::instance ( )
static

Definition at line 698 of file KoSegmentGradient.cpp.

699{
700 if (m_instance == 0) {
702 Q_CHECK_PTR(m_instance);
703 }
704
705 return m_instance;
706}
static HSVCCWColorInterpolationStrategy * m_instance

◆ type()

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

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 171 of file KoSegmentGradient.h.

171 {
173 }
@ COLOR_INTERP_HSV_CCW

References COLOR_INTERP_HSV_CCW.

Member Data Documentation

◆ m_colorSpace

const KoColorSpace* const KoGradientSegment::HSVCCWColorInterpolationStrategy::m_colorSpace
private

Definition at line 178 of file KoSegmentGradient.h.

◆ m_instance

KoGradientSegment::HSVCCWColorInterpolationStrategy * KoGradientSegment::HSVCCWColorInterpolationStrategy::m_instance = 0
staticprivate

Definition at line 177 of file KoSegmentGradient.h.


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