File indexing completed on 2024-05-19 04:26:13

0001 /*
0002  *  SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
0003  *  SPDX-FileCopyrightText: 2011 Geoffry Song <goffrie@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef KIS_GAUSS_RECT_MASK_GENERATOR_P_H
0009 #define KIS_GAUSS_RECT_MASK_GENERATOR_P_H
0010 
0011 #include <QScopedPointer>
0012 
0013 #include "kis_antialiasing_fade_maker.h"
0014 #include "kis_brush_mask_applicator_base.h"
0015 
0016 struct Q_DECL_HIDDEN KisGaussRectangleMaskGenerator::Private
0017 {
0018     Private(bool enableAntialiasing)
0019         : fadeMaker(*this, enableAntialiasing)
0020     {
0021     }
0022 
0023     Private(const Private &rhs)
0024         : xfade(rhs.xfade),
0025         yfade(rhs.yfade),
0026         halfWidth(rhs.halfWidth),
0027         halfHeight(rhs.halfHeight),
0028         alphafactor(rhs.alphafactor),
0029         fadeMaker(rhs.fadeMaker, *this)
0030     {
0031     }
0032 
0033     qreal xfade {0.0};
0034     qreal yfade {0.0};
0035     qreal halfWidth {0.0};
0036     qreal halfHeight {0.0};
0037     qreal alphafactor {0.0};
0038 
0039     KisAntialiasingFadeMaker2D <Private> fadeMaker;
0040 
0041     QScopedPointer<KisBrushMaskApplicatorBase> applicator;
0042 
0043     inline quint8 value(qreal x, qreal y) const;
0044 
0045 };
0046 
0047 #endif // KIS_GAUSS_RECT_MASK_GENERATOR_P_H