QGIS API Documentation  3.24.2-Tisler (13c1a02865)
qgsfillsymbollayer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfillsymbollayer.h
3  ---------------------
4  begin : November 2009
5  copyright : (C) 2009 by Martin Dobias
6  email : wonder dot 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 QGSFILLSYMBOLLAYER_H
17 #define QGSFILLSYMBOLLAYER_H
18 
19 #include "qgis_core.h"
20 #include "qgis.h"
21 #include "qgssymbollayer.h"
22 
23 #define DEFAULT_SIMPLEFILL_COLOR QColor(0,0,255)
24 #define DEFAULT_SIMPLEFILL_STYLE Qt::SolidPattern
25 #define DEFAULT_SIMPLEFILL_BORDERCOLOR QColor( 35, 35, 35 )
26 #define DEFAULT_SIMPLEFILL_BORDERSTYLE Qt::SolidLine
27 #define DEFAULT_SIMPLEFILL_BORDERWIDTH DEFAULT_LINE_WIDTH
28 #define DEFAULT_SIMPLEFILL_JOINSTYLE Qt::BevelJoin
29 
30 #define INF 1E20
31 
32 #include <QPen>
33 #include <QBrush>
34 
35 class QgsMarkerSymbol;
36 class QgsLineSymbol;
37 class QgsPathResolver;
38 
43 class CORE_EXPORT QgsSimpleFillSymbolLayer : public QgsFillSymbolLayer
44 {
45  public:
47  Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE,
48  const QColor &strokeColor = DEFAULT_SIMPLEFILL_BORDERCOLOR,
49  Qt::PenStyle strokeStyle = DEFAULT_SIMPLEFILL_BORDERSTYLE,
50  double strokeWidth = DEFAULT_SIMPLEFILL_BORDERWIDTH,
51  Qt::PenJoinStyle penJoinStyle = DEFAULT_SIMPLEFILL_JOINSTYLE
52  );
53 
55 
56  // static stuff
57 
63  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
64  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
65 
66  // implemented from base classes
67 
68  QString layerType() const override;
69 
70  void startRender( QgsSymbolRenderContext &context ) override;
71 
72  void stopRender( QgsSymbolRenderContext &context ) override;
73 
74  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
75 
76  QVariantMap properties() const override;
77 
78  QgsSimpleFillSymbolLayer *clone() const override SIP_FACTORY;
79 
80  void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override;
81 
82  QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
83 
84  Qt::BrushStyle brushStyle() const { return mBrushStyle; }
85  void setBrushStyle( Qt::BrushStyle style ) { mBrushStyle = style; }
86 
87  QColor strokeColor() const override { return mStrokeColor; }
88  void setStrokeColor( const QColor &strokeColor ) override { mStrokeColor = strokeColor; }
89 
90  QColor fillColor() const override { return color(); }
91  void setFillColor( const QColor &color ) override { setColor( color ); }
92 
93  Qt::PenStyle strokeStyle() const { return mStrokeStyle; }
94  void setStrokeStyle( Qt::PenStyle strokeStyle ) { mStrokeStyle = strokeStyle; }
95 
96  double strokeWidth() const { return mStrokeWidth; }
97  void setStrokeWidth( double strokeWidth ) { mStrokeWidth = strokeWidth; }
98 
99  Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
100  void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
101 
110  void setOffset( QPointF offset ) { mOffset = offset; }
111 
120  QPointF offset() { return mOffset; }
121 
127  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
128 
133  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
134 
135  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
136  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
137 
143  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
144 
150  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
151 
157  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
158 
164  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
165 
166  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
167  QgsUnitTypes::RenderUnit outputUnit() const override;
168  bool usesMapUnits() const override;
169 
170  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
171  QgsMapUnitScale mapUnitScale() const override;
172 
173  double estimateMaxBleed( const QgsRenderContext &context ) const override;
174 
175  double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
176  QColor dxfColor( QgsSymbolRenderContext &context ) const override;
177  double dxfAngle( QgsSymbolRenderContext &context ) const override;
178 
179  Qt::PenStyle dxfPenStyle() const override;
180  QColor dxfBrushColor( QgsSymbolRenderContext &context ) const override;
181  Qt::BrushStyle dxfBrushStyle() const override;
182 
183  protected:
184  QBrush mBrush;
185  QBrush mSelBrush;
186  Qt::BrushStyle mBrushStyle;
187  QColor mStrokeColor;
188  Qt::PenStyle mStrokeStyle;
189  double mStrokeWidth;
192  Qt::PenJoinStyle mPenJoinStyle;
193  QPen mPen;
194  QPen mSelPen;
195 
196  QPointF mOffset;
199 
200  private:
201  //helper functions for data defined symbology
202  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QBrush &brush, QPen &pen, QPen &selPen );
203 };
204 
205 class QgsColorRamp;
206 
212 {
213  public:
214 
219  const QColor &color2 = Qt::white,
224  );
225 
226  ~QgsGradientFillSymbolLayer() override;
227 
228  // static stuff
229 
235  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
236 
237  // implemented from base classes
238 
239  QString layerType() const override;
240  void startRender( QgsSymbolRenderContext &context ) override;
241  void stopRender( QgsSymbolRenderContext &context ) override;
242  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
243  QVariantMap properties() const override;
244  QgsGradientFillSymbolLayer *clone() const override SIP_FACTORY;
245  double estimateMaxBleed( const QgsRenderContext &context ) const override;
246  bool canCauseArtifactsBetweenAdjacentTiles() const override;
247 
253  Qgis::GradientType gradientType() const { return mGradientType; }
254 
260  void setGradientType( Qgis::GradientType gradientType ) { mGradientType = gradientType; }
261 
267  Qgis::GradientColorSource gradientColorType() const { return mGradientColorType; }
268 
274  void setGradientColorType( Qgis::GradientColorSource gradientColorType ) { mGradientColorType = gradientColorType; }
275 
282  QgsColorRamp *colorRamp() { return mGradientRamp; }
283 
291  void setColorRamp( QgsColorRamp *ramp SIP_TRANSFER );
292 
298  QColor color2() const { return mColor2; }
299 
305  void setColor2( const QColor &color2 ) { mColor2 = color2; }
306 
312  Qgis::SymbolCoordinateReference coordinateMode() const { return mCoordinateMode; }
313 
319  void setCoordinateMode( Qgis::SymbolCoordinateReference coordinateMode ) { mCoordinateMode = coordinateMode; }
320 
326  Qgis::GradientSpread gradientSpread() const { return mGradientSpread; }
327 
333  void setGradientSpread( Qgis::GradientSpread gradientSpread ) { mGradientSpread = gradientSpread; }
334 
340  void setReferencePoint1( QPointF referencePoint ) { mReferencePoint1 = referencePoint; }
341 
347  QPointF referencePoint1() const { return mReferencePoint1; }
348 
354  void setReferencePoint1IsCentroid( bool isCentroid ) { mReferencePoint1IsCentroid = isCentroid; }
355 
361  bool referencePoint1IsCentroid() const { return mReferencePoint1IsCentroid; }
362 
368  void setReferencePoint2( QPointF referencePoint ) { mReferencePoint2 = referencePoint; }
369 
375  QPointF referencePoint2() const { return mReferencePoint2; }
376 
382  void setReferencePoint2IsCentroid( bool isCentroid ) { mReferencePoint2IsCentroid = isCentroid; }
383 
384 
390  bool referencePoint2IsCentroid() const { return mReferencePoint2IsCentroid; }
391 
400  void setOffset( QPointF offset ) { mOffset = offset; }
401 
410  QPointF offset() const { return mOffset; }
411 
417  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
418 
424  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
425 
431  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
432 
438  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
439 
440  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
441  QgsUnitTypes::RenderUnit outputUnit() const override;
442  bool usesMapUnits() const override;
443 
444  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
445  QgsMapUnitScale mapUnitScale() const override;
446 
447  protected:
448  QBrush mBrush;
449  QBrush mSelBrush;
450 
452  QColor mColor2;
453  QgsColorRamp *mGradientRamp = nullptr;
457 
459  bool mReferencePoint1IsCentroid = false;
461  bool mReferencePoint2IsCentroid = false;
462 
463  QPointF mOffset;
466 
467  private:
468 
469  //helper functions for data defined symbology
470  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, const QPolygonF &points );
471 
473  void applyGradient( const QgsSymbolRenderContext &context, QBrush &brush, const QColor &color, const QColor &color2,
474  Qgis::GradientColorSource gradientColorType, QgsColorRamp *gradientRamp, Qgis::GradientType gradientType,
475  Qgis::SymbolCoordinateReference coordinateMode, Qgis::GradientSpread gradientSpread,
476  QPointF referencePoint1, QPointF referencePoint2, double angle );
477 
479  QPointF rotateReferencePoint( QPointF refPoint, double angle );
480 };
481 
487 {
488  public:
489 
493  QgsShapeburstFillSymbolLayer( const QColor &color = DEFAULT_SIMPLEFILL_COLOR, const QColor &color2 = Qt::white,
495  int blurRadius = 0, bool useWholeShape = true, double maxDistance = 5 );
496 
498 
504 
510 
511  // static stuff
512 
518  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
519 
520  // implemented from base classes
521 
522  QString layerType() const override;
523  void startRender( QgsSymbolRenderContext &context ) override;
524  void stopRender( QgsSymbolRenderContext &context ) override;
525  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
526  QVariantMap properties() const override;
527  QgsShapeburstFillSymbolLayer *clone() const override SIP_FACTORY;
528  double estimateMaxBleed( const QgsRenderContext &context ) const override;
529  bool canCauseArtifactsBetweenAdjacentTiles() const override;
530 
537  void setBlurRadius( int blurRadius ) { mBlurRadius = blurRadius; }
538 
545  int blurRadius() const { return mBlurRadius; }
546 
555  void setUseWholeShape( bool useWholeShape ) { mUseWholeShape = useWholeShape; }
556 
564  bool useWholeShape() const { return mUseWholeShape; }
565 
574  void setMaxDistance( double maxDistance ) { mMaxDistance = maxDistance; }
575 
584  double maxDistance() const { return mMaxDistance; }
585 
593  void setDistanceUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceUnit = unit; }
594 
602  QgsUnitTypes::RenderUnit distanceUnit() const { return mDistanceUnit; }
603 
604  void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
605  const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
606 
617  void setColorType( Qgis::GradientColorSource colorType ) { mColorType = colorType; }
618 
629  Qgis::GradientColorSource colorType() const { return mColorType; }
630 
640  void setColorRamp( QgsColorRamp *ramp SIP_TRANSFER );
641 
649  QgsColorRamp *colorRamp() { return mGradientRamp.get(); }
650 
658  void setColor2( const QColor &color2 ) { mColor2 = color2; }
659 
667  QColor color2() const { return mColor2; }
668 
676  void setIgnoreRings( bool ignoreRings ) { mIgnoreRings = ignoreRings; }
677 
684  bool ignoreRings() const { return mIgnoreRings; }
685 
693  void setOffset( QPointF offset ) { mOffset = offset; }
694 
702  QPointF offset() const { return mOffset; }
703 
711  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
712 
720  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
721 
722  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
723  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
724 
725  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
726  QgsUnitTypes::RenderUnit outputUnit() const override;
727  bool usesMapUnits() const override;
728 
729  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
730  QgsMapUnitScale mapUnitScale() const override;
731 
732  private:
733  QBrush mBrush;
734  QBrush mSelBrush;
735 
736  int mBlurRadius = 0;
737 
738  bool mUseWholeShape = true;
739  double mMaxDistance = 5.0;
741  QgsMapUnitScale mDistanceMapUnitScale;
742 
744  QColor mColor2;
745 
746  bool mIgnoreRings = false;
747 
748  QPointF mOffset;
750  QgsMapUnitScale mOffsetMapUnitScale;
751 
752  std::unique_ptr< QgsColorRamp > mGradientRamp;
753 
754  //helper functions for data defined symbology
755  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QColor &color, QColor &color2, int &blurRadius, bool &useWholeShape,
756  double &maxDistance, bool &ignoreRings );
757 
758  /* distance transform of a 1d function using squared distance */
759  void distanceTransform1d( double *f, int n, int *v, double *z, double *d );
760  /* distance transform of 2d function using squared distance */
761  void distanceTransform2d( double *im, int width, int height, QgsRenderContext &context );
762  /* distance transform of a binary QImage */
763  double *distanceTransform( QImage *im, QgsRenderContext &context );
764 
765  /* fills a QImage with values from an array of doubles containing squared distance transform values */
766  void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, QgsRenderContext &context, bool useWholeShape = true, int maxPixelDistance = 0 );
767 
768 #ifdef SIP_RUN
770 #endif
771 };
772 
778 {
779  public:
780 
783 
784  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
785 
791  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
792 
798  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
799 
806  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
807 
816  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
817 
825  void setCoordinateReference( Qgis::SymbolCoordinateReference coordinateReference ) { mCoordinateReference = coordinateReference; }
826 
834  Qgis::SymbolCoordinateReference coordinateReference() const { return mCoordinateReference; }
835 
836  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
837  QgsUnitTypes::RenderUnit outputUnit() const override;
838  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
839  QgsMapUnitScale mapUnitScale() const override;
840  double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
841  Qt::PenStyle dxfPenStyle() const override;
842  QVariantMap properties() const override;
843 
844  protected:
845  QBrush mBrush;
847  double mNextAngle = 0.0; // mAngle / data defined angle
848 
850  double mStrokeWidth = 0.0;
853 
857  virtual void applyDataDefinedSettings( QgsSymbolRenderContext &context ) { Q_UNUSED( context ) }
858 
864  virtual bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const;
865 
866  private:
867 #ifdef SIP_RUN
869 #endif
870 };
871 
879 {
880  public:
881 
886  QgsRasterFillSymbolLayer( const QString &imageFilePath = QString() );
887 
889 
894  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
895 
901  static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
902 
903  // implemented from base classes
904  QString layerType() const override;
905  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
906  void startRender( QgsSymbolRenderContext &context ) override;
907  void stopRender( QgsSymbolRenderContext &context ) override;
908  QVariantMap properties() const override;
909  QgsRasterFillSymbolLayer *clone() const override SIP_FACTORY;
910  double estimateMaxBleed( const QgsRenderContext &context ) const override;
911  bool usesMapUnits() const override;
912  QColor color() const override;
913 
914  //override QgsImageFillSymbolLayer's support for sub symbols
915  QgsSymbol *subSymbol() override { return nullptr; }
916  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
917 
923  void setImageFilePath( const QString &imagePath );
924 
930  QString imageFilePath() const { return mImageFilePath; }
931 
938  void setCoordinateMode( Qgis::SymbolCoordinateReference mode );
939 
946  Qgis::SymbolCoordinateReference coordinateMode() const { return mCoordinateMode; }
947 
953  void setOpacity( double opacity );
954 
960  double opacity() const { return mOpacity; }
961 
969  void setOffset( QPointF offset ) { mOffset = offset; }
970 
978  QPointF offset() const { return mOffset; }
979 
987  void setOffsetUnit( const QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
988 
996  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
997 
1005  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1006 
1014  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1015 
1024  void setWidth( const double width ) { mWidth = width; }
1025 
1034  double width() const { return mWidth; }
1035 
1043  void setWidthUnit( const QgsUnitTypes::RenderUnit unit ) { mWidthUnit = unit; }
1044 
1052  QgsUnitTypes::RenderUnit widthUnit() const { return mWidthUnit; }
1053 
1061  void setWidthMapUnitScale( const QgsMapUnitScale &scale ) { mWidthMapUnitScale = scale; }
1062 
1070  const QgsMapUnitScale &widthMapUnitScale() const { return mWidthMapUnitScale; }
1071 
1072  protected:
1073 
1074  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1075  bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const override;
1076  private:
1077 
1079  QString mImageFilePath;
1081  double mOpacity = 1.0;
1082 
1083  QPointF mOffset;
1085  QgsMapUnitScale mOffsetMapUnitScale;
1086 
1087  double mWidth = 0.0;
1089  QgsMapUnitScale mWidthMapUnitScale;
1090 
1092  void applyPattern( QBrush &brush, const QString &imageFilePath, double width, double opacity,
1093  const QgsSymbolRenderContext &context );
1094 };
1095 
1101 {
1102  public:
1103 
1107  QgsSVGFillSymbolLayer( const QString &svgFilePath, double width = 20, double rotation = 0.0 );
1108 
1112  QgsSVGFillSymbolLayer( const QByteArray &svgData, double width = 20, double rotation = 0.0 );
1113 
1115 
1120  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1121 
1126  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1127 
1133  static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
1134 
1135  // implemented from base classes
1136 
1137  QString layerType() const override;
1138  void startRender( QgsSymbolRenderContext &context ) override;
1139  void stopRender( QgsSymbolRenderContext &context ) override;
1140  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1141  QVariantMap properties() const override;
1142  QgsSVGFillSymbolLayer *clone() const override SIP_FACTORY;
1143  void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override;
1144  bool usesMapUnits() const override;
1145  QgsSymbol *subSymbol() override;
1146  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1147  double estimateMaxBleed( const QgsRenderContext &context ) const override;
1148  QColor dxfColor( QgsSymbolRenderContext &context ) const override;
1149  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1150  bool hasDataDefinedProperties() const override;
1151 
1163  void setSvgFilePath( const QString &svgPath );
1164 
1170  QString svgFilePath() const { return mSvgFilePath; }
1171 
1181  void setPatternWidth( double width ) { mPatternWidth = width;}
1182 
1192  double patternWidth() const { return mPatternWidth; }
1193 
1203  void setSvgFillColor( const QColor &c ) { setColor( c ); }
1204 
1213  QColor svgFillColor() const { return color(); }
1214 
1224  void setSvgStrokeColor( const QColor &c ) { mSvgStrokeColor = c; }
1225 
1234  QColor svgStrokeColor() const { return mSvgStrokeColor; }
1235 
1246  void setSvgStrokeWidth( double w ) { mSvgStrokeWidth = w; }
1247 
1258  double svgStrokeWidth() const { return mSvgStrokeWidth; }
1259 
1267  void setPatternWidthUnit( QgsUnitTypes::RenderUnit unit ) { mPatternWidthUnit = unit; }
1268 
1276  QgsUnitTypes::RenderUnit patternWidthUnit() const { return mPatternWidthUnit; }
1277 
1285  void setPatternWidthMapUnitScale( const QgsMapUnitScale &scale ) { mPatternWidthMapUnitScale = scale; }
1286 
1294  const QgsMapUnitScale &patternWidthMapUnitScale() const { return mPatternWidthMapUnitScale; }
1295 
1303  void setSvgStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mSvgStrokeWidthUnit = unit; }
1304 
1312  QgsUnitTypes::RenderUnit svgStrokeWidthUnit() const { return mSvgStrokeWidthUnit; }
1313 
1321  void setSvgStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mSvgStrokeWidthMapUnitScale = scale; }
1322 
1330  const QgsMapUnitScale &svgStrokeWidthMapUnitScale() const { return mSvgStrokeWidthMapUnitScale; }
1331 
1332  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1333  QgsUnitTypes::RenderUnit outputUnit() const override;
1334 
1335  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1336  QgsMapUnitScale mapUnitScale() const override;
1337 
1342  QMap<QString, QgsProperty> parameters() const { return mParameters; }
1343 
1348  void setParameters( const QMap<QString, QgsProperty> &parameters );
1349 
1350  protected:
1351 
1352  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1353 
1354  private:
1355 
1357  double mPatternWidth = 20;
1359  QgsMapUnitScale mPatternWidthMapUnitScale;
1360  QMap<QString, QgsProperty> mParameters;
1361 
1363  QByteArray mSvgData;
1365  QString mSvgFilePath;
1367  QRectF mSvgViewBox;
1368 
1369  //param(fill), param(stroke), param(stroke-width) are going
1370  //to be replaced in memory
1371  QColor mSvgStrokeColor = QColor( 35, 35, 35 );
1372  double mSvgStrokeWidth = 0.2;
1374  QgsMapUnitScale mSvgStrokeWidthMapUnitScale;
1375 
1377  std::unique_ptr< QgsLineSymbol > mStroke;
1378 
1380  void storeViewBox();
1381  void setDefaultSvgParams(); //fills mSvgFillColor, mSvgStrokeColor, mSvgStrokeWidth with default values for mSvgFilePath
1382 
1384  void applyPattern( QBrush &brush, const QString &svgFilePath, double patternWidth, QgsUnitTypes::RenderUnit patternWidthUnit, const QColor &svgFillColor, const QColor &svgStrokeColor,
1385  double svgStrokeWidth, QgsUnitTypes::RenderUnit svgStrokeWidthUnit, const QgsSymbolRenderContext &context, const QgsMapUnitScale &patternWidthMapUnitScale, const QgsMapUnitScale &svgStrokeWidthMapUnitScale,
1386  const QgsStringMap svgParameters );
1387 };
1388 
1395 {
1396  public:
1399 
1404  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1405 
1410  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1411 
1412  QString layerType() const override;
1413  void startRender( QgsSymbolRenderContext &context ) override;
1414  void stopRender( QgsSymbolRenderContext &context ) override;
1415  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1416  QVariantMap properties() const override;
1417  QgsLinePatternFillSymbolLayer *clone() const override SIP_FACTORY;
1418  void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override;
1419  double estimateMaxBleed( const QgsRenderContext &context ) const override;
1420 
1421  QString ogrFeatureStyleWidth( double widthScaleFactor ) const;
1422 
1430  void setLineAngle( double a ) { mLineAngle = a; }
1431 
1439  double lineAngle() const { return mLineAngle; }
1440 
1447  void setDistance( double d ) { mDistance = d; }
1448 
1454  double distance() const { return mDistance; }
1455 
1462  void setLineWidth( double w );
1463 
1470  double lineWidth() const { return mLineWidth; }
1471 
1472  void setColor( const QColor &c ) override;
1473  QColor color() const override;
1474 
1486  void setOffset( double offset ) { mOffset = offset; }
1487 
1499  double offset() const { return mOffset; }
1500 
1507  void setDistanceUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceUnit = unit; }
1508 
1515  QgsUnitTypes::RenderUnit distanceUnit() const { return mDistanceUnit; }
1516 
1524  void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
1525 
1533  const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
1534 
1540  void setLineWidthUnit( QgsUnitTypes::RenderUnit unit ) { mLineWidthUnit = unit; }
1541 
1547  QgsUnitTypes::RenderUnit lineWidthUnit() const { return mLineWidthUnit; }
1548 
1556  void setLineWidthMapUnitScale( const QgsMapUnitScale &scale ) { mLineWidthMapUnitScale = scale; }
1557 
1565  const QgsMapUnitScale &lineWidthMapUnitScale() const { return mLineWidthMapUnitScale; }
1566 
1572  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
1573 
1579  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
1580 
1588  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1589 
1597  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1598 
1605  Qgis::LineClipMode clipMode() const { return mClipMode; }
1606 
1613  void setClipMode( Qgis::LineClipMode mode ) { mClipMode = mode; }
1614 
1615  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1616  QgsUnitTypes::RenderUnit outputUnit() const override;
1617  bool usesMapUnits() const override;
1618  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1619  QgsMapUnitScale mapUnitScale() const override;
1620  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1621  QgsSymbol *subSymbol() override;
1622  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1623  bool hasDataDefinedProperties() const override;
1624  void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1625  void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1626 
1627  protected:
1628 
1629  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1630 
1631  private:
1633  double mDistance = 5.0;
1635  QgsMapUnitScale mDistanceMapUnitScale;
1637  double mLineWidth = 0;
1639  QgsMapUnitScale mLineWidthMapUnitScale;
1641  double mLineAngle = 45.0;
1643  double mOffset = 0.0;
1645  QgsMapUnitScale mOffsetMapUnitScale;
1646 
1647  bool mRenderUsingLines = false;
1648 
1649 #ifdef SIP_RUN
1651 #endif
1652 
1654  void applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double lineAngle, double distance );
1655 
1657  std::unique_ptr< QgsLineSymbol > mFillLineSymbol;
1658 
1660 };
1661 
1668 {
1669  public:
1672 
1678  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1679  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1680 
1681  QString layerType() const override;
1682  void startRender( QgsSymbolRenderContext &context ) override;
1683  void stopRender( QgsSymbolRenderContext &context ) override;
1684  void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1685  void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1686  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1687  QVariantMap properties() const override;
1688  QgsPointPatternFillSymbolLayer *clone() const override SIP_FACTORY;
1689  void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override;
1690  double estimateMaxBleed( const QgsRenderContext &context ) const override;
1691  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1692  QgsSymbol *subSymbol() override;
1693  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1694  QgsUnitTypes::RenderUnit outputUnit() const override;
1695  bool usesMapUnits() const override;
1696  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1697  QgsMapUnitScale mapUnitScale() const override;
1698  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1699  bool hasDataDefinedProperties() const override;
1700  void setColor( const QColor &c ) override;
1701  QColor color() const override;
1702 
1712  double distanceX() const { return mDistanceX; }
1713 
1723  void setDistanceX( double d ) { mDistanceX = d; }
1724 
1731  void setDistanceXUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceXUnit = unit; }
1732 
1738  QgsUnitTypes::RenderUnit distanceXUnit() const { return mDistanceXUnit; }
1739 
1746  void setDistanceXMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceXMapUnitScale = scale; }
1747 
1754  const QgsMapUnitScale &distanceXMapUnitScale() const { return mDistanceXMapUnitScale; }
1755 
1765  double distanceY() const { return mDistanceY; }
1766 
1776  void setDistanceY( double d ) { mDistanceY = d; }
1777 
1784  void setDistanceYUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceYUnit = unit; }
1785 
1791  QgsUnitTypes::RenderUnit distanceYUnit() const { return mDistanceYUnit; }
1792 
1799  void setDistanceYMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceYMapUnitScale = scale; }
1800 
1807  const QgsMapUnitScale &distanceYMapUnitScale() const { return mDistanceYMapUnitScale; }
1808 
1818  double displacementX() const { return mDisplacementX; }
1819 
1829  void setDisplacementX( double d ) { mDisplacementX = d; }
1830 
1837  void setDisplacementXUnit( QgsUnitTypes::RenderUnit unit ) { mDisplacementXUnit = unit; }
1838 
1844  QgsUnitTypes::RenderUnit displacementXUnit() const { return mDisplacementXUnit; }
1845 
1852  void setDisplacementXMapUnitScale( const QgsMapUnitScale &scale ) { mDisplacementXMapUnitScale = scale; }
1853 
1860  const QgsMapUnitScale &displacementXMapUnitScale() const { return mDisplacementXMapUnitScale; }
1861 
1871  double displacementY() const { return mDisplacementY; }
1872 
1882  void setDisplacementY( double d ) { mDisplacementY = d; }
1883 
1890  void setDisplacementYUnit( QgsUnitTypes::RenderUnit unit ) { mDisplacementYUnit = unit; }
1891 
1897  QgsUnitTypes::RenderUnit displacementYUnit() const { return mDisplacementYUnit; }
1898 
1905  void setDisplacementYMapUnitScale( const QgsMapUnitScale &scale ) { mDisplacementYMapUnitScale = scale; }
1906 
1913  const QgsMapUnitScale &displacementYMapUnitScale() const { return mDisplacementYMapUnitScale; }
1914 
1922  void setOffsetX( double offset ) { mOffsetX = offset; }
1923 
1930  double offsetX() const { return mOffsetX; }
1931 
1939  void setOffsetY( double offset ) { mOffsetY = offset; }
1940 
1947  double offsetY() const { return mOffsetY; }
1948 
1956  void setOffsetXUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetXUnit = unit; }
1957 
1964  QgsUnitTypes::RenderUnit offsetXUnit() const { return mOffsetXUnit; }
1965 
1973  void setOffsetXMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetXMapUnitScale = scale; }
1974 
1981  const QgsMapUnitScale &offsetXMapUnitScale() const { return mOffsetXMapUnitScale; }
1982 
1990  void setOffsetYUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetYUnit = unit; }
1991 
1998  QgsUnitTypes::RenderUnit offsetYUnit() const { return mOffsetYUnit; }
1999 
2007  void setOffsetYMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetYMapUnitScale = scale; }
2008 
2015  const QgsMapUnitScale &offsetYMapUnitScale() const { return mOffsetYMapUnitScale; }
2016 
2023  Qgis::MarkerClipMode clipMode() const { return mClipMode; }
2024 
2031  void setClipMode( Qgis::MarkerClipMode mode ) { mClipMode = mode; }
2032 
2042  void setMaximumRandomDeviationX( double deviation ) { mRandomDeviationX = deviation; }
2043 
2053  double maximumRandomDeviationX() const { return mRandomDeviationX; }
2054 
2064  void setMaximumRandomDeviationY( double deviation ) { mRandomDeviationY = deviation; }
2065 
2075  double maximumRandomDeviationY() const { return mRandomDeviationY; }
2076 
2084  void setRandomDeviationXUnit( QgsUnitTypes::RenderUnit unit ) { mRandomDeviationXUnit = unit; }
2085 
2093  QgsUnitTypes::RenderUnit randomDeviationXUnit() const { return mRandomDeviationXUnit; }
2094 
2102  void setRandomDeviationYUnit( QgsUnitTypes::RenderUnit unit ) { mRandomDeviationYUnit = unit; }
2103 
2112  QgsUnitTypes::RenderUnit randomDeviationYUnit() const { return mRandomDeviationYUnit; }
2113 
2121  const QgsMapUnitScale &randomDeviationXMapUnitScale() const { return mRandomDeviationXMapUnitScale; }
2122 
2130  const QgsMapUnitScale &randomDeviationYMapUnitScale() const { return mRandomDeviationYMapUnitScale; }
2131 
2139  void setRandomDeviationXMapUnitScale( const QgsMapUnitScale &scale ) { mRandomDeviationXMapUnitScale = scale; }
2140 
2148  void setRandomDeviationYMapUnitScale( const QgsMapUnitScale &scale ) { mRandomDeviationYMapUnitScale = scale; }
2149 
2156  unsigned long seed() const { return mSeed; }
2157 
2166  void setSeed( unsigned long seed ) { mSeed = seed; }
2167 
2174  double angle() const { return mAngle; }
2175 
2182  void setAngle( double angle ) { mAngle = angle; }
2183 
2184  protected:
2185  std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol;
2186  double mDistanceX = 15;
2189  double mDistanceY = 15;
2192  double mDisplacementX = 0;
2195  double mDisplacementY = 0;
2198  double mOffsetX = 0;
2201  double mOffsetY = 0;
2204 
2205  double mRandomDeviationX = 0;
2208  double mRandomDeviationY = 0;
2211  unsigned long mSeed = 0;
2212 
2213  double mAngle = 0;
2214 
2215  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
2216 
2217  private:
2218 #ifdef SIP_RUN
2220 #endif
2221 
2222  void applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double distanceX, double distanceY,
2223  double displacementX, double displacementY, double offsetX, double offsetY );
2224 
2226 
2227  bool mRenderUsingMarkers = false;
2228 };
2229 
2239 {
2240  public:
2241 
2248  QgsRandomMarkerFillSymbolLayer( int pointCount = 10, Qgis::PointCountMethod method = Qgis::PointCountMethod::Absolute, double densityArea = 250.0, unsigned long seed = 0 );
2249 
2251 
2257  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2258 
2259  QString layerType() const override;
2260  void startRender( QgsSymbolRenderContext &context ) override;
2261  void stopRender( QgsSymbolRenderContext &context ) override;
2262  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2263  QVariantMap properties() const override;
2264  QgsRandomMarkerFillSymbolLayer *clone() const override SIP_FACTORY;
2265  bool canCauseArtifactsBetweenAdjacentTiles() const override;
2266 
2267  void setColor( const QColor &color ) override;
2268  QColor color() const override;
2269 
2270  QgsSymbol *subSymbol() override;
2271  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
2272 
2273  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
2274  QgsUnitTypes::RenderUnit outputUnit() const override;
2275  bool usesMapUnits() const override;
2276 
2277  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2278  QgsMapUnitScale mapUnitScale() const override;
2279 
2280  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2281  bool hasDataDefinedProperties() const override;
2282 
2288  int pointCount() const;
2289 
2295  void setPointCount( int count );
2296 
2302  unsigned long seed() const;
2303 
2311  void setSeed( unsigned long seed );
2312 
2318  bool clipPoints() const;
2319 
2325  void setClipPoints( bool clipped );
2326 
2332  Qgis::PointCountMethod countMethod() const;
2333 
2339  void setCountMethod( Qgis::PointCountMethod method );
2340 
2350  double densityArea() const;
2351 
2357  void setDensityArea( double area );
2358 
2364  void setDensityAreaUnit( QgsUnitTypes::RenderUnit unit ) { mDensityAreaUnit = unit; }
2365 
2370  QgsUnitTypes::RenderUnit densityAreaUnit() const { return mDensityAreaUnit; }
2371 
2379  void setDensityAreaUnitScale( const QgsMapUnitScale &scale ) { mDensityAreaUnitScale = scale; }
2380 
2387  const QgsMapUnitScale &densityAreaUnitScale() const { return mDensityAreaUnitScale; }
2388 
2389  void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2390  void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2391 
2392  private:
2393 #ifdef SIP_RUN
2395 #endif
2396 
2397  struct Part
2398  {
2399  QPolygonF exterior;
2400  QVector<QPolygonF> rings;
2401  };
2402 
2403  QVector< Part > mCurrentParts;
2404 
2405  void render( QgsRenderContext &context, const QVector< Part > &parts, const QgsFeature &feature, bool selected );
2406 
2407  std::unique_ptr< QgsMarkerSymbol > mMarker;
2408  Qgis::PointCountMethod mCountMethod = Qgis::PointCountMethod::Absolute;
2409  int mPointCount = 10;
2410  double mDensityArea = 250.0;
2412  QgsMapUnitScale mDensityAreaUnitScale;
2413  unsigned long mSeed = 0;
2414  bool mClipPoints = false;
2415 
2416  bool mRenderingFeature = false;
2417  double mFeatureSymbolOpacity = 1;
2418 };
2419 
2420 
2426 {
2427  public:
2430 
2431  // static stuff
2432 
2438  static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2439  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
2440 
2441  // implemented from base classes
2442 
2443  QString layerType() const override;
2444  void startRender( QgsSymbolRenderContext &context ) override;
2445  void stopRender( QgsSymbolRenderContext &context ) override;
2446  void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2447  QVariantMap properties() const override;
2448  QgsCentroidFillSymbolLayer *clone() const override SIP_FACTORY;
2449  void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override;
2450  void setColor( const QColor &color ) override;
2451  QColor color() const override;
2452  QgsSymbol *subSymbol() override;
2453  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
2454  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
2455  QgsUnitTypes::RenderUnit outputUnit() const override;
2456  bool usesMapUnits() const override;
2457  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2458  QgsMapUnitScale mapUnitScale() const override;
2459  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2460  bool hasDataDefinedProperties() const override;
2461  bool canCauseArtifactsBetweenAdjacentTiles() const override;
2462 
2463  void setPointOnSurface( bool pointOnSurface ) { mPointOnSurface = pointOnSurface; }
2464  bool pointOnSurface() const { return mPointOnSurface; }
2465 
2471  void setPointOnAllParts( bool pointOnAllParts ) { mPointOnAllParts = pointOnAllParts; }
2472 
2478  bool pointOnAllParts() const { return mPointOnAllParts; }
2479 
2486  bool clipPoints() const { return mClipPoints; }
2487 
2494  void setClipPoints( bool clipPoints ) { mClipPoints = clipPoints; }
2495 
2502  bool clipOnCurrentPartOnly() const { return mClipOnCurrentPartOnly; }
2503 
2510  void setClipOnCurrentPartOnly( bool clipOnCurrentPartOnly ) { mClipOnCurrentPartOnly = clipOnCurrentPartOnly; }
2511 
2512  void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2513  void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2514 
2515  protected:
2516 
2517  std::unique_ptr< QgsMarkerSymbol > mMarker;
2518  bool mPointOnSurface = false;
2519  bool mPointOnAllParts = true;
2520  bool mClipPoints = false;
2521  bool mClipOnCurrentPartOnly = false;
2522 
2523  bool mRenderingFeature = false;
2524  double mFeatureSymbolOpacity = 1;
2525 
2526  private:
2527 #ifdef SIP_RUN
2529 #endif
2530  struct Part
2531  {
2532  QPolygonF exterior;
2533  QVector<QPolygonF> rings;
2534  };
2535 
2536  void render( QgsRenderContext &context, const QVector<Part> &parts, const QgsFeature &feature, bool selected );
2537  QVector<Part> mCurrentParts;
2538 };
2539 
2540 #endif
2541 
2542 
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:64
MarkerClipMode
Marker clipping modes.
Definition: qgis.h:1176
@ Shape
Clip to polygon shape.
LineClipMode
Line clipping modes.
Definition: qgis.h:1190
@ ClipPainterOnly
Applying clipping on the painter only (i.e. line endpoints will coincide with polygon bounding box,...
GradientColorSource
Gradient color sources.
Definition: qgis.h:1105
@ SimpleTwoColor
Simple two color gradient.
GradientSpread
Gradient spread options, which control how gradients are rendered outside of their start and end poin...
Definition: qgis.h:1149
@ Pad
Pad out gradient using colors at endpoint of gradient.
PointCountMethod
Methods which define the number of points randomly filling a polygon.
Definition: qgis.h:1164
GradientType
Gradient types.
Definition: qgis.h:1119
@ Linear
Linear gradient.
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition: qgis.h:1134
@ Feature
Relative to feature/shape being rendered.
void setPointOnAllParts(bool pointOnAllParts)
Sets whether a point is drawn for all parts or only on the biggest part of multi-part features.
void setClipOnCurrentPartOnly(bool clipOnCurrentPartOnly)
Sets whether point markers should be clipped to the current part boundary only.
void setClipPoints(bool clipPoints)
Sets whether point markers should be clipped to the polygon boundary.
std::unique_ptr< QgsMarkerSymbol > mMarker
bool pointOnAllParts() const
Returns whether a point is drawn for all parts or only on the biggest part of multi-part features.
bool clipPoints() const
Returns true if point markers should be clipped to the polygon boundary.
~QgsCentroidFillSymbolLayer() override
bool clipOnCurrentPartOnly() const
Returns true if point markers should be clipped to the current part boundary only.
Abstract base class for color ramps.
Definition: qgscolorramp.h:30
Exports QGIS layers to the DXF format.
Definition: qgsdxfexport.h:65
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
virtual void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context)=0
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
double angle() const
QgsColorRamp * colorRamp()
Returns the color ramp used for the gradient fill.
QColor color2() const
Returns the color for endpoint of gradient, only used if the gradient color type is set to SimpleTwoC...
void setGradientSpread(Qgis::GradientSpread gradientSpread)
Sets the gradient spread mode, which controls how the gradient behaves outside of the predefined stop...
Qgis::SymbolCoordinateReference coordinateMode() const
Returns the coordinate mode for gradient, which controls how the gradient stops are positioned.
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the fill's offset.
bool referencePoint2IsCentroid() const
Returns whether the end point for the gradient is taken from the feature centroid.
void setGradientType(Qgis::GradientType gradientType)
Sets the type of gradient, e.g., linear or radial.
void setReferencePoint2(QPointF referencePoint)
Sets the end point of gradient fill, in the range [0,0] - [1,1].
void setCoordinateMode(Qgis::SymbolCoordinateReference coordinateMode)
Sets the coordinate mode for gradient, which controls how the gradient stops are positioned.
Qgis::SymbolCoordinateReference mCoordinateMode
Qgis::GradientSpread mGradientSpread
void setReferencePoint2IsCentroid(bool isCentroid)
Sets whether the end point for the gradient is taken from the feature centroid.
Qgis::GradientType mGradientType
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
void setReferencePoint1IsCentroid(bool isCentroid)
Sets whether the starting point for the gradient is taken from the feature centroid.
void setOffset(QPointF offset)
Sets an offset by which polygons will be translated during rendering.
void setGradientColorType(Qgis::GradientColorSource gradientColorType)
Sets the gradient color mode, which controls how gradient color stops are created.
QPointF referencePoint1() const
Returns the starting point of gradient fill, in the range [0,0] - [1,1].
Qgis::GradientSpread gradientSpread() const
Returns the gradient spread mode, which controls how the gradient behaves outside of the predefined s...
void setReferencePoint1(QPointF referencePoint)
Sets the starting point of gradient fill, in the range [0,0] - [1,1].
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the fill's offset.
Qgis::GradientColorSource gradientColorType() const
Returns the gradient color mode, which controls how gradient color stops are created.
QPointF offset() const
Returns the offset by which polygons will be translated during rendering.
Qgis::GradientColorSource mGradientColorType
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill's offset.
Qgis::GradientType gradientType() const
Returns the type of gradient, e.g., linear or radial.
bool referencePoint1IsCentroid() const
Returns whether the starting point for the gradient is taken from the feature centroid.
QPointF referencePoint2() const
Returns the end point of gradient fill, in the range [0,0] - [1,1].
void setColor2(const QColor &color2)
Sets the color for endpoint of gradient, only used if the gradient color type is set to SimpleTwoColo...
Base class for polygon renderers generating texture images.
QgsMapUnitScale mStrokeWidthMapUnitScale
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the stroke width map unit scale.
Qgis::SymbolCoordinateReference coordinateReference() const
Returns the coordinate reference mode for fill which controls how the top left corner of the image fi...
void setCoordinateReference(Qgis::SymbolCoordinateReference coordinateReference)
Sets the coordinate reference mode for fill which controls how the top left corner of the image fill ...
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the units for the symbol's stroke width.
virtual void applyDataDefinedSettings(QgsSymbolRenderContext &context)
Applies data defined settings prior to generating the fill symbol brush.
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units fo the symbol's stroke width.
~QgsImageFillSymbolLayer() override
const QgsMapUnitScale & strokeWidthMapUnitScale() const
Returns the stroke width map unit scale.
A symbol fill consisting of repeated parallel lines.
void setLineWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the line's width.
void setLineWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's line width.
double lineWidth() const
Returns the width of the line subsymbol used to render the parallel lines in the fill.
const QgsMapUnitScale & lineWidthMapUnitScale() const
Returns the map unit scale for the pattern's line width.
QgsUnitTypes::RenderUnit lineWidthUnit() const
Returns the units for the line's width.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the pattern's line offset.
void setDistanceMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's line distance.
Qgis::LineClipMode clipMode() const
Returns the line clipping mode, which defines how lines are clipped at the edges of shapes.
double lineAngle() const
Returns the angle for the parallel lines used to fill the symbol.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the line pattern's offset.
void setDistance(double d)
Sets the distance between lines in the fill pattern.
void setDistanceUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the distance between lines in the fill pattern.
void setClipMode(Qgis::LineClipMode mode)
Sets the line clipping mode, which defines how lines are clipped at the edges of shapes.
double offset() const
Returns the offset distance for lines within the fill, which is the distance to offset the parallel l...
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the line pattern's offset.
double distance() const
Returns the distance between lines in the fill pattern.
QgsUnitTypes::RenderUnit distanceUnit() const
Returns the units for the distance between lines in the fill pattern.
void setOffset(double offset)
Sets the offset distance for lines within the fill, which is the distance to offset the parallel line...
const QgsMapUnitScale & distanceMapUnitScale() const
Returns the map unit scale for the pattern's line distance.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's line offset.
~QgsLinePatternFillSymbolLayer() override
A line symbol type, for rendering LineString and MultiLineString geometries.
Definition: qgslinesymbol.h:30
Struct for storing maximum and minimum scales for measurements in map units.
A marker symbol type, for rendering Point and MultiPoint geometries.
Resolves relative paths into absolute paths and vice versa.
A fill symbol layer which fills polygon shapes with repeating marker symbols.
void setDisplacementX(double d)
Sets the horizontal displacement for odd numbered rows in the pattern.
const QgsMapUnitScale & displacementYMapUnitScale() const
Returns the map unit scale for the vertical displacement between odd numbered columns in the pattern.
void setOffsetYUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the vertical offset for rows in the pattern.
void setRandomDeviationXUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the horizontal random deviation of points in the pattern.
void setOffsetX(double offset)
Sets the horizontal offset values for points in the pattern.
double maximumRandomDeviationY() const
Returns the maximum vertical random deviation of points in the pattern.
QgsUnitTypes::RenderUnit offsetYUnit() const
Returns the units for the vertical offset for rows in the pattern.
double displacementY() const
Returns the vertical displacement for odd numbered columns in the pattern.
void setRandomDeviationYMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the vertical random deviation of points in the pattern.
const QgsMapUnitScale & offsetYMapUnitScale() const
Returns the unit scale for the vertical offset between rows in the pattern.
unsigned long seed() const
Returns the random number seed to use when randomly shifting points, or 0 if a truly random sequence ...
Qgis::MarkerClipMode clipMode() const
Returns the marker clipping mode, which defines how markers are clipped at the edges of shapes.
QgsUnitTypes::RenderUnit displacementYUnit() const
Returns the units for the vertical displacement between rows in the pattern.
void setRandomDeviationXMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the horizontal random deviation of points in the pattern.
QgsUnitTypes::RenderUnit distanceYUnit() const
Returns the units for the vertical distance between points in the pattern.
QgsUnitTypes::RenderUnit randomDeviationYUnit() const
Returns the units for the vertical random deviation of points in the pattern.
double offsetY() const
Returns the vertical offset values for points in the pattern.
void setDisplacementY(double d)
Sets the vertical displacement for odd numbered columns in the pattern.
QgsUnitTypes::RenderUnit randomDeviationXUnit() const
Returns the units for the horizontal random deviation of points in the pattern.
const QgsMapUnitScale & distanceYMapUnitScale() const
Returns the map unit scale for the vertical distance between points in the pattern.
void setMaximumRandomDeviationX(double deviation)
Sets the maximum horizontal random deviation of points in the pattern.
void setDisplacementYMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the vertical displacement between odd numbered columns in the pattern.
void setSeed(unsigned long seed)
Sets the random number seed to use when randomly shifting points, or 0 if a truly random sequence wil...
void setOffsetY(double offset)
Sets the vertical offset values for points in the pattern.
QgsUnitTypes::RenderUnit offsetXUnit() const
Returns the units for the horizontal offset for rows in the pattern.
void setDistanceXUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the horizontal distance between points in the pattern.
void setDistanceXMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the horizontal distance between points in the pattern.
const QgsMapUnitScale & offsetXMapUnitScale() const
Returns the unit scale for the horizontal offset for rows in the pattern.
const QgsMapUnitScale & randomDeviationXMapUnitScale() const
Returns the unit scale for the horizontal random deviation of points in the pattern.
void setOffsetYMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the vertical offset for rows in the pattern.
void setDistanceY(double d)
Sets the vertical distance between rendered markers in the fill.
void setDisplacementYUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the vertical displacement between rows in the pattern.
void setDistanceX(double d)
Sets the horizontal distance between rendered markers in the fill.
double offsetX() const
Returns the horizontal offset values for points in the pattern.
double maximumRandomDeviationX() const
Returns the maximum horizontal random deviation of points in the pattern.
const QgsMapUnitScale & randomDeviationYMapUnitScale() const
Returns the unit scale for the vertical random deviation of points in the pattern.
std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol
void setDisplacementXUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the horizontal displacement between rows in the pattern.
void setDisplacementXMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the horizontal displacement between odd numbered rows in the pattern.
void setMaximumRandomDeviationY(double deviation)
Sets the maximum vertical random deviation of points in the pattern.
void setDistanceYMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the vertical distance between points in the pattern.
void setRandomDeviationYUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the vertical random deviation of points in the pattern.
QgsUnitTypes::RenderUnit displacementXUnit() const
Returns the units for the horizontal displacement between rows in the pattern.
double displacementX() const
Returns the horizontal displacement for odd numbered rows in the pattern.
void setOffsetXMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the horizontal offset for rows in the pattern.
double angle() const
Returns the rotation angle of the pattern, in degrees clockwise.
void setOffsetXUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the horizontal offset between rows in the pattern.
const QgsMapUnitScale & distanceXMapUnitScale() const
Returns the map unit scale for the horizontal distance between points in the pattern.
~QgsPointPatternFillSymbolLayer() override
QgsUnitTypes::RenderUnit distanceXUnit() const
Returns the units for the horizontal distance between points in the pattern.
void setDistanceYUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the vertical distance between points in the pattern.
void setAngle(double angle)
Sets the rotation angle of the pattern, in degrees clockwise.
double distanceY() const
Returns the vertical distance between rendered markers in the fill.
void setClipMode(Qgis::MarkerClipMode mode)
Sets the marker clipping mode, which defines how markers are clipped at the edges of shapes.
const QgsMapUnitScale & displacementXMapUnitScale() const
Returns the map unit scale for the horizontal displacement between odd numbered rows in the pattern.
A fill symbol layer which places markers at random locations within polygons.
~QgsRandomMarkerFillSymbolLayer() override
QgsUnitTypes::RenderUnit densityAreaUnit() const
Returns the units for the density area.
void setDensityAreaUnitScale(const QgsMapUnitScale &scale)
Sets the map scale for the density area.
const QgsMapUnitScale & densityAreaUnitScale() const
Returns the map scale for the density area.
A class for filling symbols with a repeated raster image.
double width() const
Returns the width used for scaling the image used in the fill.
void setWidthUnit(const QgsUnitTypes::RenderUnit unit)
Sets the units for the image's width.
void setOffsetUnit(const QgsUnitTypes::RenderUnit unit)
Sets the units for the fill's offset.
Qgis::SymbolCoordinateReference coordinateMode() const
Coordinate mode for fill.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
QgsUnitTypes::RenderUnit widthUnit() const
Returns the units for the image's width.
void setWidth(const double width)
Sets the width for scaling the image used in the fill.
double opacity() const
Returns the opacity for the raster image used in the fill.
~QgsRasterFillSymbolLayer() override
const QgsMapUnitScale & widthMapUnitScale() const
Returns the map unit scale for the image's width.
void setWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the image's width.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the fill's offset.
QString imageFilePath() const
The path to the raster image used for the fill.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill's offset.
QPointF offset() const
Returns the offset for the fill.
void setOffset(QPointF offset)
Sets the offset for the fill.
Contains information about the context of a rendering operation.
A class for filling symbols with a repeated SVG file.
QMap< QString, QgsProperty > parameters() const
Returns the dynamic SVG parameters.
void setSvgStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's stroke.
void setPatternWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the width of the SVG images in the pattern.
QColor svgStrokeColor() const
Returns the stroke color used for rendering the SVG content.
const QgsMapUnitScale & svgStrokeWidthMapUnitScale() const
Returns the map unit scale for the pattern's stroke.
void setSvgFillColor(const QColor &c)
Sets the fill color used for rendering the SVG content.
QgsUnitTypes::RenderUnit svgStrokeWidthUnit() const
Returns the units for the stroke width.
double svgStrokeWidth() const
Returns the stroke width used for rendering the SVG content.
void setSvgStrokeWidth(double w)
Sets the stroke width used for rendering the SVG content.
QColor svgFillColor() const
Returns the fill color used for rendering the SVG content.
const QgsMapUnitScale & patternWidthMapUnitScale() const
Returns the map unit scale for the pattern's width.
void setSvgStrokeColor(const QColor &c)
Sets the stroke color used for rendering the SVG content.
void setSvgStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the stroke width.
void setPatternWidth(double width)
Sets the width to render the SVG content as within the fill (i.e.
double patternWidth() const
Returns the width of the rendered SVG content within the fill (i.e.
~QgsSVGFillSymbolLayer() override
QgsUnitTypes::RenderUnit patternWidthUnit() const
Returns the units for the width of the SVG images in the pattern.
void setPatternWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's width.
~QgsShapeburstFillSymbolLayer() override
int blurRadius() const
Returns the blur radius, which controls the amount of blurring applied to the fill.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
QgsColorRamp * colorRamp()
Returns the color ramp used for the shapeburst fill.
void setOffset(QPointF offset)
Sets the offset for the shapeburst fill.
const QgsMapUnitScale & distanceMapUnitScale() const
void setUseWholeShape(bool useWholeShape)
Sets whether the shapeburst fill should be drawn using the entire shape.
QgsShapeburstFillSymbolLayer & operator=(const QgsShapeburstFillSymbolLayer &other)=delete
QgsShapeburstFillSymbolLayer cannot be copied.
QColor color2() const
Returns the color used for the endpoint of the shapeburst fill.
void setDistanceUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the maximum distance to shade inside of the shape from the polygon's boundary.
QgsUnitTypes::RenderUnit distanceUnit() const
Returns the unit for the maximum distance to shade inside of the shape from the polygon's boundary.
void setIgnoreRings(bool ignoreRings)
Sets whether the shapeburst fill should ignore polygon rings when calculating the buffered shading.
void setMaxDistance(double maxDistance)
Sets the maximum distance to shape inside of the shape from the polygon's boundary.
void setColor2(const QColor &color2)
Sets the color for the endpoint of the shapeburst fill.
const QgsMapUnitScale & offsetMapUnitScale() const
QPointF offset() const
Returns the offset for the shapeburst fill.
bool useWholeShape() const
Returns whether the shapeburst fill is set to cover the entire shape.
bool ignoreRings() const
Returns whether the shapeburst fill is set to ignore polygon interior rings.
double maxDistance() const
Returns the maximum distance from the shape's boundary which is shaded.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units used for the offset of the shapeburst fill.
void setDistanceMapUnitScale(const QgsMapUnitScale &scale)
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the units used for the offset for the shapeburst fill.
void setColorType(Qgis::GradientColorSource colorType)
Sets the color mode to use for the shapeburst fill.
Qgis::GradientColorSource colorType() const
Returns the color mode used for the shapeburst fill.
QgsShapeburstFillSymbolLayer(const QgsShapeburstFillSymbolLayer &other)=delete
QgsShapeburstFillSymbolLayer cannot be copied.
Qt::PenJoinStyle penJoinStyle() const
QColor strokeColor() const override
Returns the stroke color for the symbol layer.
void setBrushStyle(Qt::BrushStyle style)
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill's offset.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the fill's offset.
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the units for the width of the fill's stroke.
~QgsSimpleFillSymbolLayer() override
void setPenJoinStyle(Qt::PenJoinStyle style)
QColor fillColor() const override
Returns the fill color for the symbol layer.
Qt::PenStyle strokeStyle() const
QgsMapUnitScale mOffsetMapUnitScale
void setStrokeWidth(double strokeWidth)
void setStrokeStyle(Qt::PenStyle strokeStyle)
QgsMapUnitScale mStrokeWidthMapUnitScale
const QgsMapUnitScale & strokeWidthMapUnitScale() const
void setFillColor(const QColor &color) override
Sets the fill color for the symbol layer.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
QPointF offset()
Returns the offset by which polygons will be translated during rendering.
void setOffset(QPointF offset)
Sets an offset by which polygons will be translated during rendering.
void setStrokeColor(const QColor &strokeColor) override
Sets the stroke color for the symbol layer.
Qt::PenJoinStyle mPenJoinStyle
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the fill's offset.
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the width of the fill's stroke.
virtual void setOutputUnit(QgsUnitTypes::RenderUnit unit)
Sets the units to use for sizes and widths within the symbol layer.
virtual bool setSubSymbol(QgsSymbol *symbol)
Sets layer's subsymbol. takes ownership of the passed symbol.
virtual void startFeatureRender(const QgsFeature &feature, QgsRenderContext &context)
Called before the layer will be rendered for a particular feature.
virtual QgsMapUnitScale mapUnitScale() const
virtual QColor dxfBrushColor(QgsSymbolRenderContext &context) const
Gets brush/fill color.
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const
Returns the set of attributes referenced by the layer.
virtual double estimateMaxBleed(const QgsRenderContext &context) const
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
virtual void startRender(QgsSymbolRenderContext &context)=0
Called before a set of rendering operations commences on the supplied render context.
virtual QgsSymbolLayer * clone() const =0
Shall be reimplemented by subclasses to create a deep copy of the instance.
virtual QVariantMap properties() const =0
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
virtual Qt::PenStyle dxfPenStyle() const
Gets pen style.
virtual QColor dxfColor(QgsSymbolRenderContext &context) const
Gets color.
virtual QString layerType() const =0
Returns a string that represents this layer type.
virtual void stopRender(QgsSymbolRenderContext &context)=0
Called after a set of rendering operations has finished on the supplied render context.
virtual QgsUnitTypes::RenderUnit outputUnit() const
Returns the units to use for sizes and widths within the symbol layer.
virtual void setColor(const QColor &color)
Sets the "representative" color for the symbol layer.
virtual QgsSymbol * subSymbol()
Returns the symbol's sub symbol, if present.
virtual QColor color() const
Returns the "representative" color of the symbol layer.
virtual void stopFeatureRender(const QgsFeature &feature, QgsRenderContext &context)
Called after the layer has been rendered for a particular feature.
virtual double dxfWidth(const QgsDxfExport &e, QgsSymbolRenderContext &context) const
Gets line width.
virtual QColor strokeColor() const
Returns the stroke color for the symbol layer.
virtual double dxfAngle(QgsSymbolRenderContext &context) const
Gets angle.
virtual bool canCauseArtifactsBetweenAdjacentTiles() const
Returns true if the symbol layer rendering can cause visible artifacts across a single feature when t...
virtual void setMapUnitScale(const QgsMapUnitScale &scale)
virtual bool usesMapUnits() const
Returns true if the symbol layer has any components which use map unit based sizes.
virtual Qt::BrushStyle dxfBrushStyle() const
Gets brush/fill style.
virtual bool hasDataDefinedProperties() const
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:38
Helper functions for various unit types.
Definition: qgsunittypes.h:39
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:168
@ RenderPixels
Pixels.
Definition: qgsunittypes.h:171
@ RenderMillimeters
Millimeters.
Definition: qgsunittypes.h:169
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:786
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
QMap< QString, QString > QgsStringMap
Definition: qgis.h:2026
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define DEFAULT_SIMPLEFILL_JOINSTYLE
#define DEFAULT_SIMPLEFILL_COLOR
#define DEFAULT_SIMPLEFILL_STYLE
#define DEFAULT_SIMPLEFILL_BORDERSTYLE
#define DEFAULT_SIMPLEFILL_BORDERCOLOR
#define DEFAULT_SIMPLEFILL_BORDERWIDTH