Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_color_source.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2007, 2009 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#ifndef _KIS_DYNAMIC_COLORING_H_
8#define _KIS_DYNAMIC_COLORING_H_
9
10#include "kis_paintop_option.h"
11
12#include <QRect>
13
14#include <KoColor.h>
15#include <KoAbstractGradient.h>
16
17#include <kis_types.h>
18#include <kritapaintop_export.h>
19
22
29class PAINTOP_EXPORT KisColorSource
30{
31public:
32 virtual ~KisColorSource();
33public:
39 virtual void selectColor(double mix, const KisPaintInformation &pi) = 0;
43 virtual void applyColorTransformation(const KoColorTransformation* transfo) = 0;
44 virtual const KoColorSpace* colorSpace() const = 0;
48 virtual void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& _offset) const = 0;
49};
50
51class PAINTOP_EXPORT KisUniformColorSource : public KisColorSource
52{
53public:
55 ~KisUniformColorSource() override;
56 virtual void rotate(double);
57 virtual void resize(double , double);
58 void applyColorTransformation(const KoColorTransformation* transfo) override;
59 const KoColorSpace* colorSpace() const override;
60 void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& offset) const override;
61 const KoColor& uniformColor() const;
62protected:
64};
65
66class PAINTOP_EXPORT KisPlainColorSource : public KisUniformColorSource
67{
68public:
69 KisPlainColorSource(const KoColor& backGroundColor, const KoColor& foreGroundColor);
70 ~KisPlainColorSource() override;
71 void selectColor(double mix, const KisPaintInformation &pi) override;
72private:
76};
77
78class PAINTOP_EXPORT KisGradientColorSource : public KisUniformColorSource
79{
80public:
81 KisGradientColorSource(const KoAbstractGradientSP gradient, const KoColorSpace* workingCS);
82 ~KisGradientColorSource() override;
83 void selectColor(double mix, const KisPaintInformation &pi) override;
84private:
86};
87
89{
90public:
93 void selectColor(double mix, const KisPaintInformation &pi) override;
94};
95
96class PAINTOP_EXPORT KisTotalRandomColorSource : public KisColorSource
97{
98public:
101public:
102 void selectColor(double mix, const KisPaintInformation &pi) override;
103 void applyColorTransformation(const KoColorTransformation* transfo) override;
104 const KoColorSpace* colorSpace() const override;
105 void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& offset) const override;
106 virtual void rotate(double r);
107 virtual void resize(double xs, double ys);
108private:
110};
111
112class PAINTOP_EXPORT KoPatternColorSource : public KisColorSource
113{
114public:
115 KoPatternColorSource(KisPaintDeviceSP _pattern, int _width, int _height, bool _locked);
116 ~KoPatternColorSource() override;
117public:
118 void selectColor(double mix, const KisPaintInformation &pi) override;
119 void applyColorTransformation(const KoColorTransformation* transfo) override;
120 const KoColorSpace* colorSpace() const override;
121 void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& _offset) const override;
122 virtual void rotate(double r);
123 virtual void resize(double xs, double ys);
124private:
126 QRect m_bounds;
128};
129
130#endif
virtual void selectColor(double mix, const KisPaintInformation &pi)=0
virtual void applyColorTransformation(const KoColorTransformation *transfo)=0
virtual const KoColorSpace * colorSpace() const =0
virtual void colorize(KisPaintDeviceSP, const QRect &rect, const QPoint &_offset) const =0
const KoAbstractGradientSP m_gradient
const KoColorSpace * m_colorSpace
const KisPaintDeviceSP m_device