File indexing completed on 2024-06-23 04:27:38
0001 /* 0002 * SPDX-FileCopyrightText: 2008-2011 Lukáš Tvrdý <lukast.dev@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_CURVEPAINTOP_H_ 0008 #define KIS_CURVEPAINTOP_H_ 0009 0010 #include <brushengine/kis_paintop.h> 0011 #include <kis_types.h> 0012 #include <KisCurveStandardOptions.h> 0013 #include <KisCurveOpOptionData.h> 0014 #include <KisOpacityOption.h> 0015 0016 class KisPainter; 0017 0018 class KisCurvePaintOp : public KisPaintOp 0019 { 0020 0021 public: 0022 KisCurvePaintOp(const KisPaintOpSettingsSP settings, KisPainter * painter, KisNodeSP node, KisImageSP image); 0023 ~KisCurvePaintOp() override; 0024 0025 void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance) override; 0026 0027 protected: 0028 KisSpacingInformation paintAt(const KisPaintInformation& info) override; 0029 0030 KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override; 0031 0032 private: 0033 void paintLine(KisPaintDeviceSP dab, const KisPaintInformation &pi1, const KisPaintInformation &pi2); 0034 0035 private: 0036 KisPaintDeviceSP m_dab; 0037 KisPaintDeviceSP m_dev; 0038 0039 KisCurveOpOptionData m_curveOpOption; 0040 KisOpacityOption m_opacityOption; 0041 KisLineWidthOption m_lineWidthOption; 0042 KisCurvesOpacityOption m_curvesOpacityOption; 0043 0044 QList<QPointF> m_points; 0045 KisPainter * m_painter; 0046 0047 }; 0048 0049 #endif // KIS_CURVEPAINTOP_H_