File indexing completed on 2024-05-12 15:58:16
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com> 0003 * SPDX-FileCopyrightText: 2011 Geoffry Song <goffrie@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_GAUSS_RECT_MASK_GENERATOR_H_ 0010 #define _KIS_GAUSS_RECT_MASK_GENERATOR_H_ 0011 0012 #include "kritaimage_export.h" 0013 0014 #include "kis_base_mask_generator.h" 0015 0016 template<typename V> 0017 struct FastRowProcessor; 0018 0019 /** 0020 * This mask generator uses a Gaussian-blurred rectangle 0021 */ 0022 class KRITAIMAGE_EXPORT KisGaussRectangleMaskGenerator : public KisMaskGenerator 0023 { 0024 public: 0025 0026 KisGaussRectangleMaskGenerator(qreal diameter, qreal ratio, qreal fh, qreal fv, int spikes, bool antialiasEdges); 0027 KisGaussRectangleMaskGenerator(const KisGaussRectangleMaskGenerator &rhs); 0028 ~KisGaussRectangleMaskGenerator() override; 0029 KisMaskGenerator* clone() const override; 0030 0031 quint8 valueAt(qreal x, qreal y) const override; 0032 void setScale(qreal scaleX, qreal scaleY) override; 0033 0034 bool shouldVectorize() const override; 0035 KisBrushMaskApplicatorBase* applicator() override; 0036 void resetMaskApplicator(bool forceScalar); 0037 0038 private: 0039 struct Private; 0040 const QScopedPointer<Private> d; 0041 0042 friend struct FastRowProcessor<KisGaussRectangleMaskGenerator>; 0043 }; 0044 0045 #endif