File indexing completed on 2024-05-12 15:58:46
0001 /* 0002 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 #ifndef _KIS_TRANSPARENCY_MASK_ 0008 #define _KIS_TRANSPARENCY_MASK_ 0009 0010 #include "kis_types.h" 0011 #include "kis_effect_mask.h" 0012 0013 class QRect; 0014 0015 /** 0016 * A transparency mask is a single channel mask that applies a particular 0017 * transparency to the layer the mask belongs to. It differs from an 0018 * adjustment layer in that it only works on its parent layer, while 0019 * adjustment layers work on all layers below it in its layer group. 0020 * 0021 * XXX: Use KisConfig::useProjections() to enable/disable the caching of 0022 * the projection. 0023 */ 0024 class KRITAIMAGE_EXPORT KisTransparencyMask : public KisEffectMask 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 0030 KisTransparencyMask(KisImageWSP image, const QString &name); 0031 KisTransparencyMask(const KisTransparencyMask& rhs); 0032 ~KisTransparencyMask() override; 0033 0034 KisNodeSP clone() const override { 0035 return KisNodeSP(new KisTransparencyMask(*this)); 0036 } 0037 0038 QRect decorateRect(KisPaintDeviceSP &src, KisPaintDeviceSP &dst, 0039 const QRect & rc, 0040 PositionToFilthy maskPos) const override; 0041 QIcon icon() const override; 0042 bool accept(KisNodeVisitor &v) override; 0043 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override; 0044 0045 QRect extent() const override; 0046 QRect exactBounds() const override; 0047 0048 QRect changeRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override; 0049 QRect needRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override; 0050 0051 bool paintsOutsideSelection() const override; 0052 }; 0053 0054 #endif //_KIS_TRANSPARENCY_MASK_