File indexing completed on 2024-05-12 16:01:45

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KISDETACHEDSHAPESVIEWCONVERTER_H
0008 #define KISDETACHEDSHAPESVIEWCONVERTER_H
0009 
0010 #include <kritaui_export.h>
0011 
0012 #include "KisClonableViewConverter.h"
0013 
0014 /**
0015  * @brief The KisDetachedShapesViewConverter class is a placeholder
0016  * class for vector layers for the time when they are not attached
0017  * to any image. Otherwise, a shape layer cannot reason about its
0018  * size.
0019  */
0020 class KRITAUI_EXPORT KisDetachedShapesViewConverter : public KisClonableViewConverter
0021 {
0022 public:
0023     KisDetachedShapesViewConverter(qreal xRes, qreal yRes);
0024 
0025     KisClonableViewConverter* clone() const override;
0026 
0027     void zoom(qreal *zoomX, qreal *zoomY) const override;
0028 
0029     qreal documentToViewX(qreal documentX) const override;
0030     qreal documentToViewY(qreal documentY) const override;
0031     qreal viewToDocumentX(qreal viewX) const override;
0032     qreal viewToDocumentY(qreal viewY) const override;
0033 
0034     // This method shouldn't be used for image
0035     qreal zoom() const;
0036 
0037 private:
0038     qreal m_xRes {1.0};
0039     qreal m_yRes {1.0};
0040 };
0041 
0042 #endif // KISDETACHEDSHAPESVIEWCONVERTER_H