File indexing completed on 2024-06-23 04:28:25
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_CAGE_TRANSFORM_STRATEGY_H 0008 #define __KIS_CAGE_TRANSFORM_STRATEGY_H 0009 0010 #include <QObject> 0011 #include <QScopedPointer> 0012 0013 #include "kis_warp_transform_strategy.h" 0014 0015 class QPointF; 0016 class QPainter; 0017 class KisCoordinatesConverter; 0018 class ToolTransformArgs; 0019 class TransformTransactionProperties; 0020 class QImage; 0021 0022 0023 class KisCageTransformStrategy : public KisWarpTransformStrategy 0024 { 0025 Q_OBJECT 0026 public: 0027 KisCageTransformStrategy(const KisCoordinatesConverter *converter, KoSnapGuide *snapGuide, 0028 ToolTransformArgs ¤tArgs, 0029 TransformTransactionProperties &transaction); 0030 ~KisCageTransformStrategy() override; 0031 0032 protected: 0033 void drawConnectionLines(QPainter &gc, 0034 const QVector<QPointF> &origPoints, 0035 const QVector<QPointF> &transfPoints, 0036 bool isEditingPoints) override; 0037 0038 QImage calculateTransformedImage(ToolTransformArgs ¤tArgs, 0039 const QImage &srcImage, 0040 const QVector<QPointF> &origPoints, 0041 const QVector<QPointF> &transfPoints, 0042 const QPointF &srcOffset, 0043 QPointF *dstOffset) override; 0044 0045 private: 0046 struct Private; 0047 const QScopedPointer<Private> m_d; 0048 }; 0049 0050 #endif /* __KIS_CAGE_TRANSFORM_STRATEGY_H */