Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_curve_circle_mask_generator.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
3 * SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef _KIS_CURVE_CIRCLE_MASK_GENERATOR_H_
9#define _KIS_CURVE_CIRCLE_MASK_GENERATOR_H_
10
11#include <QList>
12#include <QVector>
13#include <QScopedPointer>
14
15#include "kritaimage_export.h"
17#include "kis_cubic_curve.h"
18
19class KisCubicCurve;
20class QDomElement;
21class QDomDocument;
22
23class QPointF;
24
25template<typename V>
26struct FastRowProcessor;
27
32class KRITAIMAGE_EXPORT KisCurveCircleMaskGenerator : public KisMaskGenerator
33{
34public:
35
36 KisCurveCircleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes,const KisCubicCurve& curve, bool antialiasEdges);
39 KisMaskGenerator* clone() const override;
40
41 quint8 valueAt(qreal x, qreal y) const override;
42
43 void setScale(qreal scaleX, qreal scaleY) override;
44
45 void toXML(QDomDocument& , QDomElement&) const override;
46 void setSoftness(qreal softness) override;
47
48 bool shouldVectorize() const override;
50
51 void setMaskScalarApplicator();
52
53 static void transformCurveForSoftness(qreal softness,const QList<KisCubicCurvePoint> &points, int curveResolution, QVector<qreal> &result);
54
55private:
56
57 qreal norme(qreal a, qreal b) const {
58 return a*a + b*b;
59 }
60
61private:
62 struct Private;
63 const QScopedPointer<Private> d;
64
66};
67
68#endif
const QScopedPointer< Private > d
KisBrushMaskApplicatorBase * applicator() const override
virtual void setSoftness(qreal softness)
virtual KisMaskGenerator * clone() const =0
virtual bool shouldVectorize() const
virtual void toXML(QDomDocument &, QDomElement &) const
virtual quint8 valueAt(qreal x, qreal y) const =0
virtual void setScale(qreal scaleX, qreal scaleY)