File indexing completed on 2024-05-12 15:57:00
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KISBEZIERPATCH_H 0008 #define KISBEZIERPATCH_H 0009 0010 #include "kritaglobal_export.h" 0011 0012 #include <QRectF> 0013 #include <array> 0014 0015 class QDebug; 0016 0017 class KRITAGLOBAL_EXPORT KisBezierPatch 0018 { 0019 public: 0020 enum ControlPointType { 0021 TL = 0, 0022 TL_HC, 0023 TL_VC, 0024 TR, 0025 TR_HC, 0026 TR_VC, 0027 BL, 0028 BL_HC, 0029 BL_VC, 0030 BR, 0031 BR_HC, 0032 BR_VC 0033 }; 0034 0035 QRectF originalRect; 0036 std::array<QPointF, 12> points; 0037 0038 QRectF dstBoundingRect() const; 0039 0040 QRectF srcBoundingRect() const; 0041 0042 QPointF localToGlobal(const QPointF &pt) const; 0043 QPointF globalToLocal(const QPointF &pt) const; 0044 0045 void sampleRegularGrid(QSize &gridSize, 0046 QVector<QPointF> &origPoints, 0047 QVector<QPointF> &transfPoints, 0048 const QPointF &dstStep) const; 0049 0050 void sampleRegularGridSVG2(QSize &gridSize, 0051 QVector<QPointF> &origPoints, 0052 QVector<QPointF> &transfPoints, 0053 const QPointF &dstStep) const; 0054 }; 0055 0056 KRITAGLOBAL_EXPORT 0057 QDebug operator<<(QDebug dbg, const KisBezierPatch &p); 0058 0059 #endif // KISBEZIERPATCH_H