19#ifndef _KIS_HISTOGRAM_PRODUCER_
20#define _KIS_HISTOGRAM_PRODUCER_
23#include <ksharedptr.h>
25#include <kis_colorspace.h>
27#include "kis_generic_registry.h"
29class KisRectIteratorPixel;
50class KisHistogramProducer :
public TDEShared {
52 KisHistogramProducer() : m_skipTransparent(
true), m_skipUnselected(
true) {}
53 virtual ~KisHistogramProducer() {}
73 virtual void setView(
double from,
double width) = 0;
74 virtual void setSkipTransparent(
bool set) { m_skipTransparent = set; }
75 virtual void setSkipUnselected(
bool set) { m_skipUnselected = set; }
78 virtual const KisID& id()
const = 0;
79 virtual TQValueVector<KisChannelInfo *> channels() = 0;
80 virtual TQ_INT32 numberOfBins() = 0;
81 virtual TQString positionToString(
double pos)
const = 0;
82 virtual double viewFrom()
const = 0;
83 virtual double viewWidth()
const = 0;
84 virtual double maximalZoom()
const = 0;
87 virtual TQ_INT32 count() = 0;
88 virtual TQ_INT32 getBinAt(TQ_INT32 channel, TQ_INT32 position) = 0;
89 virtual TQ_INT32 outOfViewLeft(TQ_INT32 channel) = 0;
90 virtual TQ_INT32 outOfViewRight(TQ_INT32 channel) = 0;
92 bool m_skipTransparent;
93 bool m_skipUnselected;
96typedef TDESharedPtr<KisHistogramProducer> KisHistogramProducerSP;
98class KisHistogramProducerFactory {
100 KisHistogramProducerFactory(
const KisID&
id) : m_id(id) {}
101 virtual ~KisHistogramProducerFactory() {}
103 virtual KisHistogramProducerSP generate() = 0;
105 virtual bool isCompatibleWith(KisColorSpace* colorSpace)
const = 0;
107 virtual float preferrednessLevelWith(KisColorSpace* colorSpace)
const = 0;
108 virtual const KisID& id()
const {
return m_id; }
113class KisHistogramProducerFactoryRegistry
116 virtual ~KisHistogramProducerFactoryRegistry();
117 static KisHistogramProducerFactoryRegistry* instance();
119 KisIDList listKeysCompatibleWith(KisColorSpace* colorSpace)
const;
122 KisHistogramProducerFactoryRegistry();
123 KisHistogramProducerFactoryRegistry(
const KisHistogramProducerFactoryRegistry&);
124 KisHistogramProducerFactoryRegistry operator=(
const KisHistogramProducerFactoryRegistry&);
126 static KisHistogramProducerFactoryRegistry* m_singleton;
This class gives some basic information about a channel, that is, one of the components that makes up...
A colorspace is the definition of a certain color model in Chalk.
Base class for registry objects in Chalk.
virtual void clear()=0
Clears the data in this producer, but keeps its other settings.
virtual void addRegionToBin(TQ_UINT8 *pixels, TQ_UINT8 *selectionMask, TQ_UINT32 nPixels, KisColorSpace *colorSpace)=0
Adds the values from the specified array of pixels to the bins – does not reset anything.