File indexing completed on 2024-05-12 16:01:32
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_IMAGE_VIEW_CONVERTER_H 0008 #define KIS_IMAGE_VIEW_CONVERTER_H 0009 0010 #include <kritaui_export.h> 0011 0012 #include "kis_image.h" 0013 #include "kis_types.h" 0014 #include "KisClonableViewConverter.h" 0015 0016 class QTransform; 0017 0018 0019 /** 0020 * ViewConverter to convert from flake-internal points to 0021 * krita-internal pixels and back. You can use this class wherever 0022 * the flake tools or shapes come in contact with the krita-image. 0023 * 0024 * For usage remember that the document here is the flake-points. And 0025 * the view is the krita-pixels. 0026 */ 0027 class KRITAUI_EXPORT KisImageViewConverter : public KisClonableViewConverter 0028 { 0029 public: 0030 /** 0031 * constructor 0032 * @param image the image this viewConverter works for. 0033 */ 0034 KisImageViewConverter(const KisImageWSP image); 0035 0036 KisClonableViewConverter* clone() const override; 0037 0038 void setImage(KisImageWSP image); 0039 0040 /// reimplemented from superclass 0041 void zoom(qreal *zoomX, qreal *zoomY) const override; 0042 0043 qreal documentToViewX(qreal documentX) const override; 0044 qreal documentToViewY(qreal documentY) const override; 0045 qreal viewToDocumentX(qreal viewX) const override; 0046 qreal viewToDocumentY(qreal viewY) const override; 0047 0048 // This method shouldn't be used for image 0049 qreal zoom() const; 0050 0051 private: 0052 KisImageWSP m_image; 0053 }; 0054 0055 #endif