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

#include <KoBasicHistogramProducers.h>

+ Inheritance diagram for KoBasicHistogramProducer:

Public Member Functions

QList< KoChannelInfo * > channels () override
 
void clear () override
 
qint32 count () override
 
qint32 getBinAt (int channel, int position) override
 
const KoIDid () const override
 
 KoBasicHistogramProducer (const KoID &id, int channelCount, int nrOfBins)
 
 KoBasicHistogramProducer (const KoID &id, int nrOfBins, const KoColorSpace *colorSpace)
 
qint32 numberOfBins () override
 
qint32 outOfViewLeft (int channel) override
 
qint32 outOfViewRight (int channel) override
 
void setView (qreal from, qreal size) override
 
qreal viewFrom () const override
 
qreal viewWidth () const override
 
 ~KoBasicHistogramProducer () override
 
- Public Member Functions inherited from KoHistogramProducer
virtual void addRegionToBin (const quint8 *pixels, const quint8 *selectionMask, quint32 nPixels, const KoColorSpace *colorSpace)=0
 
virtual qint32 getBinAt (qint32 channel, qint32 position)=0
 
 KoHistogramProducer ()
 
virtual qreal maximalZoom () const =0
 
virtual qint32 outOfViewLeft (qint32 channel)=0
 
virtual qint32 outOfViewRight (qint32 channel)=0
 
virtual QString positionToString (qreal pos) const =0
 
virtual void setSkipTransparent (bool set)
 
virtual void setSkipUnselected (bool set)
 
virtual ~KoHistogramProducer ()
 

Protected Types

typedef QVector< quint32 > vBins
 

Protected Member Functions

virtual int externalToInternal (int ext)
 
void makeExternalToInternal ()
 

Protected Attributes

QVector< vBinsm_bins
 
int m_channels
 
const KoColorSpacem_colorSpace
 
qint32 m_count
 
QVector< qint32 > m_external
 
qreal m_from
 
KoID m_id
 
int m_nrOfBins
 
vBins m_outLeft
 
vBins m_outRight
 
qreal m_width
 
- Protected Attributes inherited from KoHistogramProducer
bool m_skipTransparent
 
bool m_skipUnselected
 

Detailed Description

Definition at line 21 of file KoBasicHistogramProducers.h.

Member Typedef Documentation

◆ vBins

typedef QVector<quint32> KoBasicHistogramProducer::vBins
protected

Definition at line 81 of file KoBasicHistogramProducers.h.

Constructor & Destructor Documentation

◆ KoBasicHistogramProducer() [1/2]

KoBasicHistogramProducer::KoBasicHistogramProducer ( const KoID & id,
int channelCount,
int nrOfBins )
explicit

◆ KoBasicHistogramProducer() [2/2]

KoBasicHistogramProducer::KoBasicHistogramProducer ( const KoID & id,
int nrOfBins,
const KoColorSpace * colorSpace )
explicit

Definition at line 40 of file KoBasicHistogramProducers.cpp.

41 : m_nrOfBins(nrOfBins),
42 m_colorSpace(cs),
43 m_id(id)
44{
45 Q_ASSERT(cs);
46 m_channels = cs->channelCount();
47
48 m_bins.resize(m_channels);
49 for (int i = 0; i < m_channels; i++)
50 m_bins[i].resize(m_nrOfBins);
51 m_outLeft.resize(m_channels);
52 m_outRight.resize(m_channels);
53 m_count = 0;
54 m_from = 0.0;
55 m_width = 1.0;
56}

References KoColorSpace::channelCount(), m_bins, m_channels, m_count, m_from, m_nrOfBins, m_outLeft, m_outRight, and m_width.

◆ ~KoBasicHistogramProducer()

KoBasicHistogramProducer::~KoBasicHistogramProducer ( )
inlineoverride

Definition at line 26 of file KoBasicHistogramProducers.h.

26{}

Member Function Documentation

◆ channels()

QList< KoChannelInfo * > KoBasicHistogramProducer::channels ( )
inlineoverridevirtual

Implements KoHistogramProducer.

Reimplemented in KoGenericRGBHistogramProducer, and KoGenericLabHistogramProducer.

Definition at line 37 of file KoBasicHistogramProducers.h.

37 {
38 return m_colorSpace->channels();
39 }
QList< KoChannelInfo * > channels

◆ clear()

void KoBasicHistogramProducer::clear ( )
overridevirtual

Clears the data in this producer, but keeps its other settings

Implements KoHistogramProducer.

Definition at line 59 of file KoBasicHistogramProducers.cpp.

60{
61 m_count = 0;
62 for (int i = 0; i < m_channels; i++) {
63 for (int j = 0; j < m_nrOfBins; j++) {
64 m_bins[i][j] = 0;
65 }
66 m_outRight[i] = 0;
67 m_outLeft[i] = 0;
68 }
69}

References m_bins, m_channels, m_count, m_nrOfBins, m_outLeft, and m_outRight.

◆ count()

qint32 KoBasicHistogramProducer::count ( )
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 50 of file KoBasicHistogramProducers.h.

50 {
51 return m_count;
52 }

◆ externalToInternal()

virtual int KoBasicHistogramProducer::externalToInternal ( int ext)
inlineprotectedvirtual

The order in which channels() returns is not the same as the internal representation, that of the pixel internally. This method converts external usage to internal usage. This method uses some basic assumptions about the layout of the pixel, so extremely exotic spaces might want to override this (see makeExternalToInternal source for those assumptions)

Definition at line 74 of file KoBasicHistogramProducers.h.

74 {
75 if (channels().count() > 0 && m_external.count() == 0) // Set up the translation table
77 return m_external.at(ext);
78 }
QList< KoChannelInfo * > channels() override

References KoHistogramProducer::channels(), and KoHistogramProducer::count().

◆ getBinAt()

qint32 KoBasicHistogramProducer::getBinAt ( int channel,
int position )
inlineoverride

Definition at line 54 of file KoBasicHistogramProducers.h.

54 {
55 return m_bins.at(externalToInternal(channel)).at(position);
56 }
virtual int externalToInternal(int ext)

◆ id()

const KoID & KoBasicHistogramProducer::id ( ) const
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 34 of file KoBasicHistogramProducers.h.

34 {
35 return m_id;
36 }

◆ makeExternalToInternal()

void KoBasicHistogramProducer::makeExternalToInternal ( )
protected

Definition at line 71 of file KoBasicHistogramProducers.cpp.

72{
73 // This function assumes that the pixel is has no 'gaps'. That is to say: if we start
74 // at byte 0, we can get to the end of the pixel by adding consecutive size()s of
75 // the channels
77 uint count = c.count();
78 int currentPos = 0;
79
80 for (uint i = 0; i < count; i++) {
81 for (uint j = 0; j < count; j++) {
82 if (c[j]->pos() == currentPos) {
83 m_external.append(j);
84 break;
85 }
86 }
87 currentPos += c.at(m_external.at(m_external.count() - 1))->size();
88 }
89}
unsigned int uint

References channels(), count(), and m_external.

◆ numberOfBins()

qint32 KoBasicHistogramProducer::numberOfBins ( )
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 40 of file KoBasicHistogramProducers.h.

40 {
41 return m_nrOfBins;
42 }

◆ outOfViewLeft()

qint32 KoBasicHistogramProducer::outOfViewLeft ( int channel)
inlineoverride

Definition at line 58 of file KoBasicHistogramProducers.h.

58 {
59 return m_outLeft.at(externalToInternal(channel));
60 }

◆ outOfViewRight()

qint32 KoBasicHistogramProducer::outOfViewRight ( int channel)
inlineoverride

Definition at line 62 of file KoBasicHistogramProducers.h.

62 {
63 return m_outRight.at(externalToInternal(channel));
64 }

◆ setView()

void KoBasicHistogramProducer::setView ( qreal from,
qreal size )
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 30 of file KoBasicHistogramProducers.h.

30 {
31 m_from = from; m_width = size;
32 }
int size(const Forest< T > &forest)
Definition KisForest.h:1232

◆ viewFrom()

qreal KoBasicHistogramProducer::viewFrom ( ) const
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 43 of file KoBasicHistogramProducers.h.

43 {
44 return m_from;
45 }

◆ viewWidth()

qreal KoBasicHistogramProducer::viewWidth ( ) const
inlineoverridevirtual

Implements KoHistogramProducer.

Definition at line 46 of file KoBasicHistogramProducers.h.

46 {
47 return m_width;
48 }

Member Data Documentation

◆ m_bins

QVector<vBins> KoBasicHistogramProducer::m_bins
protected

Definition at line 82 of file KoBasicHistogramProducers.h.

◆ m_channels

int KoBasicHistogramProducer::m_channels
protected

Definition at line 86 of file KoBasicHistogramProducers.h.

◆ m_colorSpace

const KoColorSpace* KoBasicHistogramProducer::m_colorSpace
protected

Definition at line 87 of file KoBasicHistogramProducers.h.

◆ m_count

qint32 KoBasicHistogramProducer::m_count
protected

Definition at line 85 of file KoBasicHistogramProducers.h.

◆ m_external

QVector<qint32> KoBasicHistogramProducer::m_external
protected

Definition at line 89 of file KoBasicHistogramProducers.h.

◆ m_from

qreal KoBasicHistogramProducer::m_from
protected

Definition at line 84 of file KoBasicHistogramProducers.h.

◆ m_id

KoID KoBasicHistogramProducer::m_id
protected

Definition at line 88 of file KoBasicHistogramProducers.h.

◆ m_nrOfBins

int KoBasicHistogramProducer::m_nrOfBins
protected

Definition at line 86 of file KoBasicHistogramProducers.h.

◆ m_outLeft

vBins KoBasicHistogramProducer::m_outLeft
protected

Definition at line 83 of file KoBasicHistogramProducers.h.

◆ m_outRight

vBins KoBasicHistogramProducer::m_outRight
protected

Definition at line 83 of file KoBasicHistogramProducers.h.

◆ m_width

qreal KoBasicHistogramProducer::m_width
protected

Definition at line 84 of file KoBasicHistogramProducers.h.


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