Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsdxpaintdevice.h 3 : : ------------------ 4 : : begin : November 2013 5 : : copyright : (C) 2013 by Marco Hugentobler 6 : : email : marco at sourcepole dot ch 7 : : ***************************************************************************/ 8 : : 9 : : /*************************************************************************** 10 : : * * 11 : : * This program is free software; you can redistribute it and/or modify * 12 : : * it under the terms of the GNU General Public License as published by * 13 : : * the Free Software Foundation; either version 2 of the License, or * 14 : : * (at your option) any later version. * 15 : : * * 16 : : ***************************************************************************/ 17 : : 18 : : #ifndef QGSDXFPAINTDEVICE_H 19 : : #define QGSDXFPAINTDEVICE_H 20 : : 21 : : #define SIP_NO_FILE 22 : : 23 : : #include <QPaintDevice> 24 : : 25 : : #include "qgis_core.h" 26 : : 27 : : class QgsDxfPaintEngine; 28 : : class QgsDxfExport; 29 : : class QPaintEngine; 30 : : 31 : : /** 32 : : * \ingroup core 33 : : * \brief A paint device for drawing into dxf files. 34 : : * \note not available in Python bindings 35 : : */ 36 : : 37 : : class CORE_EXPORT QgsDxfPaintDevice: public QPaintDevice 38 : : { 39 : : public: 40 : : QgsDxfPaintDevice( QgsDxfExport *dxf ); 41 : : ~QgsDxfPaintDevice() override; 42 : : 43 : : QPaintEngine *paintEngine() const override; 44 : : 45 : 0 : void setDrawingSize( QSizeF size ) { mDrawingSize = size; } 46 : 0 : void setOutputSize( const QRectF &r ) { mRectangle = r; } 47 : : 48 : : //! Returns scale factor for line width 49 : : double widthScaleFactor() const; 50 : : 51 : : //! Converts a point from device coordinates to dxf coordinates 52 : : QPointF dxfCoordinates( QPointF pt ) const; 53 : : 54 : : /*int height() const { return mDrawingSize.height(); } 55 : : int width() const { return mDrawingSize.width(); }*/ 56 : : 57 : : int metric( PaintDeviceMetric metric ) const override; 58 : : 59 : : void setLayer( const QString &layer ); 60 : : 61 : : void setShift( QPointF shift ); 62 : : 63 : : 64 : : private: 65 : : QgsDxfPaintEngine *mPaintEngine = nullptr; 66 : : 67 : : QSizeF mDrawingSize; //size (in source coordinates) 68 : : QRectF mRectangle; //size (in dxf coordinates) 69 : : }; 70 : : 71 : : #endif // QGSDXFPAINTDEVICE_H