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 */