File indexing completed on 2024-06-23 04:28:26

0001 /*
0002  *  SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef __KIS_LIQUIFY_PAINT_HELPER_H
0008 #define __KIS_LIQUIFY_PAINT_HELPER_H
0009 
0010 #include <QScopedPointer>
0011 
0012 class KisLiquifyTransformWorker;
0013 class KisCoordinatesConverter;
0014 class KoPointerEvent;
0015 class KisLiquifyProperties;
0016 class QPainterPath;
0017 class KoCanvasResourceProvider;
0018 
0019 class KisLiquifyPaintHelper
0020 {
0021 public:
0022     KisLiquifyPaintHelper(const KisCoordinatesConverter *converter);
0023     ~KisLiquifyPaintHelper();
0024 
0025     void configurePaintOp(const KisLiquifyProperties &_props,
0026                           KisLiquifyTransformWorker *worker);
0027 
0028     void startPaint(KoPointerEvent *event, const KoCanvasResourceProvider *manager);
0029     void continuePaint(KoPointerEvent *event);
0030     bool endPaint(KoPointerEvent *event);
0031 
0032     void hoverPaint(KoPointerEvent *event);
0033 
0034     QPainterPath brushOutline(const KisLiquifyProperties &props);
0035 
0036 private:
0037     struct Private;
0038     const QScopedPointer<Private> m_d;
0039 };
0040 
0041 #endif /* __KIS_LIQUIFY_PAINT_HELPER_H */