• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

plugins/paintops/libpaintop

  • sources
  • kfour-appscomplete
  • krita
  • plugins
  • paintops
  • libpaintop
kis_color_source.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2006-2007, 2009 Cyrille Berger <[email protected]>
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 
20 class KoColorTransformation;
21 class KisPaintInformation;
22 
29 class PAINTOP_EXPORT KisColorSource
30 {
31 public:
32  virtual ~KisColorSource();
33 public:
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;
52  virtual bool isUniformColor() const = 0;
56  virtual const KoColor& uniformColor() const;
57 };
58 
59 class PAINTOP_EXPORT KisUniformColorSource : public KisColorSource
60 {
61 public:
62  KisUniformColorSource();
63  ~KisUniformColorSource() override;
64  virtual void rotate(double);
65  virtual void resize(double , double);
66  void applyColorTransformation(const KoColorTransformation* transfo) override;
67  const KoColorSpace* colorSpace() const override;
68  void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& offset) const override;
69  bool isUniformColor() const override;
70  const KoColor& uniformColor() const override;
71 protected:
72  KoColor m_color;
73 };
74 
75 class PAINTOP_EXPORT KisPlainColorSource : public KisUniformColorSource
76 {
77 public:
78  KisPlainColorSource(const KoColor& backGroundColor, const KoColor& foreGroundColor);
79  ~KisPlainColorSource() override;
80  void selectColor(double mix, const KisPaintInformation &pi) override;
81 private:
82  KoColor m_backGroundColor;
83  KoColor m_cachedBackGroundColor;
84  KoColor m_foreGroundColor;
85 };
86 
87 class PAINTOP_EXPORT KisGradientColorSource : public KisUniformColorSource
88 {
89 public:
90  KisGradientColorSource(const KoAbstractGradientSP gradient, const KoColorSpace* workingCS);
91  ~KisGradientColorSource() override;
92  void selectColor(double mix, const KisPaintInformation &pi) override;
93 private:
94  const KoAbstractGradientSP m_gradient;
95 };
96 
97 class PAINTOP_EXPORT KisUniformRandomColorSource : public KisUniformColorSource
98 {
99 public:
100  KisUniformRandomColorSource();
101  ~KisUniformRandomColorSource() override;
102  void selectColor(double mix, const KisPaintInformation &pi) override;
103 };
104 
105 class PAINTOP_EXPORT KisTotalRandomColorSource : public KisColorSource
106 {
107 public:
108  KisTotalRandomColorSource();
109  ~KisTotalRandomColorSource() override;
110 public:
111  void selectColor(double mix, const KisPaintInformation &pi) override;
112  void applyColorTransformation(const KoColorTransformation* transfo) override;
113  const KoColorSpace* colorSpace() const override;
114  void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& offset) const override;
115  virtual void rotate(double r);
116  virtual void resize(double xs, double ys);
117  bool isUniformColor() const override;
118 private:
119  const KoColorSpace* m_colorSpace;
120 };
121 
122 class PAINTOP_EXPORT KoPatternColorSource : public KisColorSource
123 {
124 public:
125  KoPatternColorSource(KisPaintDeviceSP _pattern, int _width, int _height, bool _locked);
126  ~KoPatternColorSource() override;
127 public:
128  void selectColor(double mix, const KisPaintInformation &pi) override;
129  void applyColorTransformation(const KoColorTransformation* transfo) override;
130  const KoColorSpace* colorSpace() const override;
131  void colorize(KisPaintDeviceSP, const QRect& rect, const QPoint& _offset) const override;
132  virtual void rotate(double r);
133  virtual void resize(double xs, double ys);
134  bool isUniformColor() const override;
135 private:
136  const KisPaintDeviceSP m_device;
137  QRect m_bounds;
138  bool m_locked;
139 };
140 
141 #endif
QRect
KisColorSource
A color source allow to abstract how a brush is colorized, and to apply transformation.
Definition: kis_color_source.h:29
KisGradientColorSource
Definition: kis_color_source.h:87
KisColorSource::isUniformColor
virtual bool isUniformColor() const =0
KisColorSource::colorSpace
virtual const KoColorSpace * colorSpace() const =0
KisColorSource::colorize
virtual void colorize(KisPaintDeviceSP, const QRect &rect, const QPoint &_offset) const =0
Apply the color on a paint device.
KisTotalRandomColorSource
Definition: kis_color_source.h:105
KisColorSource::applyColorTransformation
virtual void applyColorTransformation(const KoColorTransformation *transfo)=0
Apply a color transformation on the selected color.
KisColorSource::uniformColor
virtual const KoColor & uniformColor() const
Definition: kis_color_source.cpp:28
KisColorSource::selectColor
virtual void selectColor(double mix, const KisPaintInformation &pi)=0
This is function is called to initialize the color that will be used for the dab.
KisUniformColorSource::m_color
KoColor m_color
Definition: kis_color_source.h:72
KisUniformColorSource
Definition: kis_color_source.h:59
KoPatternColorSource
Definition: kis_color_source.h:122
KisUniformRandomColorSource
Definition: kis_color_source.h:97
KisPlainColorSource
Definition: kis_color_source.h:75
QPoint
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 10 2021 23:38:28 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

plugins/paintops/libpaintop

Skip menu "plugins/paintops/libpaintop"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal