File indexing completed on 2024-06-16 04:17:33
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Ashwin Dhakaita <ashwingpdhakaita@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_MY_PAINTOP_H_ 0008 #define KIS_MY_PAINTOP_H_ 0009 0010 #include <kis_types.h> 0011 #include <brushengine/kis_paintop.h> 0012 0013 #include <libmypaint/mypaint-brush.h> 0014 #include <KisAirbrushOptionData.h> 0015 0016 #include "MyPaintPaintOpPreset.h" 0017 #include "MyPaintSurface.h" 0018 0019 class KisPainter; 0020 0021 0022 class KisMyPaintPaintOp : public KisPaintOp 0023 { 0024 0025 public: 0026 0027 KisMyPaintPaintOp(const KisPaintOpSettingsSP settings, KisPainter * painter, KisNodeSP node, KisImageSP image); 0028 ~KisMyPaintPaintOp() override; 0029 0030 protected: 0031 0032 KisSpacingInformation paintAt(const KisPaintInformation& info) override; 0033 0034 KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override; 0035 0036 KisTimingInformation updateTimingImpl(const KisPaintInformation &info) const override; 0037 0038 private: 0039 KisSpacingInformation computeSpacing(const KisPaintInformation &info, qreal lodScale) const; 0040 0041 private: 0042 QScopedPointer<KisMyPaintPaintOpPreset> m_brush; 0043 QScopedPointer<KisMyPaintSurface> m_surface; 0044 KisPaintOpSettingsSP m_settings; 0045 KisAirbrushOptionData m_airBrushData; 0046 KisImageWSP m_image; 0047 double m_dtime, m_radius, m_previousTime = 0; 0048 bool m_isStrokeStarted; 0049 }; 0050 0051 #endif // KIS_MY_PAINTOP_H_