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

#include <KoSegmentGradient.h>

+ Inheritance diagram for KoGradientSegment::RGBColorInterpolationStrategy:

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

Private Member Functions

 RGBColorInterpolationStrategy ()
 

Private Attributes

const KoColorSpace *const m_colorSpace
 

Static Private Attributes

static RGBColorInterpolationStrategym_instance = 0
 

Detailed Description

Definition at line 132 of file KoSegmentGradient.h.

Constructor & Destructor Documentation

◆ RGBColorInterpolationStrategy()

KoGradientSegment::RGBColorInterpolationStrategy::RGBColorInterpolationStrategy ( )
private

Definition at line 616 of file KoSegmentGradient.cpp.

618{
619}
static KoColorSpaceRegistry * instance()

Member Function Documentation

◆ colorAt()

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

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 631 of file KoSegmentGradient.cpp.

632{
633 const KoColorSpace *mixSpace = dst.colorSpace();
634
635 KoColor startDummy(_start, mixSpace);
636 KoColor endDummy(_end, mixSpace);
637
638 const std::array<quint8*, 2> colors = {{startDummy.data(), endDummy.data()}};
639
640 std::array<qint16, 2> colorWeights{};
641 colorWeights[0] = std::lround((1.0 - t) * qint16_MAX);
642 colorWeights[1] = qint16_MAX - colorWeights[0];
643
644 mixSpace->mixColorsOp()->mixColors(colors.data(), colorWeights.data(), 2, dst.data(), qint16_MAX);
645}
KoMixColorsOp * mixColorsOp
quint8 * data()
Definition KoColor.h:144
const KoColorSpace * colorSpace() const
return the current colorSpace
Definition KoColor.h:82
virtual void mixColors(const quint8 *const *colors, const qint16 *weights, int nColors, quint8 *dst, int weightSum=255) const =0
const qint16 qint16_MAX
Definition kis_global.h:28

References KoColor::colorSpace(), KoColor::data(), KoMixColorsOp::mixColors(), KoColorSpace::mixColorsOp, and qint16_MAX.

◆ instance()

KoGradientSegment::RGBColorInterpolationStrategy * KoGradientSegment::RGBColorInterpolationStrategy::instance ( )
static

Definition at line 621 of file KoSegmentGradient.cpp.

622{
623 if (m_instance == 0) {
625 Q_CHECK_PTR(m_instance);
626 }
627
628 return m_instance;
629}
static RGBColorInterpolationStrategy * m_instance

◆ type()

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

Implements KoGradientSegment::ColorInterpolationStrategy.

Definition at line 138 of file KoSegmentGradient.h.

138 {
139 return COLOR_INTERP_RGB;
140 }
@ COLOR_INTERP_RGB

References COLOR_INTERP_RGB.

Member Data Documentation

◆ m_colorSpace

const KoColorSpace* const KoGradientSegment::RGBColorInterpolationStrategy::m_colorSpace
private

Definition at line 146 of file KoSegmentGradient.h.

◆ m_instance

KoGradientSegment::RGBColorInterpolationStrategy * KoGradientSegment::RGBColorInterpolationStrategy::m_instance = 0
staticprivate

Definition at line 145 of file KoSegmentGradient.h.


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