File indexing completed on 2024-05-12 15:58:40

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_SAFE_TRANSFORM_H
0008 #define __KIS_SAFE_TRANSFORM_H
0009 
0010 #include <QScopedPointer>
0011 
0012 #include "kritaimage_export.h"
0013 
0014 class QTransform;
0015 class QRect;
0016 class QRectF;
0017 class QPolygonF;
0018 
0019 
0020 class KRITAIMAGE_EXPORT KisSafeTransform
0021 {
0022 public:
0023     KisSafeTransform(const QTransform &transform,
0024                      const QRect &bounds,
0025                      const QRect &srcInterestRect);
0026 
0027     ~KisSafeTransform();
0028 
0029     QPolygonF srcClipPolygon() const;
0030     QPolygonF dstClipPolygon() const;
0031 
0032     QPolygonF mapForward(const QPolygonF &p);
0033     QPolygonF mapBackward(const QPolygonF &p);
0034 
0035     QRectF mapRectForward(const QRectF &rc);
0036     QRectF mapRectBackward(const QRectF &rc);
0037 
0038     QRect mapRectForward(const QRect &rc);
0039     QRect mapRectBackward(const QRect &rc);
0040 
0041 private:
0042     struct Private;
0043     const QScopedPointer<Private> m_d;
0044 };
0045 
0046 #endif /* __KIS_SAFE_TRANSFORM_H */