File indexing completed on 2024-05-12 15:58:14
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com> 0003 * SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _KIS_CURVE_RECT_MASK_GENERATOR_H_ 0009 #define _KIS_CURVE_RECT_MASK_GENERATOR_H_ 0010 0011 #include "kritaimage_export.h" 0012 0013 class KisCubicCurve; 0014 class QDomElement; 0015 class QDomDocument; 0016 0017 #include "kis_base_mask_generator.h" 0018 0019 template<typename V> 0020 struct FastRowProcessor; 0021 0022 /** 0023 * Curve based softness for this rectangular mask generator 0024 */ 0025 class KRITAIMAGE_EXPORT KisCurveRectangleMaskGenerator : public KisMaskGenerator 0026 { 0027 public: 0028 0029 KisCurveRectangleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, const KisCubicCurve& curve, bool antialiasEdges); 0030 KisCurveRectangleMaskGenerator(const KisCurveRectangleMaskGenerator &rhs); 0031 ~KisCurveRectangleMaskGenerator() override; 0032 KisMaskGenerator* clone() const override; 0033 0034 quint8 valueAt(qreal x, qreal y) const override; 0035 0036 void setScale(qreal scaleX, qreal scaleY) override; 0037 0038 void toXML(QDomDocument& , QDomElement&) const override; 0039 0040 void setSoftness(qreal softness) override; 0041 0042 bool shouldVectorize() const override; 0043 KisBrushMaskApplicatorBase* applicator() override; 0044 void resetMaskApplicator(bool forceScalar); 0045 0046 private: 0047 struct Private; 0048 const QScopedPointer<Private> d; 0049 0050 friend struct FastRowProcessor<KisCurveRectangleMaskGenerator>; 0051 }; 0052 0053 #endif