Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_paint_layer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2005 C. Boemann <cbo@boemann.dk>
3 * SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#ifndef KIS_PAINT_LAYER_H_
8#define KIS_PAINT_LAYER_H_
9
10#include "kis_types.h"
11#include "kis_layer.h"
14
15#include <QBitArray>
16
17class KoColorSpace;
18
28class KRITAIMAGE_EXPORT KisPaintLayer : public KisLayer, public KisIndirectPaintingSupport, public KisDecoratedNodeInterface
29{
30
31 Q_OBJECT
32
33public:
41 KisPaintLayer(KisImageWSP image, const QString& name, quint8 opacity, KisPaintDeviceSP dev);
42
49 KisPaintLayer(KisImageWSP image, const QString& name, quint8 opacity);
50
58 KisPaintLayer(KisImageWSP image, const QString& name, quint8 opacity, const KoColorSpace * colorSpace);
62 KisPaintLayer(const KisPaintLayer& rhs);
63 ~KisPaintLayer() override;
64
65 KisNodeSP clone() const override {
66 return KisNodeSP(new KisPaintLayer(*this));
67 }
68
69 bool allowAsChild(KisNodeSP) const override;
70
71 bool needProjection() const override;
72
73 QIcon icon() const override;
74 void setImage(KisImageWSP image) override;
75
77 void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override;
78
79public:
80
81 QRect extent() const override;
82 QRect exactBounds() const override;
83
84 bool accept(KisNodeVisitor &v) override;
85 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override;
86
94 void setChannelLockFlags(const QBitArray& channelFlags);
95
101 const QBitArray& channelLockFlags() const;
102
107
111 KisPaintDeviceSP original() const override;
112
116 bool alphaLocked() const;
117
121 void setAlphaLocked(bool lock);
122
126 bool onionSkinEnabled() const;
127
131 void setOnionSkinEnabled(bool state);
132
138 void flushOnionSkinCache();
139
141
142 bool decorationsVisible() const override;
143 void setDecorationsVisible(bool value, bool update) override;
145
146 void handleKeyframeChannelFrameChange(const KisKeyframeChannel *channel, int time) override;
147 void handleKeyframeChannelFrameAdded(const KisKeyframeChannel *channel, int time) override;
148
149public Q_SLOTS:
150 void slotExternalUpdateOnionSkins();
151
152
153public:
154
155 // KisIndirectPaintingSupport
157 return this;
158 }
159
160protected:
161 // override from KisLayer
162 void copyOriginalToProjection(const KisPaintDeviceSP original,
163 KisPaintDeviceSP projection,
164 const QRect& rect) const override;
165
166 KisKeyframeChannel *requestKeyframeChannel(const QString &id) override;
167 bool supportsKeyframeChannel(const QString &id) override;
169
170private:
171 struct Private;
172 Private * const m_d;
173};
174
176
177#endif // KIS_PAINT_LAYER_H_
178
float value(const T *src, size_t ch)
qreal v
virtual bool decorationsVisible() const =0
virtual void setDecorationsVisible(bool value, bool update)=0
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
KisSharedPtr< KisPaintLayer > KisPaintLayerSP
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
virtual KisKeyframeChannel * requestKeyframeChannel(const QString &id)
virtual bool supportsKeyframeChannel(const QString &id)
virtual QIcon icon() const
void setImage(KisImageWSP image) override
Definition kis_layer.cc:378
QRect exactBounds() const override
QRect extent() const override
void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override
Definition kis_layer.cc:297
KisPaintDeviceSP original() const override=0
virtual void copyOriginalToProjection(const KisPaintDeviceSP original, KisPaintDeviceSP projection, const QRect &rect) const
Definition kis_layer.cc:801
KisBaseNode::PropertyList sectionModelProperties() const override
Definition kis_layer.cc:272
virtual bool needProjection() const
Definition kis_layer.cc:796
virtual void handleKeyframeChannelFrameAdded(const KisKeyframeChannel *channel, int time)
Definition kis_node.cpp:647
virtual KisPaintDeviceList getLodCapableDevices() const
Definition kis_node.cpp:682
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
virtual KisFrameChangeUpdateRecipe handleKeyframeChannelFrameAboutToBeRemovedImpl(const KisKeyframeChannel *channel, int time)
Definition kis_node.cpp:652
virtual void handleKeyframeChannelFrameChange(const KisKeyframeChannel *channel, int time)
Definition kis_node.cpp:642
virtual bool allowAsChild(KisNodeSP) const =0
Private *const m_d
KisPaintDeviceSP paintDevice() const override
KisLayer * layer()
KisNodeSP clone() const override