QGIS API Documentation  3.2.0-Bonn (bc43194)
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 QGSFILLSYMBOLLAYERV2_H
17 #define QGSFILLSYMBOLLAYERV2_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 
39 class CORE_EXPORT QgsSimpleFillSymbolLayer : public QgsFillSymbolLayer
40 {
41  public:
43  Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE,
44  const QColor &strokeColor = DEFAULT_SIMPLEFILL_BORDERCOLOR,
45  Qt::PenStyle strokeStyle = DEFAULT_SIMPLEFILL_BORDERSTYLE,
46  double strokeWidth = DEFAULT_SIMPLEFILL_BORDERWIDTH,
47  Qt::PenJoinStyle penJoinStyle = DEFAULT_SIMPLEFILL_JOINSTYLE
48  );
49 
50  // static stuff
51 
52  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
53  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
54 
55  // implemented from base classes
56 
57  QString layerType() const override;
58 
59  void startRender( QgsSymbolRenderContext &context ) override;
60 
61  void stopRender( QgsSymbolRenderContext &context ) override;
62 
63  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
64 
65  QgsStringMap properties() const override;
66 
67  QgsSimpleFillSymbolLayer *clone() const override SIP_FACTORY;
68 
69  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
70 
71  QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
72 
73  Qt::BrushStyle brushStyle() const { return mBrushStyle; }
74  void setBrushStyle( Qt::BrushStyle style ) { mBrushStyle = style; }
75 
76  QColor strokeColor() const override { return mStrokeColor; }
77  void setStrokeColor( const QColor &strokeColor ) override { mStrokeColor = strokeColor; }
78 
79  QColor fillColor() const override { return color(); }
80  void setFillColor( const QColor &color ) override { setColor( color ); }
81 
82  Qt::PenStyle strokeStyle() const { return mStrokeStyle; }
83  void setStrokeStyle( Qt::PenStyle strokeStyle ) { mStrokeStyle = strokeStyle; }
84 
85  double strokeWidth() const { return mStrokeWidth; }
86  void setStrokeWidth( double strokeWidth ) { mStrokeWidth = strokeWidth; }
87 
88  Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
89  void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
90 
91  void setOffset( QPointF offset ) { mOffset = offset; }
92  QPointF offset() { return mOffset; }
93 
99  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
100 
105  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
106 
107  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
108  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
109 
115  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
116 
121  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
122 
123  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
124  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
125 
126  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
127  QgsUnitTypes::RenderUnit outputUnit() const override;
128 
129  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
130  QgsMapUnitScale mapUnitScale() const override;
131 
132  double estimateMaxBleed( const QgsRenderContext &context ) const override;
133 
134  double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
135  QColor dxfColor( QgsSymbolRenderContext &context ) const override;
136  double dxfAngle( QgsSymbolRenderContext &context ) const override;
137 
138  Qt::PenStyle dxfPenStyle() const override;
139  QColor dxfBrushColor( QgsSymbolRenderContext &context ) const override;
140  Qt::BrushStyle dxfBrushStyle() const override;
141 
142  protected:
143  QBrush mBrush;
144  QBrush mSelBrush;
145  Qt::BrushStyle mBrushStyle;
146  QColor mStrokeColor;
147  Qt::PenStyle mStrokeStyle;
148  double mStrokeWidth;
151  Qt::PenJoinStyle mPenJoinStyle;
152  QPen mPen;
153  QPen mSelPen;
154 
155  QPointF mOffset;
158 
159  private:
160  //helper functions for data defined symbology
161  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QBrush &brush, QPen &pen, QPen &selPen );
162 };
163 
164 class QgsColorRamp;
165 
171 {
172  public:
173 
175  {
177  ColorRamp
178  };
179 
181  {
184  Conical
185  };
186 
188  {
190  Viewport
191  };
192 
194  {
197  Repeat
198  };
199 
201  const QColor &color2 = Qt::white,
202  GradientColorType gradientColorType = SimpleTwoColor,
203  GradientType gradientType = Linear,
204  GradientCoordinateMode coordinateMode = Feature,
205  GradientSpread gradientSpread = Pad
206  );
207 
208  ~QgsGradientFillSymbolLayer() override;
209 
210  // static stuff
211 
212  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
213 
214  // implemented from base classes
215 
216  QString layerType() const override;
217 
218  void startRender( QgsSymbolRenderContext &context ) override;
219 
220  void stopRender( QgsSymbolRenderContext &context ) override;
221 
222  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
223 
224  QgsStringMap properties() const override;
225 
226  QgsGradientFillSymbolLayer *clone() const override SIP_FACTORY;
227 
228  double estimateMaxBleed( const QgsRenderContext &context ) const override;
229 
231  GradientType gradientType() const { return mGradientType; }
232  void setGradientType( GradientType gradientType ) { mGradientType = gradientType; }
233 
235  GradientColorType gradientColorType() const { return mGradientColorType; }
236  void setGradientColorType( GradientColorType gradientColorType ) { mGradientColorType = gradientColorType; }
237 
244  QgsColorRamp *colorRamp() { return mGradientRamp; }
245 
253  void setColorRamp( QgsColorRamp *ramp );
254 
256  QColor color2() const { return mColor2; }
257  void setColor2( const QColor &color2 ) { mColor2 = color2; }
258 
260  GradientCoordinateMode coordinateMode() const { return mCoordinateMode; }
261  void setCoordinateMode( GradientCoordinateMode coordinateMode ) { mCoordinateMode = coordinateMode; }
262 
264  GradientSpread gradientSpread() const { return mGradientSpread; }
265  void setGradientSpread( GradientSpread gradientSpread ) { mGradientSpread = gradientSpread; }
266 
268  void setReferencePoint1( QPointF referencePoint ) { mReferencePoint1 = referencePoint; }
269  QPointF referencePoint1() const { return mReferencePoint1; }
270 
272  void setReferencePoint1IsCentroid( bool isCentroid ) { mReferencePoint1IsCentroid = isCentroid; }
273  bool referencePoint1IsCentroid() const { return mReferencePoint1IsCentroid; }
274 
276  void setReferencePoint2( QPointF referencePoint ) { mReferencePoint2 = referencePoint; }
277  QPointF referencePoint2() const { return mReferencePoint2; }
278 
280  void setReferencePoint2IsCentroid( bool isCentroid ) { mReferencePoint2IsCentroid = isCentroid; }
281  bool referencePoint2IsCentroid() const { return mReferencePoint2IsCentroid; }
282 
284  void setOffset( QPointF offset ) { mOffset = offset; }
285  QPointF offset() const { return mOffset; }
286 
288  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
289  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
290 
291  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
292  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
293 
294  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
295  QgsUnitTypes::RenderUnit outputUnit() const override;
296 
297  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
298  QgsMapUnitScale mapUnitScale() const override;
299 
300  protected:
301  QBrush mBrush;
302  QBrush mSelBrush;
303 
305  QColor mColor2;
306  QgsColorRamp *mGradientRamp = nullptr;
310 
312  bool mReferencePoint1IsCentroid = false;
314  bool mReferencePoint2IsCentroid = false;
315 
316  QPointF mOffset;
319 
320  private:
321 
322  //helper functions for data defined symbology
323  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, const QPolygonF &points );
324 
326  void applyGradient( const QgsSymbolRenderContext &context, QBrush &brush, const QColor &color, const QColor &color2,
327  GradientColorType gradientColorType, QgsColorRamp *gradientRamp, GradientType gradientType,
328  GradientCoordinateMode coordinateMode, GradientSpread gradientSpread,
329  QPointF referencePoint1, QPointF referencePoint2, double angle );
330 
332  QPointF rotateReferencePoint( QPointF refPoint, double angle );
333 };
334 
340 {
341  public:
342 
344  {
346  ColorRamp
347  };
348 
349  QgsShapeburstFillSymbolLayer( const QColor &color = DEFAULT_SIMPLEFILL_COLOR, const QColor &color2 = Qt::white,
350  ShapeburstColorType colorType = SimpleTwoColor,
351  int blurRadius = 0, bool useWholeShape = true, double maxDistance = 5 );
352 
353  ~QgsShapeburstFillSymbolLayer() override;
354 
360 
365  QgsShapeburstFillSymbolLayer &operator=( const QgsShapeburstFillSymbolLayer &other ) = delete;
366 
367  // static stuff
368 
369  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
370 
371  // implemented from base classes
372 
373  QString layerType() const override;
374 
375  void startRender( QgsSymbolRenderContext &context ) override;
376 
377  void stopRender( QgsSymbolRenderContext &context ) override;
378 
379  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
380 
381  QgsStringMap properties() const override;
382 
383  QgsShapeburstFillSymbolLayer *clone() const override SIP_FACTORY;
384 
385  double estimateMaxBleed( const QgsRenderContext &context ) const override;
386 
393  void setBlurRadius( int blurRadius ) { mBlurRadius = blurRadius; }
394 
401  int blurRadius() const { return mBlurRadius; }
402 
411  void setUseWholeShape( bool useWholeShape ) { mUseWholeShape = useWholeShape; }
412 
420  bool useWholeShape() const { return mUseWholeShape; }
421 
430  void setMaxDistance( double maxDistance ) { mMaxDistance = maxDistance; }
431 
440  double maxDistance() const { return mMaxDistance; }
441 
449  void setDistanceUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceUnit = unit; }
450 
458  QgsUnitTypes::RenderUnit distanceUnit() const { return mDistanceUnit; }
459 
460  void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
461  const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
462 
473  void setColorType( ShapeburstColorType colorType ) { mColorType = colorType; }
474 
485  ShapeburstColorType colorType() const { return mColorType; }
486 
494  void setColorRamp( QgsColorRamp *ramp );
495 
503  QgsColorRamp *colorRamp() { return mGradientRamp.get(); }
504 
512  void setColor2( const QColor &color2 ) { mColor2 = color2; }
513 
521  QColor color2() const { return mColor2; }
522 
530  void setIgnoreRings( bool ignoreRings ) { mIgnoreRings = ignoreRings; }
531 
538  bool ignoreRings() const { return mIgnoreRings; }
539 
547  void setOffset( QPointF offset ) { mOffset = offset; }
548 
556  QPointF offset() const { return mOffset; }
557 
565  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
566 
574  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
575 
576  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
577  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
578 
579  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
580  QgsUnitTypes::RenderUnit outputUnit() const override;
581 
582  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
583  QgsMapUnitScale mapUnitScale() const override;
584 
585  private:
586  QBrush mBrush;
587  QBrush mSelBrush;
588 
589  int mBlurRadius = 0;
590 
591  bool mUseWholeShape = true;
592  double mMaxDistance = 5.0;
594  QgsMapUnitScale mDistanceMapUnitScale;
595 
596  ShapeburstColorType mColorType = SimpleTwoColor;
597  QColor mColor2;
598 
599  bool mIgnoreRings = false;
600 
601  QPointF mOffset;
603  QgsMapUnitScale mOffsetMapUnitScale;
604 
605  std::unique_ptr< QgsColorRamp > mGradientRamp;
606 
607  //helper functions for data defined symbology
608  void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QColor &color, QColor &color2, int &blurRadius, bool &useWholeShape,
609  double &maxDistance, bool &ignoreRings );
610 
611  /* distance transform of a 1d function using squared distance */
612  void distanceTransform1d( double *f, int n, int *v, double *z, double *d );
613  /* distance transform of 2d function using squared distance */
614  void distanceTransform2d( double *im, int width, int height );
615  /* distance transform of a binary QImage */
616  double *distanceTransform( QImage *im );
617 
618  /* fills a QImage with values from an array of doubles containing squared distance transform values */
619  void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, double layerAlpha = 1, bool useWholeShape = true, int maxPixelDistance = 0 );
620 
621 #ifdef SIP_RUN
623 #endif
624 };
625 
630 {
631  public:
632 
634  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
635 
636  QgsSymbol *subSymbol() override { return mStroke.get(); }
637  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
638 
644  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
645 
650  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
651 
652  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
653  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
654 
655  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
656  QgsUnitTypes::RenderUnit outputUnit() const override;
657 
658  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
659  QgsMapUnitScale mapUnitScale() const override;
660 
661  double estimateMaxBleed( const QgsRenderContext &context ) const override;
662 
663  double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
664  QColor dxfColor( QgsSymbolRenderContext &context ) const override;
665 
666  Qt::PenStyle dxfPenStyle() const override;
667 
668  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
669 
670  protected:
671  QBrush mBrush;
672  double mNextAngle = 0.0; // mAngle / data defined angle
673 
675  double mStrokeWidth = 0.0;
678 
680  std::unique_ptr< QgsLineSymbol > mStroke;
681 
682  virtual void applyDataDefinedSettings( QgsSymbolRenderContext &context ) { Q_UNUSED( context ); }
683 
684  private:
685 #ifdef SIP_RUN
687 #endif
688 };
689 
697 {
698  public:
699 
701  {
703  Viewport
704  };
705 
706  QgsRasterFillSymbolLayer( const QString &imageFilePath = QString() );
707 
708  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
709 
715  static void resolvePaths( QgsStringMap &properties, const QgsPathResolver &pathResolver, bool saving );
716 
717  // implemented from base classes
718  QString layerType() const override;
719  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
720  void startRender( QgsSymbolRenderContext &context ) override;
721  void stopRender( QgsSymbolRenderContext &context ) override;
722  QgsStringMap properties() const override;
723  QgsRasterFillSymbolLayer *clone() const override SIP_FACTORY;
724  double estimateMaxBleed( const QgsRenderContext &context ) const override;
725 
726  //override QgsImageFillSymbolLayer's support for sub symbols
727  QgsSymbol *subSymbol() override { return nullptr; }
728  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
729 
735  void setImageFilePath( const QString &imagePath );
736 
742  QString imageFilePath() const { return mImageFilePath; }
743 
750  void setCoordinateMode( FillCoordinateMode mode );
751 
758  FillCoordinateMode coordinateMode() const { return mCoordinateMode; }
759 
765  void setOpacity( double opacity );
766 
772  double opacity() const { return mOpacity; }
773 
781  void setOffset( QPointF offset ) { mOffset = offset; }
782 
790  QPointF offset() const { return mOffset; }
791 
799  void setOffsetUnit( const QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
800 
808  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
809 
817  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
818 
826  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
827 
836  void setWidth( const double width ) { mWidth = width; }
837 
846  double width() const { return mWidth; }
847 
855  void setWidthUnit( const QgsUnitTypes::RenderUnit unit ) { mWidthUnit = unit; }
856 
864  QgsUnitTypes::RenderUnit widthUnit() const { return mWidthUnit; }
865 
873  void setWidthMapUnitScale( const QgsMapUnitScale &scale ) { mWidthMapUnitScale = scale; }
874 
882  const QgsMapUnitScale &widthMapUnitScale() const { return mWidthMapUnitScale; }
883 
884  protected:
885 
887  QString mImageFilePath;
889  double mOpacity = 1.0;
890 
891  QPointF mOffset;
894 
895  double mWidth = 0.0;
898 
899  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
900 
901  private:
902 
904  void applyPattern( QBrush &brush, const QString &imageFilePath, double width, double opacity,
905  const QgsSymbolRenderContext &context );
906 };
907 
913 {
914  public:
916  QgsSVGFillSymbolLayer( const QString &svgFilePath, double width = 20, double rotation = 0.0 );
917  QgsSVGFillSymbolLayer( const QByteArray &svgData, double width = 20, double rotation = 0.0 );
918  ~QgsSVGFillSymbolLayer() override;
919 
920  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
921  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
922 
928  static void resolvePaths( QgsStringMap &properties, const QgsPathResolver &pathResolver, bool saving );
929 
930  // implemented from base classes
931 
932  QString layerType() const override;
933 
934  void startRender( QgsSymbolRenderContext &context ) override;
935  void stopRender( QgsSymbolRenderContext &context ) override;
936 
937  QgsStringMap properties() const override;
938 
939  QgsSVGFillSymbolLayer *clone() const override SIP_FACTORY;
940 
941  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
942 
943  //getters and setters
944  void setSvgFilePath( const QString &svgPath );
945  QString svgFilePath() const { return mSvgFilePath; }
946  void setPatternWidth( double width ) { mPatternWidth = width;}
947  double patternWidth() const { return mPatternWidth; }
948 
949  void setSvgFillColor( const QColor &c ) { setColor( c ); }
950  QColor svgFillColor() const { return color(); }
951 
952  void setSvgStrokeColor( const QColor &c ) { mSvgStrokeColor = c; }
953  QColor svgStrokeColor() const { return mSvgStrokeColor; }
954  void setSvgStrokeWidth( double w ) { mSvgStrokeWidth = w; }
955  double svgStrokeWidth() const { return mSvgStrokeWidth; }
956 
962  void setPatternWidthUnit( QgsUnitTypes::RenderUnit unit ) { mPatternWidthUnit = unit; }
963 
968  QgsUnitTypes::RenderUnit patternWidthUnit() const { return mPatternWidthUnit; }
969 
970  void setPatternWidthMapUnitScale( const QgsMapUnitScale &scale ) { mPatternWidthMapUnitScale = scale; }
971  const QgsMapUnitScale &patternWidthMapUnitScale() const { return mPatternWidthMapUnitScale; }
972 
978  void setSvgStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mSvgStrokeWidthUnit = unit; }
979 
984  QgsUnitTypes::RenderUnit svgStrokeWidthUnit() const { return mSvgStrokeWidthUnit; }
985 
986  void setSvgStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mSvgStrokeWidthMapUnitScale = scale; }
987  const QgsMapUnitScale &svgStrokeWidthMapUnitScale() const { return mSvgStrokeWidthMapUnitScale; }
988 
989  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
990  QgsUnitTypes::RenderUnit outputUnit() const override;
991 
992  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
993  QgsMapUnitScale mapUnitScale() const override;
994 
995  protected:
1000 
1002  QByteArray mSvgData;
1004  QString mSvgFilePath;
1006  QRectF mSvgViewBox;
1008  QImage *mSvgPattern = nullptr;
1009 
1010  //param(fill), param(stroke), param(stroke-width) are going
1011  //to be replaced in memory
1016 
1017  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1018 
1019  private:
1021  void storeViewBox();
1022  void setDefaultSvgParams(); //fills mSvgFillColor, mSvgStrokeColor, mSvgStrokeWidth with default values for mSvgFilePath
1023 
1025  void applyPattern( QBrush &brush, const QString &svgFilePath, double patternWidth, QgsUnitTypes::RenderUnit patternWidthUnit, const QColor &svgFillColor, const QColor &svgStrokeColor,
1026  double svgStrokeWidth, QgsUnitTypes::RenderUnit svgStrokeWidthUnit, const QgsSymbolRenderContext &context, const QgsMapUnitScale &patternWidthMapUnitScale, const QgsMapUnitScale &svgStrokeWidthMapUnitScale );
1027 };
1028 
1034 {
1035  public:
1037  ~QgsLinePatternFillSymbolLayer() override;
1038 
1039  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
1040  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1041 
1042  QString layerType() const override;
1043 
1044  void startRender( QgsSymbolRenderContext &context ) override;
1045 
1046  void stopRender( QgsSymbolRenderContext &context ) override;
1047 
1048  QgsStringMap properties() const override;
1049 
1051 
1052  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
1053 
1054  double estimateMaxBleed( const QgsRenderContext &context ) const override;
1055 
1056  QString ogrFeatureStyleWidth( double widthScaleFactor ) const;
1057 
1058  //getters and setters
1059  void setLineAngle( double a ) { mLineAngle = a; }
1060  double lineAngle() const { return mLineAngle; }
1061 
1068  void setDistance( double d ) { mDistance = d; }
1069 
1075  double distance() const { return mDistance; }
1076 
1077  void setLineWidth( double w );
1078  double lineWidth() const { return mLineWidth; }
1079  void setColor( const QColor &c ) override;
1080  QColor color() const override;
1081  void setOffset( double offset ) { mOffset = offset; }
1082  double offset() const { return mOffset; }
1083 
1090  void setDistanceUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceUnit = unit; }
1091 
1097  QgsUnitTypes::RenderUnit distanceUnit() const { return mDistanceUnit; }
1098 
1099  void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
1100  const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
1101 
1107  void setLineWidthUnit( QgsUnitTypes::RenderUnit unit ) { mLineWidthUnit = unit; }
1108 
1113  QgsUnitTypes::RenderUnit lineWidthUnit() const { return mLineWidthUnit; }
1114 
1115  void setLineWidthMapUnitScale( const QgsMapUnitScale &scale ) { mLineWidthMapUnitScale = scale; }
1116  const QgsMapUnitScale &lineWidthMapUnitScale() const { return mLineWidthMapUnitScale; }
1117 
1123  void setOffsetUnit( QgsUnitTypes::RenderUnit unit ) { mOffsetUnit = unit; }
1124 
1129  QgsUnitTypes::RenderUnit offsetUnit() const { return mOffsetUnit; }
1130 
1131  void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1132  const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1133 
1134  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1135  QgsUnitTypes::RenderUnit outputUnit() const override;
1136 
1137  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1138  QgsMapUnitScale mapUnitScale() const override;
1139 
1140  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1141  QgsSymbol *subSymbol() override;
1142 
1143  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1144 
1145  protected:
1147  double mDistance = 5.0;
1151  double mLineWidth = 0;
1154  QColor mColor;
1156  double mLineAngle = 45.0;
1158  double mOffset = 0.0;
1161 
1162  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1163 
1164  private:
1165 #ifdef SIP_RUN
1167 #endif
1168 
1170  void applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double lineAngle, double distance );
1171 
1173  QgsLineSymbol *mFillLineSymbol = nullptr;
1174 };
1175 
1181 {
1182  public:
1184  ~QgsPointPatternFillSymbolLayer() override;
1185 
1186  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
1187  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1188 
1189  QString layerType() const override;
1190 
1191  void startRender( QgsSymbolRenderContext &context ) override;
1192 
1193  void stopRender( QgsSymbolRenderContext &context ) override;
1194 
1195  QgsStringMap properties() const override;
1196 
1198 
1199  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
1200 
1201  double estimateMaxBleed( const QgsRenderContext &context ) const override;
1202 
1203  //getters and setters
1204  double distanceX() const { return mDistanceX; }
1205  void setDistanceX( double d ) { mDistanceX = d; }
1206 
1207  double distanceY() const { return mDistanceY; }
1208  void setDistanceY( double d ) { mDistanceY = d; }
1209 
1210  double displacementX() const { return mDisplacementX; }
1211  void setDisplacementX( double d ) { mDisplacementX = d; }
1212 
1213  double displacementY() const { return mDisplacementY; }
1214  void setDisplacementY( double d ) { mDisplacementY = d; }
1215 
1216  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1217  QgsSymbol *subSymbol() override { return mMarkerSymbol; }
1218 
1225  void setDistanceXUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceXUnit = unit; }
1226 
1232  QgsUnitTypes::RenderUnit distanceXUnit() const { return mDistanceXUnit; }
1233 
1234  void setDistanceXMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceXMapUnitScale = scale; }
1235  const QgsMapUnitScale &distanceXMapUnitScale() const { return mDistanceXMapUnitScale; }
1236 
1243  void setDistanceYUnit( QgsUnitTypes::RenderUnit unit ) { mDistanceYUnit = unit; }
1244 
1250  QgsUnitTypes::RenderUnit distanceYUnit() const { return mDistanceYUnit; }
1251 
1252  void setDistanceYMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceYMapUnitScale = scale; }
1253  const QgsMapUnitScale &distanceYMapUnitScale() const { return mDistanceYMapUnitScale; }
1254 
1261  void setDisplacementXUnit( QgsUnitTypes::RenderUnit unit ) { mDisplacementXUnit = unit; }
1262 
1268  QgsUnitTypes::RenderUnit displacementXUnit() const { return mDisplacementXUnit; }
1269 
1270  void setDisplacementXMapUnitScale( const QgsMapUnitScale &scale ) { mDisplacementXMapUnitScale = scale; }
1271  const QgsMapUnitScale &displacementXMapUnitScale() const { return mDisplacementXMapUnitScale; }
1272 
1279  void setDisplacementYUnit( QgsUnitTypes::RenderUnit unit ) { mDisplacementYUnit = unit; }
1280 
1286  QgsUnitTypes::RenderUnit displacementYUnit() const { return mDisplacementYUnit; }
1287 
1288  void setDisplacementYMapUnitScale( const QgsMapUnitScale &scale ) { mDisplacementYMapUnitScale = scale; }
1289  const QgsMapUnitScale &displacementYMapUnitScale() const { return mDisplacementYMapUnitScale; }
1290 
1291  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1292  QgsUnitTypes::RenderUnit outputUnit() const override;
1293 
1294  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1295  QgsMapUnitScale mapUnitScale() const override;
1296 
1297  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1298  void setColor( const QColor &c ) override;
1299  QColor color() const override;
1300 
1301  protected:
1302  QgsMarkerSymbol *mMarkerSymbol = nullptr;
1303  double mDistanceX = 15;
1306  double mDistanceY = 15;
1309  double mDisplacementX = 0;
1312  double mDisplacementY = 0;
1315 
1316  void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1317 
1318  private:
1319 #ifdef SIP_RUN
1321 #endif
1322 
1323  void applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double distanceX, double distanceY,
1324  double displacementX, double displacementY );
1325 };
1326 
1332 {
1333  public:
1335 
1336  // static stuff
1337 
1338  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
1339  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1340 
1341  // implemented from base classes
1342 
1343  QString layerType() const override;
1344 
1345  void startRender( QgsSymbolRenderContext &context ) override;
1346 
1347  void stopRender( QgsSymbolRenderContext &context ) override;
1348 
1349  void renderPolygon( const QPolygonF &points, QList<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1350 
1351  QgsStringMap properties() const override;
1352 
1353  QgsCentroidFillSymbolLayer *clone() const override SIP_FACTORY;
1354 
1355  void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
1356 
1357  void setColor( const QColor &color ) override;
1358  QColor color() const override;
1359 
1360  QgsSymbol *subSymbol() override;
1361  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1362 
1363  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
1364  QgsUnitTypes::RenderUnit outputUnit() const override;
1365 
1366  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1367  QgsMapUnitScale mapUnitScale() const override;
1368 
1369  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1370 
1371  void setPointOnSurface( bool pointOnSurface ) { mPointOnSurface = pointOnSurface; }
1372  bool pointOnSurface() const { return mPointOnSurface; }
1373 
1377  void setPointOnAllParts( bool pointOnAllParts ) { mPointOnAllParts = pointOnAllParts; }
1378 
1382  bool pointOnAllParts() const { return mPointOnAllParts; }
1383 
1384  protected:
1385  std::unique_ptr< QgsMarkerSymbol > mMarker;
1386  bool mPointOnSurface = false;
1387  bool mPointOnAllParts = true;
1388 
1389  QgsFeatureId mCurrentFeatureId = -1;
1390  int mBiggestPartIndex = -1;
1391 
1392  private:
1393 #ifdef SIP_RUN
1395 #endif
1396 };
1397 
1398 #endif
1399 
1400 
QColor color2() const
Returns the color used for the endpoint of the shapeburst fill.
void setSvgStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
#define DEFAULT_SIMPLEFILL_BORDERCOLOR
void setDistance(double d)
Sets the distance between lines in the fill pattern.
const QgsMapUnitScale & displacementYMapUnitScale() const
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
QString svgFilePath() const
void setPatternWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the width of the SVG images in the pattern.
QColor strokeColor() const override
Gets stroke color.
virtual QString ogrFeatureStyle(double mmScaleFactor, double mapUnitScaleFactor) const
#define DEFAULT_SIMPLEFILL_JOINSTYLE
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the fill&#39;s offset.
QgsMapUnitScale mStrokeWidthMapUnitScale
QgsUnitTypes::RenderUnit distanceUnit() const
Returns the units for the distance between lines in the fill pattern.
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
const QgsMapUnitScale & lineWidthMapUnitScale() const
void setSvgFillColor(const QColor &c)
void setOutputUnit(QgsUnitTypes::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
void setPatternWidthMapUnitScale(const QgsMapUnitScale &scale)
virtual void applyDataDefinedSettings(QgsSymbolRenderContext &context)
const QgsMapUnitScale & displacementXMapUnitScale() const
virtual QgsSymbol * subSymbol()
Returns the symbol&#39;s sub symbol, if present.
QString imageFilePath() const
The path to the raster image used for the fill.
QPointF offset() const
Returns the offset for the shapeburst fill.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units used for the offset of the shapeburst fill.
GradientCoordinateMode coordinateMode() const
Coordinate mode for gradient. Controls how the gradient stops are positioned.
void setReferencePoint1IsCentroid(bool isCentroid)
Sets the starting point of the gradient to be the feature centroid.
Qt::PenJoinStyle penJoinStyle() const
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the line pattern&#39;s offset.
GradientSpread gradientSpread() const
Gradient spread mode. Controls how the gradient behaves outside of the predefined stops...
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the fill&#39;s offset.
Base class for polygon renderers generating texture images.
QgsMapUnitScale mPatternWidthMapUnitScale
QgsUnitTypes::RenderUnit widthUnit() const
Returns the units for the image&#39;s width.
void setDisplacementYUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the vertical displacement between rows in the pattern.
void setOffset(QPointF offset)
Sets the offset for the shapeburst fill.
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
bool setSubSymbol(QgsSymbol *symbol) override
Sets layer&#39;s subsymbol. takes ownership of the passed symbol.
QgsUnitTypes::RenderUnit patternWidthUnit() const
Returns the units for the width of the SVG images in the pattern.
Abstract base class for color ramps.
Definition: qgscolorramp.h:31
virtual QColor strokeColor() const
Gets stroke color.
std::unique_ptr< QgsMarkerSymbol > mMarker
QgsUnitTypes::RenderUnit mSvgStrokeWidthUnit
void setUseWholeShape(bool useWholeShape)
Sets whether the shapeburst fill should be drawn using the entire shape.
void setDistanceUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the maximum distance to shade inside of the shape from the polygon&#39;s boundary...
const QgsMapUnitScale & strokeWidthMapUnitScale() const
ShapeburstColorType colorType() const
Returns the color mode used for the shapeburst fill.
const QgsMapUnitScale & strokeWidthMapUnitScale() const
void setDistanceUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the distance between lines in the fill pattern.
bool useWholeShape() const
Returns whether the shapeburst fill is set to cover the entire shape.
void setOffsetUnit(const QgsUnitTypes::RenderUnit unit)
Sets the units for the fill&#39;s offset.
void setDistanceXMapUnitScale(const QgsMapUnitScale &scale)
void setDistanceMapUnitScale(const QgsMapUnitScale &scale)
#define DEFAULT_SIMPLEFILL_COLOR
virtual double dxfWidth(const QgsDxfExport &e, QgsSymbolRenderContext &context) const
Gets line width.
QColor color2() const
Color for endpoint of gradient, only used if the gradient color type is set to SimpleTwoColor.
void setReferencePoint2IsCentroid(bool isCentroid)
Sets the end point of the gradient to be the feature centroid.
virtual QgsStringMap properties() const =0
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
GradientColorType mGradientColorType
const QgsMapUnitScale & svgStrokeWidthMapUnitScale() const
void setPointOnAllParts(bool pointOnAllParts)
Sets whether a point is drawn for all parts or only on the biggest part of multi-part features...
QMap< QString, QString > QgsStringMap
Definition: qgis.h:501
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
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the symbol&#39;s stroke width.
void setStrokeWidth(double strokeWidth)
void setPatternWidth(double width)
QgsSymbol * subSymbol() override
Returns the symbol&#39;s sub symbol, if present.
QgsMapUnitScale mapUnitScale() const override
void setGradientType(GradientType gradientType)
QgsUnitTypes::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer.
const QgsMapUnitScale & offsetMapUnitScale() const
void setMapUnitScale(const QgsMapUnitScale &scale) override
#define DEFAULT_SIMPLEFILL_STYLE
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the line pattern&#39;s offset.
virtual void setColor(const QColor &color)
The fill color.
void setOffset(QPointF offset)
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
virtual void renderPolygon(const QPolygonF &points, QList< QPolygonF > *rings, QgsSymbolRenderContext &context)=0
QString mImageFilePath
Path to the image file.
void setIgnoreRings(bool ignoreRings)
Sets whether the shapeburst fill should ignore polygon rings when calculating the buffered shading...
virtual QgsUnitTypes::RenderUnit outputUnit() const
Returns the units to use for sizes and widths within the symbol layer.
const QgsMapUnitScale & distanceMapUnitScale() const
std::unique_ptr< QgsLineSymbol > mStroke
Custom stroke.
virtual bool setSubSymbol(QgsSymbol *symbol)
Sets layer&#39;s subsymbol. takes ownership of the passed symbol.
A class for filling symbols with a repeated raster image.
QByteArray mSvgData
SVG data.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
#define DEFAULT_SIMPLEFILL_BORDERWIDTH
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
void setColor2(const QColor &color2)
Sets the color for the endpoint of the shapeburst fill.
virtual void setOutputUnit(QgsUnitTypes::RenderUnit unit)
Sets the units to use for sizes and widths within the symbol layer.
void setWidth(const double width)
Sets the width for scaling the image used in the fill.
QgsUnitTypes::RenderUnit displacementYUnit() const
Returns the units for the vertical displacement between rows in the pattern.
void setReferencePoint1(QPointF referencePoint)
Starting point of gradient fill, in the range [0,0] - [1,1].
void setFillColor(const QColor &color) override
Set fill color.
void setSvgStrokeWidth(double w)
void setWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the image&#39;s width.
virtual Qt::BrushStyle dxfBrushStyle() const
Gets brush/fill style.
const QgsMapUnitScale & offsetMapUnitScale() const
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill&#39;s offset.
virtual QgsSymbolLayer * clone() const =0
Shall be reimplemented by subclasses to create a deep copy of the instance.
void setStrokeStyle(Qt::PenStyle strokeStyle)
#define SIP_TRANSFER
Definition: qgis_sip.h:36
virtual QColor color() const
The fill color.
void setDistanceYMapUnitScale(const QgsMapUnitScale &scale)
bool ignoreRings() const
Returns whether the shapeburst fill is set to ignore polygon interior rings.
QgsUnitTypes::RenderUnit offsetUnit() const
#define SIP_FACTORY
Definition: qgis_sip.h:69
void setPenJoinStyle(Qt::PenJoinStyle style)
QColor fillColor() const override
Gets fill color.
QgsUnitTypes::RenderUnit svgStrokeWidthUnit() const
Returns the units for the stroke width.
QColor svgStrokeColor() const
void setLineWidthMapUnitScale(const QgsMapUnitScale &scale)
void setDisplacementXMapUnitScale(const QgsMapUnitScale &scale)
QgsMapUnitScale mOffsetMapUnitScale
void setOffset(QPointF offset)
Sets the offset for the fill.
QString mSvgFilePath
Path to the svg file (or empty if constructed directly from data)
virtual double estimateMaxBleed(const QgsRenderContext &context) const
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
void setSvgStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the stroke width.
virtual QColor dxfBrushColor(QgsSymbolRenderContext &context) const
Gets brush/fill color.
void setStrokeColor(const QColor &strokeColor) override
Set stroke color.
void setOffset(QPointF offset)
Offset for gradient fill.
void setDistanceXUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the horizontal distance between points in the pattern.
virtual Qt::PenStyle dxfPenStyle() const
Gets pen style.
Qt::BrushStyle brushStyle() const
GradientCoordinateMode mCoordinateMode
const QgsMapUnitScale & distanceMapUnitScale() const
virtual void toSld(QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const
QgsMapUnitScale mWidthMapUnitScale
A class for svg fill patterns.
virtual QgsMapUnitScale mapUnitScale() const
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const
Returns the set of attributes referenced by the layer.
Contains information about the context of a rendering operation.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the fill&#39;s offset.
virtual void setMapUnitScale(const QgsMapUnitScale &scale)
void setGradientColorType(GradientColorType gradientColorType)
void setWidthUnit(const QgsUnitTypes::RenderUnit unit)
Sets the units for the image&#39;s width.
Struct for storing maximum and minimum scales for measurements in map units.
virtual void stopRender(QgsSymbolRenderContext &context)=0
virtual double dxfAngle(QgsSymbolRenderContext &context) const
Gets angle.
QgsUnitTypes::RenderUnit distanceXUnit() const
Returns the units for the horizontal distance between points in the pattern.
QgsUnitTypes::RenderUnit displacementXUnit() const
Returns the units for the horizontal displacement between rows in the pattern.
const QgsMapUnitScale & distanceXMapUnitScale() const
const QgsMapUnitScale & patternWidthMapUnitScale() const
virtual QColor dxfColor(QgsSymbolRenderContext &context) const
Gets color.
Qt::PenStyle strokeStyle() const
const QgsMapUnitScale & offsetMapUnitScale() const
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the width of the fill&#39;s stroke.
#define DEFAULT_SIMPLEFILL_BORDERSTYLE
GradientColorType gradientColorType() const
Gradient color mode, controls how gradient color stops are created.
Qt::PenJoinStyle mPenJoinStyle
const QgsMapUnitScale & distanceYMapUnitScale() const
FillCoordinateMode coordinateMode() const
Coordinate mode for fill.
const QgsMapUnitScale & widthMapUnitScale() const
Returns the map unit scale for the image&#39;s width.
void setDisplacementXUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the horizontal displacement between rows in the pattern.
double maxDistance() const
Returns the maximum distance from the shape&#39;s boundary which is shaded.
void setDisplacementYMapUnitScale(const QgsMapUnitScale &scale)
bool pointOnAllParts() const
Returns whether a point is drawn for all parts or only on the biggest part of multi-part features...
void setMaxDistance(double maxDistance)
Sets the maximum distance to shape inside of the shape from the polygon&#39;s boundary.
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
qint64 QgsFeatureId
Definition: qgsfeature.h:37
double opacity() const
Returns the opacity for the raster image used in the fill.
QgsUnitTypes::RenderUnit lineWidthUnit() const
Returns the units for the line&#39;s width.
void setColor2(const QColor &color2)
void setBrushStyle(Qt::BrushStyle style)
QgsColorRamp * colorRamp()
Returns the color ramp used for the gradient fill.
double svgStrokeWidth() const
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the fill&#39;s offset.
int blurRadius() const
Returns the blur radius, which controls the amount of blurring applied to the fill.
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the units used for the offset for the shapeburst fill.
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the units for the width of the fill&#39;s stroke.
Resolves relative paths into absolute paths and vice versa.
void setLineWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the line&#39;s width.
void setSvgStrokeColor(const QColor &c)
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Units for gradient fill offset.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
double distance() const
Returns the distance between lines in the fill pattern.
QgsSymbol * subSymbol() override
Returns the symbol&#39;s sub symbol, if present.
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the units for the symbol&#39;s stroke width.
void setColorType(ShapeburstColorType colorType)
Sets the color mode to use for the shapeburst fill.
void setDistanceYUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the vertical distance between points in the pattern.
double width() const
Returns the width used for scaling the image used in the fill.
QgsColorRamp * colorRamp()
Returns the color ramp used for the shapeburst fill.
const QgsMapUnitScale & offsetMapUnitScale() const
void setGradientSpread(GradientSpread gradientSpread)
QgsUnitTypes::RenderUnit mPatternWidthUnit
QgsMapUnitScale mOffsetMapUnitScale
void setCoordinateMode(GradientCoordinateMode coordinateMode)
void setReferencePoint2(QPointF referencePoint)
End point of gradient fill, in the range [0,0] - [1,1].
void setDistanceMapUnitScale(const QgsMapUnitScale &scale)
QgsUnitTypes::RenderUnit distanceYUnit() const
Returns the units for the vertical distance between points in the pattern.
QgsMapUnitScale mSvgStrokeWidthMapUnitScale
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:100
QgsMapUnitScale mStrokeWidthMapUnitScale
void setPointOnSurface(bool pointOnSurface)
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns the set of attributes referenced by the layer.
QRectF mSvgViewBox
SVG view box (to keep the aspect ratio.
virtual void startRender(QgsSymbolRenderContext &context)=0
QPointF offset() const
Returns the offset for the fill.
virtual QString layerType() const =0
Returns a string that represents this layer type.
double mPatternWidth
Width of the pattern (in output units)
QgsUnitTypes::RenderUnit distanceUnit() const
Returns the unit for the maximum distance to shade inside of the shape from the polygon&#39;s boundary...