File indexing completed on 2024-05-12 15:58:39
0001 /* 0002 * SPDX-FileCopyrightText: 2008-2009 Cyrille Berger <cberger@cberger.net> 0003 * SPDX-FileCopyrightText: 2018 Ivan Santa Maria <ghevan@gmail.com> 0004 * SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef _KIS_RECT_MASK_GENERATOR_H_ 0010 #define _KIS_RECT_MASK_GENERATOR_H_ 0011 0012 #include "kritaimage_export.h" 0013 0014 #include <QScopedPointer> 0015 0016 #include "kis_base_mask_generator.h" 0017 0018 template<typename V> 0019 struct FastRowProcessor; 0020 0021 /** 0022 * Represent, serialize and deserialize a rectangular 8-bit mask. 0023 */ 0024 class KRITAIMAGE_EXPORT KisRectangleMaskGenerator : public KisMaskGenerator 0025 { 0026 public: 0027 0028 KisRectangleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, bool antialiasEdges); 0029 KisRectangleMaskGenerator(const KisRectangleMaskGenerator &rhs); 0030 ~KisRectangleMaskGenerator() override; 0031 0032 KisMaskGenerator* clone() const override; 0033 0034 quint8 valueAt(qreal x, qreal y) const override; 0035 void setScale(qreal scaleX, qreal scaleY) override; 0036 void setSoftness(qreal softness) override; 0037 0038 bool shouldVectorize() const override; 0039 KisBrushMaskApplicatorBase* applicator() override; 0040 void resetMaskApplicator(bool forceScalar); 0041 0042 private: 0043 struct Private; 0044 const QScopedPointer<Private> d; 0045 0046 friend struct FastRowProcessor<KisRectangleMaskGenerator>; 0047 }; 0048 0049 #endif