File indexing completed on 2024-05-12 15:58:27
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_MASK_PROJECTION_PLANE_H 0008 #define __KIS_MASK_PROJECTION_PLANE_H 0009 0010 #include "kis_abstract_projection_plane.h" 0011 0012 #include <QScopedPointer> 0013 0014 /** 0015 * An implementation of the KisAbstractProjectionPlane interface for a 0016 * layer object. 0017 * 0018 * Please note that recalculate() and apply() methods are not defined 0019 * for masks, because the KisLayer code still uses traditional 0020 * methods of KisMask directly. 0021 */ 0022 class KisMaskProjectionPlane : public KisAbstractProjectionPlane 0023 { 0024 public: 0025 KisMaskProjectionPlane(KisMask *mask); 0026 ~KisMaskProjectionPlane() override; 0027 0028 QRect recalculate(const QRect& rect, KisNodeSP filthyNode) override; 0029 void apply(KisPainter *painter, const QRect &rect) override; 0030 0031 QRect needRect(const QRect &rect, KisNode::PositionToFilthy pos) const override; 0032 QRect changeRect(const QRect &rect, KisNode::PositionToFilthy pos) const override; 0033 QRect accessRect(const QRect &rect, KisNode::PositionToFilthy pos) const override; 0034 QRect needRectForOriginal(const QRect &rect) const override; 0035 QRect tightUserVisibleBounds() const override; 0036 0037 KisPaintDeviceList getLodCapableDevices() const override; 0038 0039 private: 0040 struct Private; 0041 const QScopedPointer<Private> m_d; 0042 }; 0043 0044 #endif /* __KIS_MASK_PROJECTION_PLANE_H */