File indexing completed on 2024-06-16 04:17:59

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_FREE_TRANSFORM_STRATEGY_GSL_HELPERS_H
0008 #define __KIS_FREE_TRANSFORM_STRATEGY_GSL_HELPERS_H
0009 
0010 #include <QPointF>
0011 class ToolTransformArgs;
0012 
0013 namespace GSL
0014 {
0015 
0016     struct ScaleResult1D {
0017         ScaleResult1D() : scale(1.0) {}
0018 
0019         QPointF transformedCenter;
0020         qreal scale;
0021         bool isValid = false;
0022     };
0023 
0024     ScaleResult1D calculateScaleX(const ToolTransformArgs &args,
0025                                   const QPointF &staticPointSrc,
0026                                   const QPointF &staticPointDst,
0027                                   const QPointF &movingPointSrc,
0028                                   const QPointF &movingPointDst);
0029 
0030     ScaleResult1D calculateScaleY(const ToolTransformArgs &args,
0031                                   const QPointF &staticPointSrc,
0032                                   const QPointF &staticPointDst,
0033                                   const QPointF &movingPointSrc,
0034                                   const QPointF &movingPointDst);
0035 
0036     struct ScaleResult2D {
0037         ScaleResult2D() : scaleX(1.0), scaleY(1.0) {}
0038 
0039         QPointF transformedCenter;
0040         qreal scaleX;
0041         qreal scaleY;
0042 
0043         bool isValid = false;
0044     };
0045 
0046     ScaleResult2D calculateScale2D(const ToolTransformArgs &args,
0047                                    const QPointF &staticPointSrc,
0048                                    const QPointF &staticPointDst,
0049                                    const QPointF &movingPointSrc,
0050                                    const QPointF &movingPointDst);
0051 
0052     ScaleResult2D calculateScale2DAffine(const ToolTransformArgs &args,
0053                                          const QPointF &staticPointSrc,
0054                                          const QPointF &staticPointDst,
0055                                          const QPointF &movingPointSrc,
0056                                          const QPointF &movingPointDst);
0057 }
0058 
0059 #endif /* __KIS_FREE_TRANSFORM_STRATEGY_GSL_HELPERS_H */