Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_transform_mask.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef _KIS_TRANSFORM_MASK_
7#define _KIS_TRANSFORM_MASK_
8
9#include <QScopedPointer>
10
11#include "kis_types.h"
12#include "kis_effect_mask.h"
14
16
21class KRITAIMAGE_EXPORT KisTransformMask : public KisEffectMask, public KisDelayedUpdateNodeInterface
22{
23 Q_OBJECT
24
25public:
26
30 KisTransformMask(KisImageWSP image, const QString &name);
31
32 ~KisTransformMask() override;
33
34 QIcon icon() const override;
35
36 KisNodeSP clone() const override {
37 return KisNodeSP(new KisTransformMask(*this));
38 }
39
40 KisPaintDeviceSP paintDevice() const override;
41
42 bool accept(KisNodeVisitor &v) override;
43 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override;
44
46
49 const QRect & rc,
50 PositionToFilthy maskPos,
51 KisRenderPassFlags flags) const override;
52
53 QRect changeRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
54 QRect needRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
55
56 QRect extent() const override;
57 QRect exactBounds() const override;
58 QRect sourceDataBounds() const;
59
60 void setImage(KisImageWSP image) override;
61
62 void setTransformParamsWithUndo(KisTransformMaskParamsInterfaceSP params, KUndo2Command *parentCommand);
63 void setTransformParams(KisTransformMaskParamsInterfaceSP params);
64 KisTransformMaskParamsInterfaceSP transformParams() const;
65
66 bool staticImageCacheIsValid() const;
67 void recalculateStaticImage();
68 KisPaintDeviceSP buildPreviewDevice();
69 KisPaintDeviceSP buildSourcePreviewDevice();
70
75 void overrideStaticCacheDevice(KisPaintDeviceSP device);
76
77 qint32 x() const override;
78 qint32 y() const override;
79
80 void setX(qint32 x) override;
81 void setY(qint32 y) override;
82
83 void forceUpdateTimedNode() override;
84 bool hasPendingTimedUpdates() const override;
85
86 void threadSafeForceStaticImageUpdate(const QRect &extraUpdateRect);
87 void threadSafeForceStaticImageUpdate();
88
89 void syncLodCache() override;
90
92
93 void setTestingInterface(KisTransformMaskTestingInterface *interface);
95
96protected:
97 KisKeyframeChannel *requestKeyframeChannel(const QString &id) override;
98 bool supportsKeyframeChannel(const QString &id) override;
99
100Q_SIGNALS:
102
103private Q_SLOTS:
104 void slotDelayedStaticUpdate();
105 void slotInternalForceStaticImageUpdate();
106
107 private:
108 void startAsyncRegenerationJob();
109 void forceStartAsyncRegenerationJob();
110
111private:
112 struct Private;
113 const QScopedPointer<Private> m_d;
114};
115
116#endif //_KIS_TRANSFORM_MASK_
qreal v
The KisDelayedUpdateNodeInterface class is an interface for nodes that delay their real updates with ...
virtual void forceUpdateTimedNode()=0
forceUpdateTimedNode forces the node to regenerate its project. The update might be asynchronous,...
virtual bool hasPendingTimedUpdates() const =0
QIcon icon() const override
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
qint32 x() const override
Definition kis_mask.cc:431
KisKeyframeChannel * requestKeyframeChannel(const QString &id) override
Definition kis_mask.cc:509
bool supportsKeyframeChannel(const QString &id) override
Definition kis_mask.cc:523
void setImage(KisImageWSP image) override
Definition kis_mask.cc:103
QRect needRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
Definition kis_mask.cc:366
virtual QRect decorateRect(KisPaintDeviceSP &src, KisPaintDeviceSP &dst, const QRect &rc, PositionToFilthy maskPos, KisRenderPassFlags flags) const
Definition kis_mask.cc:270
qint32 y() const override
Definition kis_mask.cc:438
void setY(qint32 y) override
Definition kis_mask.cc:456
void setX(qint32 x) override
Definition kis_mask.cc:445
QRect changeRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
Definition kis_mask.cc:386
QRect exactBounds() const override
Definition kis_mask.cc:411
QRect extent() const override
Definition kis_mask.cc:391
KisPaintDeviceSP paintDevice() const override
Definition kis_mask.cc:223
virtual KisPaintDeviceList getLodCapableDevices() const
Definition kis_node.cpp:682
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
virtual void syncLodCache()
Definition kis_node.cpp:677
KisNodeSP clone() const override
void sigInternalForceStaticImageUpdate()
KisTransformMaskTestingInterface * testingInterface() const
const QScopedPointer< Private > m_d