Krita Source Code Documentation
Loading...
Searching...
No Matches
KoHistogramProducer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2005 Bart Coppens <kde@bartcoppens.be>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
7#ifndef _KO_HISTOGRAM_PRODUCER_
8#define _KO_HISTOGRAM_PRODUCER_
9
10#include <QtGlobal>
11
12#include "kritapigment_export.h"
13
14#include <KoGenericRegistry.h>
15#include <KoID.h>
16
17class QString;
18class KoChannelInfo;
19class KoColorSpace;
20
38class KRITAPIGMENT_EXPORT KoHistogramProducer
39{
40public:
41 KoHistogramProducer() : m_skipTransparent(true), m_skipUnselected(true) {}
43
44 // Methods to change the bins
45
47 virtual void clear() = 0;
48
59 virtual void addRegionToBin(const quint8 * pixels, const quint8 * selectionMask, quint32 nPixels, const KoColorSpace* colorSpace) = 0;
60
61 // Methods to set what exactly is being added to the bins
62 virtual void setView(qreal from, qreal width) = 0;
63 virtual void setSkipTransparent(bool set) {
64 m_skipTransparent = set;
65 }
66 virtual void setSkipUnselected(bool set) {
67 m_skipUnselected = set;
68 }
69
70 // Methods with general information about this specific producer
71 virtual const KoID& id() const = 0;
73 virtual qint32 numberOfBins() = 0;
74 virtual QString positionToString(qreal pos) const = 0;
75 virtual qreal viewFrom() const = 0;
76 virtual qreal viewWidth() const = 0;
77 virtual qreal maximalZoom() const = 0;
78
79 // Methods to get information on the data we have seen
80 virtual qint32 count() = 0;
81 virtual qint32 getBinAt(qint32 channel, qint32 position) = 0;
82 virtual qint32 outOfViewLeft(qint32 channel) = 0;
83 virtual qint32 outOfViewRight(qint32 channel) = 0;
84protected:
87};
88
89class KRITAPIGMENT_EXPORT KoHistogramProducerFactory
90{
91public:
92 explicit KoHistogramProducerFactory(const KoID &id) : m_id(id) {}
94
97
99 virtual bool isCompatibleWith(const KoColorSpace* colorSpace, bool strict = false) const = 0;
100
102 virtual float preferrednessLevelWith(const KoColorSpace* colorSpace) const = 0;
103
104 virtual QString id() const {
105 return m_id.id();
106 }
107
108 virtual QString name() const {
109 return m_id.name();
110 }
111protected:
113};
114
115
116class KRITAPIGMENT_EXPORT KoHistogramProducerFactoryRegistry
117 : public KoGenericRegistry<KoHistogramProducerFactory*>
118{
119public:
124 QList<QString> keysCompatibleWith(const KoColorSpace* colorSpace, bool isStrict=false) const;
125
126private:
129};
130
131#endif // _KO_HISTOGRAM_PRODUCER
PythonPluginManager * instance
KoHistogramProducerFactoryRegistry(const KoHistogramProducerFactoryRegistry &)
KoHistogramProducerFactoryRegistry operator=(const KoHistogramProducerFactoryRegistry &)
virtual QString id() const
virtual bool isCompatibleWith(const KoColorSpace *colorSpace, bool strict=false) const =0
Returns if a colorspace can be used with this producer.
virtual QString name() const
virtual float preferrednessLevelWith(const KoColorSpace *colorSpace) const =0
Returns a float in the [0.0, 1.0] range, 0.0 means this is a very generic method.
virtual KoHistogramProducer * generate()=0
Factory method, generates a new KoHistogramProducer.
KoHistogramProducerFactory(const KoID &id)
virtual void clear()=0
virtual qint32 outOfViewLeft(qint32 channel)=0
virtual void setSkipUnselected(bool set)
virtual qreal viewFrom() const =0
virtual void setSkipTransparent(bool set)
virtual qint32 getBinAt(qint32 channel, qint32 position)=0
virtual qint32 numberOfBins()=0
virtual QList< KoChannelInfo * > channels()=0
virtual qint32 outOfViewRight(qint32 channel)=0
virtual QString positionToString(qreal pos) const =0
virtual void addRegionToBin(const quint8 *pixels, const quint8 *selectionMask, quint32 nPixels, const KoColorSpace *colorSpace)=0
virtual const KoID & id() const =0
virtual qreal viewWidth() const =0
virtual qint32 count()=0
virtual void setView(qreal from, qreal width)=0
virtual qreal maximalZoom() const =0
Definition KoID.h:30