File indexing completed on 2024-09-22 04:08:41
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef _KIS_ROUNDMARKEROP_H_ 0008 #define _KIS_ROUNDMARKEROP_H_ 0009 0010 #include <QRect> 0011 0012 #include <kis_paintop.h> 0013 #include <kis_types.h> 0014 #include <KisStandardOptions.h> 0015 #include <KisSpacingOption.h> 0016 #include "KisRoundMarkerOpOptionData.h" 0017 0018 0019 class QPointF; 0020 class KisPaintOpSettings; 0021 class KisPainter; 0022 0023 class KisRoundMarkerOp: public KisPaintOp 0024 { 0025 public: 0026 KisRoundMarkerOp(KisPaintOpSettingsSP settings, KisPainter* painter, KisNodeSP node, KisImageSP image); 0027 ~KisRoundMarkerOp() override; 0028 0029 protected: 0030 0031 KisSpacingInformation paintAt(const KisPaintInformation& info) override; 0032 0033 KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override; 0034 0035 private: 0036 KisSpacingInformation computeSpacing(const KisPaintInformation &info, qreal diameter) const; 0037 0038 private: 0039 bool m_firstRun; 0040 KisPaintDeviceSP m_tempDev; 0041 KisSizeOption m_sizeOption; 0042 KisSpacingOption m_spacingOption; 0043 QPointF m_lastPaintPos; 0044 qreal m_lastRadius; 0045 KisRoundMarkerOpOptionData m_markerOption; 0046 }; 0047 0048 #endif // _KIS_ROUNDMARKEROP_H_