File indexing completed on 2024-05-12 15:58:11
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_WORKER_H 0008 #define __KIS_CAGE_TRANSFORM_WORKER_H 0009 0010 #include <QScopedPointer> 0011 #include <kritaimage_export.h> 0012 #include <kis_types.h> 0013 0014 class QImage; 0015 0016 class KRITAIMAGE_EXPORT KisCageTransformWorker 0017 { 0018 public: 0019 KisCageTransformWorker(const QRect &deviceNonDefaultRegion, 0020 const QVector<QPointF> &origCage, 0021 KoUpdater *progress, 0022 int pixelPrecision = 8); 0023 0024 KisCageTransformWorker(const QImage &srcImage, 0025 const QPointF &srcImageOffset, 0026 const QVector<QPointF> &origCage, 0027 KoUpdater *progress, 0028 int pixelPrecision = 8); 0029 0030 ~KisCageTransformWorker(); 0031 0032 void prepareTransform(); 0033 void setTransformedCage(const QVector<QPointF> &transformedCage); 0034 void run(KisPaintDeviceSP srcDevice, KisPaintDeviceSP dstDevice); 0035 0036 QRect approxChangeRect(const QRect &rc); 0037 QRect approxNeedRect(const QRect &rc, const QRect &fullBounds); 0038 0039 QImage runOnQImage(QPointF *newOffset); 0040 0041 private: 0042 struct Private; 0043 const QScopedPointer<Private> m_d; 0044 }; 0045 0046 #endif /* __KIS_CAGE_TRANSFORM_WORKER_H */