File indexing completed on 2024-06-09 04:28:19

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_