Krita Source Code Documentation
Loading...
Searching...
No Matches
KisVisualColorModel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Wolthera van Hovell tot Westerflier <griffinvalley@gmail.com>
3 * SPDX-FileCopyrightText: 2022 Mathias Wein <lynx.mw+kde@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-3.0-or-later
6 */
7
8#ifndef KIS_VISUAL_COLOR_MODEL_H
9#define KIS_VISUAL_COLOR_MODEL_H
10
11#include <QObject>
12#include <QScopedPointer>
13
14#include <KoColor.h>
15
16#include "kritawidgets_export.h"
17
18class KoColorSpace;
20
31class KRITAWIDGETS_EXPORT KisVisualColorModel : public QObject
32{
33 Q_OBJECT
34public:
35 enum ColorModel { None, Channel, HSV, HSL, HSI, HSY, YUV };
36
38 ~KisVisualColorModel() override;
39
40 KoColor currentColor() const;
41 QVector4D channelValues() const;
42 int colorChannelCount() const;
43 ColorModel colorModel() const;
44 QVector4D maxChannelValues() const;
45 void setMaxChannelValues(const QVector4D &maxValues);
54 void copyState(const KisVisualColorModel &other);
58 void setRGBColorModel(ColorModel model);
59 const KoColorSpace* colorSpace() const;
60 bool isHSXModel() const;
61 bool supportsExposure() const;
62 KoColor convertChannelValuesToKoColor(const QVector4D &values) const;
63 QVector4D convertKoColorToChannelValues(KoColor c) const;
64
65public Q_SLOTS:
66
67 void slotSetColor(const KoColor &c);
68 void slotSetColorSpace(const KoColorSpace *cs);
69 void slotSetChannelValues(const QVector4D &values);
73 void slotLoadACSConfig();
74
75private:
76 void loadColorSpace(const KoColorSpace *cs);
77 void emitChannelValues();
78
79Q_SIGNALS:
98 void sigChannelValuesChanged(const QVector4D &values, quint32 channelFlags);
99 void sigNewColor(const KoColor &c);
100
101private:
102 struct Private;
103 const QScopedPointer<Private> m_d;
104
105};
106
108
109#endif // KIS_VISUAL_COLOR_MODEL_H
QSharedPointer< KisVisualColorModel > KisVisualColorModelSP
The KisVisualColorModel class allows manipulating a KoColor using various color models.
void sigColorModelChanged()
sigColorModelChanged is emitted whenever the color model changes.
void sigNewColor(const KoColor &c)
const QScopedPointer< Private > m_d
void sigChannelValuesChanged(const QVector4D &values, quint32 channelFlags)
void sigColorSpaceChanged()
sigColorSpaceChanged notifies that the color space from which the channel values are derived changed,...
Definition flatten.c:229