7#ifndef _Ko_BASIC_HISTOGRAM_PRODUCERS_
8#define _Ko_BASIC_HISTOGRAM_PRODUCERS_
18#include "kritapigment_export.h"
28 void clear()
override;
30 void setView(qreal from, qreal size)
override {
31 m_from = from; m_width = size;
38 return m_colorSpace->channels();
54 qint32
getBinAt(
int channel,
int position)
override {
55 return m_bins.at(externalToInternal(channel)).at(position);
59 return m_outLeft.at(externalToInternal(channel));
63 return m_outRight.at(externalToInternal(channel));
76 makeExternalToInternal();
77 return m_external.at(ext);
80 void makeExternalToInternal();
97 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
109 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
119 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
129 KoBasicF16HalfHistogramProducer(
const KoID&
id,
const KoColorSpace *colorSpace);
130 ~KoBasicF16HalfHistogramProducer()
override {}
131 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
155 producer =
new T(
KoID(
id(),
name()), cs);
184 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
225 void addRegionToBin(
const quint8 * pixels,
const quint8 * selectionMask, quint32 nPixels,
const KoColorSpace *colorSpace)
override;
~KoBasicF32HistogramProducer() override
float preferrednessLevelWith(const KoColorSpace *colorSpace) const override
Returns a float in the [0.0, 1.0] range, 0.0 means this is a very generic method.
KoHistogramProducer * generate() override
Factory method, generates a new KoHistogramProducer.
~KoBasicHistogramProducerFactory() override
KoBasicHistogramProducerFactory(const KoID &id, const QString &modelId, const QString &depthId)
bool isCompatibleWith(const KoColorSpace *colorSpace, bool strict=false) const override
Returns if a colorspace can be used with this producer.
~KoBasicHistogramProducer() override
void setView(qreal from, qreal size) override
QList< KoChannelInfo * > channels() override
qint32 outOfViewLeft(int channel) override
virtual int externalToInternal(int ext)
const KoColorSpace * m_colorSpace
qint32 getBinAt(int channel, int position) override
qreal viewFrom() const override
qint32 outOfViewRight(int channel) override
qreal viewWidth() const override
qint32 numberOfBins() override
QVector< qint32 > m_external
const KoID & id() const override
~KoBasicU16HistogramProducer() override
qreal maximalZoom() const override
~KoBasicU8HistogramProducer() override
virtual KoID colorModelId() const =0
virtual KoID colorDepthId() const =0
KoGenericLabHistogramProducerFactory()
~KoGenericLabHistogramProducerFactory() override
bool isCompatibleWith(const KoColorSpace *, bool strict=false) const override
Returns if a colorspace can be used with this producer.
KoHistogramProducer * generate() override
Factory method, generates a new KoHistogramProducer.
float preferrednessLevelWith(const KoColorSpace *) const override
Returns a float in the [0.0, 1.0] range, 0.0 means this is a very generic method.
QList< KoChannelInfo * > m_channelsList
bool isCompatibleWith(const KoColorSpace *, bool strict=false) const override
Returns if a colorspace can be used with this producer.
KoHistogramProducer * generate() override
Factory method, generates a new KoHistogramProducer.
~KoGenericRGBHistogramProducerFactory() override
float preferrednessLevelWith(const KoColorSpace *) const override
Returns a float in the [0.0, 1.0] range, 0.0 means this is a very generic method.
QList< KoChannelInfo * > m_channelsList
~KoGenericRGBHistogramProducer() override
virtual QString id() const
virtual QString name() const
virtual QList< KoChannelInfo * > channels()=0
virtual QString positionToString(qreal pos) const =0
virtual void addRegionToBin(const quint8 *pixels, const quint8 *selectionMask, quint32 nPixels, const KoColorSpace *colorSpace)=0
virtual qreal maximalZoom() const =0
const KoColorSpace * colorSpace(const QString &colorModelId, const QString &colorDepthId, const KoColorProfile *profile)
static KoColorSpaceRegistry * instance()