QGIS API Documentation  3.21.0-Master (5b68dc587e)
qgsmapcanvasitem.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapcanvasitem.h - base class for map canvas items
3  ----------------------
4  begin : February 2006
5  copyright : (C) 2006 by Martin Dobias
6  email : wonder.sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSMAPCANVASITEM_H
17 #define QGSMAPCANVASITEM_H
18 
19 #include <QGraphicsItem>
20 #include "qgis_sip.h"
21 #include "qgsrectangle.h"
22 #include "qgis_gui.h"
23 
24 class QgsMapCanvas;
25 class QgsRenderContext;
26 class QPainter;
27 
33 class GUI_EXPORT QgsMapCanvasItem : public QGraphicsItem
34 {
35  protected:
36 
39 
40  ~QgsMapCanvasItem() override;
41 
43  virtual void paint( QPainter *painter ) = 0;
44 
45  void paint( QPainter *painter,
46  const QStyleOptionGraphicsItem *option,
47  QWidget *widget = nullptr ) override;
48 
50  void updateCanvas();
51 
58  bool setRenderContextVariables( QPainter *p, QgsRenderContext &context ) const;
59 
60  public:
61 
63  virtual void updatePosition();
64 
65  QRectF boundingRect() const override;
66 
68  QgsRectangle rect() const;
69 
71  void setRect( const QgsRectangle &r, bool resetRotation = true );
72 
74  QgsPointXY toMapCoordinates( QPoint point ) const;
75 
77  QPointF toCanvasCoordinates( const QgsPointXY &point ) const;
78 
79  protected:
80 
82  QgsMapCanvas *mMapCanvas = nullptr;
83 
95 
96  double mRectRotation;
97 
99  QSizeF mItemSize;
100 
101 };
102 
103 
104 #endif
An abstract class for items that can be placed on the map canvas.
virtual void paint(QPainter *painter)=0
function to be implemented by derived classes
QSizeF mItemSize
cached size of the item (to return in boundingRect())
QgsRectangle mRect
cached canvas item rectangle in map coordinates encodes position (xmin,ymax) and size (width/height) ...
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:88
A class to represent a 2D point.
Definition: qgspointxy.h:59
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Contains information about the context of a rendering operation.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53