QGIS API Documentation  3.22.4-Białowieża (ce8e65e95e)
qgsrendercontext.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrendercontext.h
3  ------------------
4  begin : March 16, 2008
5  copyright : (C) 2008 by Marco Hugentobler
6  email : marco dot hugentobler at karto dot baug dot ethz 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 QGSRENDERCONTEXT_H
19 #define QGSRENDERCONTEXT_H
20 
21 #include "qgis_core.h"
22 #include "qgis_sip.h"
23 #include <QColor>
24 #include <QPainter>
25 #include <memory>
26 
27 #include "qgscoordinatetransform.h"
28 #include "qgsexpressioncontext.h"
30 #include "qgsmaptopixel.h"
31 #include "qgsmapunitscale.h"
32 #include "qgsrectangle.h"
34 #include "qgsdistancearea.h"
36 #include "qgspathresolver.h"
37 #include "qgstemporalrangeobject.h"
38 
39 class QPainter;
41 class QgsLabelingEngine;
42 class QgsMapSettings;
44 class QgsSymbolLayer;
45 class QgsMaskIdProvider;
47 
48 
57 class CORE_EXPORT QgsRenderContext : public QgsTemporalRangeObject
58 {
59  public:
61  ~QgsRenderContext() override;
62 
64  QgsRenderContext &operator=( const QgsRenderContext &rh );
65 
70  void setFlags( Qgis::RenderContextFlags flags );
71 
76  void setFlag( Qgis::RenderContextFlag flag, bool on = true );
77 
82  Qgis::RenderContextFlags flags() const;
83 
88  bool testFlag( Qgis::RenderContextFlag flag ) const;
89 
94  static QgsRenderContext fromMapSettings( const QgsMapSettings &mapSettings );
95 
102  static QgsRenderContext fromQPainter( QPainter *painter );
103 
104  //getters
105 
110  QPainter *painter() {return mPainter;}
111 
112 #ifndef SIP_RUN
113 
119  const QPainter *painter() const { return mPainter; }
120 #endif
121 
131  void setPainterFlagsUsingContext( QPainter *painter = nullptr ) const;
132 
142  QPainter *maskPainter( int id = 0 ) { return mMaskPainter.value( id, nullptr ); }
143 
153  QSet<const QgsSymbolLayer *> disabledSymbolLayers() const { return mDisabledSymbolLayers; }
154 
164  bool isSymbolLayerEnabled( const QgsSymbolLayer *layer ) const { return ! mDisabledSymbolLayers.contains( layer ); }
165 
176  QgsCoordinateTransform coordinateTransform() const {return mCoordTransform;}
177 
182  const QgsDistanceArea &distanceArea() const { return mDistanceArea; }
183 
192  QgsCoordinateTransformContext transformContext() const;
193 
202  void setTransformContext( const QgsCoordinateTransformContext &context );
203 
211  const QgsPathResolver &pathResolver() const { return mPathResolver; }
212 
220  void setPathResolver( const QgsPathResolver &resolver ) { mPathResolver = resolver; }
221 
237  const QgsRectangle &extent() const { return mExtent; }
238 
249  QgsRectangle mapExtent() const { return mOriginalMapExtent; }
250 
256  const QgsMapToPixel &mapToPixel() const {return mMapToPixel;}
257 
264  double scaleFactor() const {return mScaleFactor;}
265 
272  double dpiTarget() const {return mDpiTarget;}
273 
283  bool renderingStopped() const {return mRenderingStopped;}
284 
296  void setFeedback( QgsFeedback *feedback );
297 
306  QgsFeedback *feedback() const;
307 
314  bool forceVectorOutput() const;
315 
321  bool useAdvancedEffects() const;
322 
328  void setUseAdvancedEffects( bool enabled );
329 
335  bool drawEditingInformation() const;
336 
342  double rendererScale() const {return mRendererScale;}
343 
344 
360  double symbologyReferenceScale() const { return mSymbologyReferenceScale; }
361 
366  QgsLabelingEngine *labelingEngine() const { return mLabelingEngine; } SIP_SKIP
367 
373  QColor selectionColor() const { return mSelectionColor; }
374 
382  bool showSelection() const;
383 
384  //setters
385 
396  void setCoordinateTransform( const QgsCoordinateTransform &t );
397 
403  void setMapToPixel( const QgsMapToPixel &mtp ) {mMapToPixel = mtp;}
404 
417  void setExtent( const QgsRectangle &extent ) {mExtent = extent;}
418 
429  void setMapExtent( const QgsRectangle &extent ) { mOriginalMapExtent = extent; }
430 
436  void setDrawEditingInformation( bool b );
437 
448  void setRenderingStopped( bool stopped ) {mRenderingStopped = stopped;}
449 
455  void setDistanceArea( const QgsDistanceArea &distanceArea ) {mDistanceArea = distanceArea ;}
456 
463  void setScaleFactor( double factor ) {mScaleFactor = factor;}
464 
471  void setDpiTarget( double dpi ) {mDpiTarget = dpi;}
472 
478  void setRendererScale( double scale ) {mRendererScale = scale;}
479 
495  void setSymbologyReferenceScale( double scale ) { mSymbologyReferenceScale = scale; }
496 
503  void setPainter( QPainter *p ) {mPainter = p;}
504 
512  void setMaskPainter( QPainter *p, int id = 0 ) { mMaskPainter[id] = p; }
513 
523  void setDisabledSymbolLayers( const QSet<const QgsSymbolLayer *> &symbolLayers ) { mDisabledSymbolLayers = symbolLayers; }
524 
531  void setForceVectorOutput( bool force );
532 
537  void setLabelingEngine( QgsLabelingEngine *engine ) { mLabelingEngine = engine; } SIP_SKIP
538 
544  void setSelectionColor( const QColor &color ) { mSelectionColor = color; }
545 
553  void setShowSelection( bool showSelection );
554 
560  bool useRenderingOptimization() const;
561 
567  void setUseRenderingOptimization( bool enabled );
568 
577  const QgsVectorSimplifyMethod &vectorSimplifyMethod() const { return mVectorSimplifyMethod; }
578 
592  void setVectorSimplifyMethod( const QgsVectorSimplifyMethod &simplifyMethod ) { mVectorSimplifyMethod = simplifyMethod; }
593 
600  void setExpressionContext( const QgsExpressionContext &context ) { mExpressionContext = context; }
601 
608  QgsExpressionContext &expressionContext() { return mExpressionContext; }
609 
617  const QgsExpressionContext &expressionContext() const { return mExpressionContext; } SIP_SKIP
618 
620  const QgsAbstractGeometry *geometry() const { return mGeometry; }
622  void setGeometry( const QgsAbstractGeometry *geometry ) { mGeometry = geometry; }
623 
630  void setFeatureFilterProvider( const QgsFeatureFilterProvider *ffp );
631 
638  const QgsFeatureFilterProvider *featureFilterProvider() const;
639 
646  void setSegmentationTolerance( double tolerance ) { mSegmentationTolerance = tolerance; }
647 
652  double segmentationTolerance() const { return mSegmentationTolerance; }
653 
660  void setSegmentationToleranceType( QgsAbstractGeometry::SegmentationToleranceType type ) { mSegmentationToleranceType = type; }
661 
666  QgsAbstractGeometry::SegmentationToleranceType segmentationToleranceType() const { return mSegmentationToleranceType; }
667 
668  // Conversions
669 
681  double convertToPainterUnits( double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale = QgsMapUnitScale(), Qgis::RenderSubcomponentProperty property = Qgis::RenderSubcomponentProperty::Generic ) const;
682 
689  double convertToMapUnits( double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale = QgsMapUnitScale() ) const;
690 
696  double convertFromMapUnits( double sizeInMapUnits, QgsUnitTypes::RenderUnit outputUnit ) const;
697 
704  double convertMetersToMapUnits( double meters ) const;
705 
713  {
714  return mTextRenderFormat;
715  }
716 
724  {
725  mTextRenderFormat = format;
726  }
727 
733  QList<QgsRenderedFeatureHandlerInterface *> renderedFeatureHandlers() const;
734 
740  bool hasRenderedFeatureHandlers() const { return mHasRenderedFeatureHandlers; }
741 
750  void setMaskIdProvider( QgsMaskIdProvider *provider ) { mMaskIdProvider = provider; }
751 
757  const QgsMaskIdProvider *maskIdProvider() const { return mMaskIdProvider; }
758 
764  void setCurrentMaskId( int id ) { mCurrentMaskId = id; }
765 
772  int currentMaskId() const { return mCurrentMaskId; }
773 
783  void setIsGuiPreview( bool preview ) { mIsGuiPreview = preview; }
784 
795  bool isGuiPreview() const { return mIsGuiPreview; }
796 
803  QVariantMap customRenderingFlags() const { return mCustomRenderingFlags; }
804 
812  void setCustomRenderingFlag( const QString &flag, const QVariant &value ) { mCustomRenderingFlags[flag] = value; }
813 
820  void clearCustomRenderingFlag( const QString &flag ) { mCustomRenderingFlags.remove( flag ); }
821 
829  QList< QgsMapClippingRegion > clippingRegions() const;
830 
845  QgsGeometry featureClipGeometry() const;
846 
856  void setFeatureClipGeometry( const QgsGeometry &geometry );
857 
865  QPointF textureOrigin() const;
866 
874  void setTextureOrigin( const QPointF &origin );
875 
882  QgsDoubleRange zRange() const;
883 
890  void setZRange( const QgsDoubleRange &range );
891 
900  QSize outputSize() const;
901 
908  void setOutputSize( QSize size );
909 
918  float devicePixelRatio() const;
919 
928  void setDevicePixelRatio( float ratio );
929 
941  QSize deviceOutputSize() const;
942 
950  void setImageFormat( QImage::Format format ) { mImageFormat = format; }
951 
959  QImage::Format imageFormat() const { return mImageFormat; }
960 
961  private:
962 
963  Qgis::RenderContextFlags mFlags;
964 
966  QPainter *mPainter = nullptr;
967 
974  QMap<int, QPainter *> mMaskPainter;
975 
981  QgsMaskIdProvider *mMaskIdProvider = nullptr;
982 
987  int mCurrentMaskId = -1;
988 
993  bool mIsGuiPreview = false;
994 
996  QgsCoordinateTransform mCoordTransform;
997 
1003  QgsDistanceArea mDistanceArea;
1004 
1005  QgsRectangle mExtent;
1006  QgsRectangle mOriginalMapExtent;
1007 
1008  QgsMapToPixel mMapToPixel;
1009 
1011  bool mRenderingStopped = false;
1012 
1014  QgsFeedback *mFeedback = nullptr;
1015 
1017  double mScaleFactor = 1.0;
1018 
1020  double mDpiTarget = -1.0;
1021 
1023  double mRendererScale = 1.0;
1024 
1025  double mSymbologyReferenceScale = -1;
1026 
1028  QgsLabelingEngine *mLabelingEngine = nullptr;
1029 
1031  QColor mSelectionColor;
1032 
1034  QgsVectorSimplifyMethod mVectorSimplifyMethod;
1035 
1037  QgsExpressionContext mExpressionContext;
1038 
1040  const QgsAbstractGeometry *mGeometry = nullptr;
1041 
1043  std::unique_ptr< QgsFeatureFilterProvider > mFeatureFilterProvider;
1044 
1045  double mSegmentationTolerance = M_PI_2 / 90;
1046 
1048 
1049  QgsCoordinateTransformContext mTransformContext;
1050 
1051  QgsPathResolver mPathResolver;
1052 
1053  Qgis::TextRenderFormat mTextRenderFormat = Qgis::TextRenderFormat::AlwaysOutlines;
1054  QList< QgsRenderedFeatureHandlerInterface * > mRenderedFeatureHandlers;
1055  bool mHasRenderedFeatureHandlers = false;
1056  QVariantMap mCustomRenderingFlags;
1057 
1058  QSet<const QgsSymbolLayer *> mDisabledSymbolLayers;
1059 
1060  QList< QgsMapClippingRegion > mClippingRegions;
1061  QgsGeometry mFeatureClipGeometry;
1062 
1063  QPointF mTextureOrigin;
1064 
1065  QgsDoubleRange mZRange;
1066 
1067  QSize mSize;
1068  float mDevicePixelRatio = 1.0;
1069  QImage::Format mImageFormat = QImage::Format_ARGB32_Premultiplied;
1070 
1071 #ifdef QGISDEBUG
1072  bool mHasTransformContext = false;
1073 #endif
1074 };
1075 
1076 #ifndef SIP_RUN
1077 
1090 {
1091  public:
1092 
1099  QgsScopedRenderContextPainterSwap( QgsRenderContext &context, QPainter *temporaryPainter )
1100  : mContext( context )
1101  , mPreviousPainter( context.painter() )
1102  {
1103  mContext.setPainter( temporaryPainter );
1104  }
1105 
1109  void reset()
1110  {
1111  if ( !mReleased )
1112  {
1113  mContext.setPainter( mPreviousPainter );
1114  mReleased = true;
1115  }
1116  }
1117 
1122  {
1123  reset();
1124  }
1125 
1126  private:
1127 
1128  QgsRenderContext &mContext;
1129  QPainter *mPreviousPainter = nullptr;
1130  bool mReleased = false;
1131 };
1132 
1133 
1146 {
1147  public:
1148 
1157  : mContext( context )
1158  {
1159  if ( mContext.painter() )
1160  mContext.painter()->scale( mContext.scaleFactor(), mContext.scaleFactor() );
1161  }
1162 
1167  {
1168  if ( mContext.painter() )
1169  mContext.painter()->scale( 1.0 / mContext.scaleFactor(), 1.0 / mContext.scaleFactor() );
1170  }
1171 
1172  private:
1173 
1174  QgsRenderContext &mContext;
1175 };
1176 
1177 
1190 {
1191  public:
1192 
1201  : mContext( context )
1202  {
1203  if ( mContext.painter() )
1204  mContext.painter()->scale( 1.0 / mContext.scaleFactor(), 1.0 / mContext.scaleFactor() );
1205  }
1206 
1211  {
1212  if ( mContext.painter() )
1213  mContext.painter()->scale( mContext.scaleFactor(), mContext.scaleFactor() );
1214  }
1215 
1216  private:
1217 
1218  QgsRenderContext &mContext;
1219 };
1220 
1221 
1234 {
1235  public:
1236 
1242  QgsScopedQPainterState( QPainter *painter )
1243  : mPainter( painter )
1244  {
1245  mPainter->save();
1246  }
1247 
1252  {
1253  mPainter->restore();
1254  }
1255 
1256  private:
1257 
1258  QPainter *mPainter = nullptr;
1259 };
1260 
1261 
1273 {
1274  public:
1275 
1282  : mContext( &context )
1283  , mOriginalScale( context.symbologyReferenceScale() )
1284  {
1285  mContext->setSymbologyReferenceScale( scale );
1286  }
1287 
1292  : mContext( o.mContext )
1293  , mOriginalScale( o.mOriginalScale )
1294  {
1295  o.mContext = nullptr;
1296  }
1297 
1302  {
1303  if ( mContext )
1304  mContext->setSymbologyReferenceScale( mOriginalScale );
1305  }
1306 
1307  private:
1308 
1309  QgsRenderContext *mContext = nullptr;
1310  double mOriginalScale = 0;
1311 };
1312 
1313 
1314 #endif
1315 
1316 #endif
RenderSubcomponentProperty
Rendering subcomponent properties.
Definition: qgis.h:977
@ Generic
Generic subcomponent property.
TextRenderFormat
Options for rendering text.
Definition: qgis.h:965
RenderContextFlag
Flags which affect rendering operations.
Definition: qgis.h:934
Abstract base class for all geometries.
SegmentationToleranceType
Segmentation tolerance as maximum angle or maximum difference between approximation and circle.
@ MaximumAngle
Maximum angle between generating radii (lines from arc center to output vertices)
Contains information about the context in which a coordinate transform is executed.
Class for doing transforms between two map coordinate systems.
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
QgsRange which stores a range of double values.
Definition: qgsrange.h:203
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Abstract interface for use by classes that filter the features or attributes of a layer.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:125
The QgsLabelingEngine class provides map labeling functionality.
A map clipping region (in map coordinates and CRS).
The QgsMapSettings class contains configuration for rendering of the map.
Perform transforms between map coordinates and device coordinates.
Definition: qgsmaptopixel.h:39
Struct for storing maximum and minimum scales for measurements in map units.
This class allows the creation of mask ids based on the different label layers and to give a mask id ...
Resolves relative paths into absolute paths and vice versa.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Contains information about the context of a rendering operation.
void setMapExtent(const QgsRectangle &extent)
Sets the original extent of the map being rendered.
double scaleFactor() const
Returns the scaling factor for the render to convert painter units to physical sizes.
void setRenderingStopped(bool stopped)
Sets whether the rendering operation has been stopped and any ongoing rendering should be canceled im...
void setDistanceArea(const QgsDistanceArea &distanceArea)
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
QPainter * maskPainter(int id=0)
Returns a mask QPainter for the render operation.
void setScaleFactor(double factor)
Sets the scaling factor for the render to convert painter units to physical sizes.
bool hasRenderedFeatureHandlers() const
Returns true if the context has any rendered feature handlers.
void setImageFormat(QImage::Format format)
Sets QImage format which should be used for QImages created during rendering.
void setSegmentationToleranceType(QgsAbstractGeometry::SegmentationToleranceType type)
Sets segmentation tolerance type (maximum angle or maximum difference between curve and approximation...
double symbologyReferenceScale() const
Returns the symbology reference scale.
double segmentationTolerance() const
Gets the segmentation tolerance applied when rendering curved geometries.
const QgsAbstractGeometry * geometry() const
Returns pointer to the unsegmentized geometry.
void clearCustomRenderingFlag(const QString &flag)
Clears the specified custom rendering flag.
QPainter * painter()
Returns the destination QPainter for the render operation.
double rendererScale() const
Returns the renderer map scale.
QgsExpressionContext & expressionContext()
Gets the expression context.
const QgsMapToPixel & mapToPixel() const
Returns the context's map to pixel transform, which transforms between map coordinates and device coo...
void setTextRenderFormat(Qgis::TextRenderFormat format)
Sets the text render format, which dictates how text is rendered (e.g.
void setGeometry(const QgsAbstractGeometry *geometry)
Sets pointer to original (unsegmentized) geometry.
void setVectorSimplifyMethod(const QgsVectorSimplifyMethod &simplifyMethod)
Sets the simplification setting to use when rendering vector layers.
QVariantMap customRenderingFlags() const
Gets custom rendering flags.
bool isGuiPreview() const
Returns the Gui preview mode.
void setCurrentMaskId(int id)
Stores a mask id as the "current" one.
void setDisabledSymbolLayers(const QSet< const QgsSymbolLayer * > &symbolLayers)
When rendering a map layer in a second pass (for selective masking), some symbol layers may be disabl...
void setDpiTarget(double dpi)
Sets the targeted dpi for rendering.
~QgsRenderContext() override
void setPathResolver(const QgsPathResolver &resolver)
Sets the path resolver for conversion between relative and absolute paths during rendering operations...
void setIsGuiPreview(bool preview)
Sets GUI preview mode.
Qgis::TextRenderFormat textRenderFormat() const
Returns the text render format, which dictates how text is rendered (e.g.
QgsRectangle mapExtent() const
Returns the original extent of the map being rendered.
void setSymbologyReferenceScale(double scale)
Sets the symbology reference scale.
double dpiTarget() const
Returns the targeted DPI for rendering.
QSet< const QgsSymbolLayer * > disabledSymbolLayers() const
When rendering a map layer in a second pass (for selective masking), some symbol layers may be disabl...
void setMaskIdProvider(QgsMaskIdProvider *provider)
Attaches a mask id provider to the context.
const QPainter * painter() const
Returns the const destination QPainter for the render operation.
QColor selectionColor() const
Returns the color to use when rendering selected features.
const QgsExpressionContext & expressionContext() const
Gets the expression context (const version).
void setExtent(const QgsRectangle &extent)
When rendering a map layer, calling this method sets the "clipping" extent for the layer (in the laye...
QgsLabelingEngine * labelingEngine() const
Gets access to new labeling engine (may be nullptr)
void setMapToPixel(const QgsMapToPixel &mtp)
Sets the context's map to pixel transform, which transforms between map coordinates and device coordi...
int currentMaskId() const
Returns the current mask id, which can be used with maskPainter()
void setCustomRenderingFlag(const QString &flag, const QVariant &value)
Sets a custom rendering flag.
void setPainter(QPainter *p)
Sets the destination QPainter for the render operation.
bool isSymbolLayerEnabled(const QgsSymbolLayer *layer) const
When rendering a map layer in a second pass (for selective masking), some symbol layers may be disabl...
void setMaskPainter(QPainter *p, int id=0)
Sets a mask QPainter for the render operation.
const QgsDistanceArea & distanceArea() const
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
void setLabelingEngine(QgsLabelingEngine *engine)
Assign new labeling engine.
bool renderingStopped() const
Returns true if the rendering operation has been stopped and any ongoing rendering should be canceled...
void setExpressionContext(const QgsExpressionContext &context)
Sets the expression context.
void setRendererScale(double scale)
Sets the renderer map scale.
QgsCoordinateTransform coordinateTransform() const
Returns the current coordinate transform for the context.
const QgsRectangle & extent() const
When rendering a map layer, calling this method returns the "clipping" extent for the layer (in the l...
QgsAbstractGeometry::SegmentationToleranceType segmentationToleranceType() const
Gets segmentation tolerance type (maximum angle or maximum difference between curve and approximation...
const QgsVectorSimplifyMethod & vectorSimplifyMethod() const
Returns the simplification settings to use when rendering vector layers.
const QgsMaskIdProvider * maskIdProvider() const
Returns the mask id provider attached to the context.
QImage::Format imageFormat() const
Returns the QImage format which should be used for QImages created during rendering.
const QgsPathResolver & pathResolver() const
Returns the path resolver for conversion between relative and absolute paths during rendering operati...
void setSelectionColor(const QColor &color)
Sets the color to use when rendering selected features.
void setSegmentationTolerance(double tolerance)
Sets the segmentation tolerance applied when rendering curved geometries.
An interface for classes which provider custom handlers for features rendered as part of a map render...
Scoped object for saving and restoring a QPainter object's state.
QgsScopedQPainterState(QPainter *painter)
Constructor for QgsScopedQPainterState.
~QgsScopedQPainterState()
Restores the painter back to its original state.
Scoped object for temporary replacement of a QgsRenderContext destination painter.
QgsScopedRenderContextPainterSwap(QgsRenderContext &context, QPainter *temporaryPainter)
Constructor for QgsScopedRenderContextPainterSwap.
~QgsScopedRenderContextPainterSwap()
Returns the destination painter for the context back to the original QPainter object.
void reset()
Resets the destination painter for the context back to the original QPainter object.
Scoped object for temporary override of the symbologyReferenceScale property of a QgsRenderContext.
QgsScopedRenderContextReferenceScaleOverride(QgsScopedRenderContextReferenceScaleOverride &&o) noexcept
Move constructor.
~QgsScopedRenderContextReferenceScaleOverride()
Returns the render context back to the original reference scale.
QgsScopedRenderContextReferenceScaleOverride(QgsRenderContext &context, double scale)
Constructor for QgsScopedRenderContextReferenceScaleOverride.
Scoped object for temporary scaling of a QgsRenderContext for millimeter based rendering.
~QgsScopedRenderContextScaleToMm()
Returns the destination painter back to pixel based units.
QgsScopedRenderContextScaleToMm(QgsRenderContext &context)
Constructor for QgsScopedRenderContextScaleToMm.
Scoped object for temporary scaling of a QgsRenderContext for pixel based rendering.
QgsScopedRenderContextScaleToPixels(QgsRenderContext &context)
Constructor for QgsScopedRenderContextScaleToPixels.
~QgsScopedRenderContextScaleToPixels()
Returns the destination painter back to millimeter based units.
Base class for objects with an associated (optional) temporal range.
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:168
This class contains information how to simplify geometries fetched from a vector layer.
#define SIP_SKIP
Definition: qgis_sip.h:126