File indexing completed on 2024-05-26 04:33:54
0001 /* 0002 * SPDX-FileCopyrightText: 2008, 2010 Lukáš Tvrdý <lukast.dev@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_DEFORMPAINTOP_H_ 0008 #define KIS_DEFORMPAINTOP_H_ 0009 0010 #include <brushengine/kis_paintop.h> 0011 #include <kis_types.h> 0012 0013 #include <KisAirbrushOptionData.h> 0014 #include <KisOpacityOption.h> 0015 #include <KisRotationOption.h> 0016 0017 #include "deform_brush.h" 0018 0019 #include "kis_deform_paintop_settings.h" 0020 #include "KisDeformOptionData.h" 0021 #include "KisBrushSizeOptionData.h" 0022 0023 class KisPainter; 0024 0025 class KisDeformPaintOp : public KisPaintOp 0026 { 0027 0028 public: 0029 KisDeformPaintOp(const KisPaintOpSettingsSP settings, KisPainter * painter, KisNodeSP node, KisImageSP image); 0030 ~KisDeformPaintOp() override; 0031 0032 protected: 0033 KisSpacingInformation paintAt(const KisPaintInformation& info) override; 0034 0035 KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override; 0036 0037 KisTimingInformation updateTimingImpl(const KisPaintInformation &info) const override; 0038 0039 private: 0040 0041 KisPaintDeviceSP m_dab; 0042 KisPaintDeviceSP m_dev; 0043 0044 DeformBrush m_deformBrush; 0045 KisDeformOptionData m_deformData; 0046 KisBrushSizeOptionData m_brushSizeData; 0047 0048 KisAirbrushOptionData m_airbrushData; 0049 0050 KisSizeOption m_sizeOption; 0051 KisOpacityOption m_opacityOption; 0052 KisRotationOption m_rotationOption; 0053 KisRateOption m_rateOption; 0054 0055 qreal m_xSpacing; 0056 qreal m_ySpacing; 0057 qreal m_spacing; 0058 }; 0059 0060 #endif // KIS_DEFORMPAINTOP_H_