Krita Source Code Documentation
Loading...
Searching...
No Matches
KoMixColorsOpImpl< _CSTrait >::MixerImpl Class Reference

#include <KoMixColorsOpImpl.h>

+ Inheritance diagram for KoMixColorsOpImpl< _CSTrait >::MixerImpl:

Public Member Functions

void accumulate (const quint8 *data, const qint16 *weights, int weightSum, int nPixels) override
 
void accumulateAverage (const quint8 *data, int nPixels) override
 
void computeMixedColor (quint8 *data) override
 
qint64 currentWeightsSum () const override
 
 MixerImpl ()
 
- Public Member Functions inherited from KoMixColorsOp::Mixer
virtual ~Mixer ()
 

Private Attributes

MixDataResult result
 

Detailed Description

template<class _CSTrait>
class KoMixColorsOpImpl< _CSTrait >::MixerImpl

Definition at line 309 of file KoMixColorsOpImpl.h.

Constructor & Destructor Documentation

◆ MixerImpl()

template<class _CSTrait >
KoMixColorsOpImpl< _CSTrait >::MixerImpl::MixerImpl ( )
inline

Definition at line 312 of file KoMixColorsOpImpl.h.

313 {
314 }

Member Function Documentation

◆ accumulate()

template<class _CSTrait >
void KoMixColorsOpImpl< _CSTrait >::MixerImpl::accumulate ( const quint8 * data,
const qint16 * weights,
int weightSum,
int nPixels )
inlineoverridevirtual

Add nPixels pixels pointed by data to the mixing sum. The passed pixels are weighted by coefficients in weights.

Implements KoMixColorsOp::Mixer.

Definition at line 316 of file KoMixColorsOpImpl.h.

317 {
318 result.accumulateColors(PointerToArray(data, _CSTrait::pixelSize), WeightsWrapper(weights, weightSum), nPixels);
319 }
void accumulateColors(AbstractSource source, WeightsWrapper weightsWrapper, int nColors)

◆ accumulateAverage()

template<class _CSTrait >
void KoMixColorsOpImpl< _CSTrait >::MixerImpl::accumulateAverage ( const quint8 * data,
int nPixels )
inlineoverridevirtual

Add nPixels pixels pointed by data to the mixing sum. The passed pixels are weighted uniformly, that is, each pixel has implicit weight of 1.

Implements KoMixColorsOp::Mixer.

Definition at line 321 of file KoMixColorsOpImpl.h.

322 {
323 result.accumulateColors(PointerToArray(data, _CSTrait::pixelSize), NoWeightsSurrogate(nPixels), nPixels);
324 }

◆ computeMixedColor()

template<class _CSTrait >
void KoMixColorsOpImpl< _CSTrait >::MixerImpl::computeMixedColor ( quint8 * data)
inlineoverridevirtual

Calculate the final mixed color. This function may be called as many times as needed on any stage of the mixing.

Implements KoMixColorsOp::Mixer.

Definition at line 326 of file KoMixColorsOpImpl.h.

327 {
329 }

◆ currentWeightsSum()

template<class _CSTrait >
qint64 KoMixColorsOpImpl< _CSTrait >::MixerImpl::currentWeightsSum ( ) const
inlineoverridevirtual

Return the current sum of the weights of the averaging algorithm. That might be needed to make a decision whether we had a meaningful amount of data passed.

Implements KoMixColorsOp::Mixer.

Definition at line 331 of file KoMixColorsOpImpl.h.

332 {
333 return result.currentWeightsSum();
334 }

Member Data Documentation

◆ result

template<class _CSTrait >
MixDataResult KoMixColorsOpImpl< _CSTrait >::MixerImpl::result
private

Definition at line 337 of file KoMixColorsOpImpl.h.


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