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