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 #include "kis_image_view_converter.h" 0008 0009 #include <QTransform> 0010 0011 0012 KisImageViewConverter::KisImageViewConverter(const KisImageWSP image) 0013 : m_image(image) 0014 { 0015 Q_ASSERT(image); 0016 setZoom(0.1); // set the superclass to not hit the optimization of zoom=100% 0017 } 0018 0019 KisClonableViewConverter *KisImageViewConverter::clone() const 0020 { 0021 return new KisImageViewConverter(m_image); 0022 } 0023 0024 void KisImageViewConverter::setImage(KisImageWSP image) 0025 { 0026 m_image = image; 0027 } 0028 0029 // remember here; document is postscript points; view is krita pixels. 0030 0031 void KisImageViewConverter::zoom(qreal *zoomX, qreal *zoomY) const 0032 { 0033 Q_ASSERT(zoomX); 0034 Q_ASSERT(zoomY); 0035 *zoomX = m_image->xRes(); 0036 *zoomY = m_image->yRes(); 0037 } 0038 0039 /// convert from flake to krita units 0040 qreal KisImageViewConverter::documentToViewX(qreal documentX) const { 0041 return documentX * m_image->xRes(); 0042 } 0043 0044 /// convert from flake to krita units 0045 qreal KisImageViewConverter::documentToViewY(qreal documentY) const { 0046 return documentY * m_image->yRes(); 0047 } 0048 0049 /// convert from krita to flake units 0050 qreal KisImageViewConverter::viewToDocumentX(qreal viewX) const { 0051 return viewX / m_image->xRes(); 0052 } 0053 0054 /// convert from krita to flake units 0055 qreal KisImageViewConverter::viewToDocumentY(qreal viewY) const { 0056 return viewY / m_image->yRes(); 0057 } 0058 0059 qreal KisImageViewConverter::zoom() const 0060 { 0061 Q_ASSERT_X(0, "KisImageViewConverter::zoom()", 0062 "Not possible to return a single zoom. " 0063 "Don't use it. Sorry."); 0064 0065 return m_image->xRes(); 0066 }