11#include <QDomDocument>
53 d->transformedFadeX =
d->xfadecoef *
d->safeSoftnessCoeff;
54 d->transformedFadeY =
d->yfadecoef *
d->safeSoftnessCoeff;
68 return d->applicator.data();
78 qreal n =
norme(xr *
d->xcoef, yr *
d->ycoef);
79 if (n > 1.0)
return 255;
87 qreal nf =
norme(xr *
d->transformedFadeX,
88 yr *
d->transformedFadeY);
90 if (nf < 1.0)
return 0;
91 return 255 * n * (nf - 1.0) / (nf - n);
97 d->safeSoftnessCoeff = qreal(1.0) / qMax(qreal(0.01),
softness);
99 d->transformedFadeX =
d->xfadecoef *
d->safeSoftnessCoeff;
100 d->transformedFadeY =
d->yfadecoef *
d->safeSoftnessCoeff;
auto createOptimizedClass(Args &&...param)
auto createScalarClass(Args &&...params)
void setSoftness(qreal softness) override
quint8 valueAt(qreal x, qreal y) const override
const QScopedPointer< Private > d
KisMaskGenerator * clone() const override
KisCircleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, bool antialiasEdges)
void setScale(qreal scaleX, qreal scaleY) override
qreal norme(qreal a, qreal b) const
void setMaskScalarApplicator()
QScopedPointer< KisBrushMaskApplicatorBase > applicator
~KisCircleMaskGenerator() override
bool shouldVectorize() const override
virtual void setSoftness(qreal softness)
virtual bool shouldSupersample() const
qreal verticalFade() const
void fixRotation(qreal &xr, qreal &yr) const
qreal effectiveSrcHeight() const
virtual void setScale(qreal scaleX, qreal scaleY)
qreal horizontalFade() const
qreal effectiveSrcWidth() const
static bool qFuzzyCompare(half p1, half p2)
const KoID DefaultId("default", ki18n("Default"))
generate Krita default mask generator