QGIS API Documentation 4.1.0-Master (ca2ac17535b)
Loading...
Searching...
No Matches
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.h"
20#include "qgis_core.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 Qgis::DEFAULT_LINE_WIDTH
28#define DEFAULT_SIMPLEFILL_JOINSTYLE Qt::BevelJoin
29
30#define INF 1E20
31
32#include <QPen>
33#include <QBrush>
34
35class QgsMarkerSymbol;
36class QgsLineSymbol;
37class QgsPathResolver;
38
45{
46 public:
48 const QColor &color = DEFAULT_SIMPLEFILL_COLOR,
49 Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE,
54 );
55
57
58 // static stuff
59
65 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
66 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
67
68 // implemented from base classes
69
70 QString layerType() const override;
71 Qgis::SymbolLayerFlags flags() const override;
72 void startRender( QgsSymbolRenderContext &context ) override;
73 void stopRender( QgsSymbolRenderContext &context ) override;
74 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
75 QVariantMap properties() const override;
77 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
78 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
79 QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
80
81 Qt::BrushStyle brushStyle() const { return mBrushStyle; }
82 void setBrushStyle( Qt::BrushStyle style ) { mBrushStyle = style; }
83
84 QColor strokeColor() const override { return mStrokeColor; }
85 void setStrokeColor( const QColor &strokeColor ) override { mStrokeColor = strokeColor; }
86 QColor fillColor() const override { return color(); }
87 void setFillColor( const QColor &color ) override { setColor( color ); }
88
89 Qt::PenStyle strokeStyle() const { return mStrokeStyle; }
91
92 double strokeWidth() const { return mStrokeWidth; }
94
95 Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
96 void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
97
106 void setOffset( QPointF offset ) { mOffset = offset; }
107
116 QPointF offset() const { return mOffset; }
117
124
130
133
140
147
154
161
162 void setOutputUnit( Qgis::RenderUnit unit ) override;
163 Qgis::RenderUnit outputUnit() const override;
164 bool usesMapUnits() const override;
165
166 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
167 QgsMapUnitScale mapUnitScale() const override;
168
169 double estimateMaxBleed( const QgsRenderContext &context ) const override;
170
172 double dxfWidth( QgsSymbolRenderContext &context ) const override;
173 QColor dxfColor( QgsSymbolRenderContext &context ) const override;
174 double dxfAngle( QgsSymbolRenderContext &context ) const override;
175
176 Qt::PenStyle dxfPenStyle() const override;
177 QColor dxfBrushColor( QgsSymbolRenderContext &context ) const override;
178 Qt::BrushStyle dxfBrushStyle() const override;
179 QImage toTiledPatternImage() const override;
180
181 protected:
182 QBrush mBrush;
183 QBrush mSelBrush;
184 Qt::BrushStyle mBrushStyle;
186 Qt::PenStyle mStrokeStyle;
190 Qt::PenJoinStyle mPenJoinStyle;
191 QPen mPen;
193
194 QPointF mOffset;
197
198 private:
199 //helper functions for data defined symbology
200 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QBrush &brush, QPen &pen, QPen &selPen );
201};
202
203class QgsColorRamp;
204
211{
212 public:
217 const QColor &color = DEFAULT_SIMPLEFILL_COLOR,
218 const QColor &color2 = Qt::white,
223 );
224
226
227 // static stuff
228
234 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
235
236 // implemented from base classes
237
238 Qgis::SymbolLayerFlags flags() const override;
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;
245 double estimateMaxBleed( const QgsRenderContext &context ) const override;
246 bool canCauseArtifactsBetweenAdjacentTiles() const override;
247
254
261
268
275
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
313
320
327
334
340 void setReferencePoint1( QPointF referencePoint ) { mReferencePoint1 = referencePoint; }
341
347 QPointF referencePoint1() const { return mReferencePoint1; }
348
354 void setReferencePoint1IsCentroid( bool isCentroid ) { mReferencePoint1IsCentroid = isCentroid; }
355
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
391
400 void setOffset( QPointF offset ) { mOffset = offset; }
401
410 QPointF offset() const { return mOffset; }
411
418
425
432
439
440 void setOutputUnit( Qgis::RenderUnit unit ) override;
441 Qgis::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 std::unique_ptr<QgsColorRamp> mGradientRamp;
457
462
463 QPointF mOffset;
466
467 private:
468 //helper functions for data defined symbology
469 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, const QPolygonF &points );
470
472 void applyGradient(
473 const QgsSymbolRenderContext &context,
474 QBrush &brush,
475 const QColor &color,
476 const QColor &color2,
478 QgsColorRamp *gradientRamp,
482 QPointF referencePoint1,
483 QPointF referencePoint2,
484 double angle
485 );
486
488 QPointF rotateReferencePoint( QPointF refPoint, double angle );
489};
490
497{
498 public:
503 const QColor &color = DEFAULT_SIMPLEFILL_COLOR,
504 const QColor &color2 = Qt::white,
506 int blurRadius = 0,
507 bool useWholeShape = true,
508 double maxDistance = 5
509 );
510
512
518
524
525 // static stuff
526
532 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
533
534 // implemented from base classes
535
536 QString layerType() const override;
537 Qgis::SymbolLayerFlags flags() const override;
538 void startRender( QgsSymbolRenderContext &context ) override;
539 void stopRender( QgsSymbolRenderContext &context ) override;
540 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
541 QVariantMap properties() const override;
543 double estimateMaxBleed( const QgsRenderContext &context ) const override;
544 bool canCauseArtifactsBetweenAdjacentTiles() const override;
545
551 void setBlurRadius( int blurRadius ) { mBlurRadius = blurRadius; }
552
558 int blurRadius() const { return mBlurRadius; }
559
567 void setUseWholeShape( bool useWholeShape ) { mUseWholeShape = useWholeShape; }
568
575 bool useWholeShape() const { return mUseWholeShape; }
576
584 void setMaxDistance( double maxDistance ) { mMaxDistance = maxDistance; }
585
593 double maxDistance() const { return mMaxDistance; }
594
601 void setDistanceUnit( Qgis::RenderUnit unit ) { mDistanceUnit = unit; }
602
609 Qgis::RenderUnit distanceUnit() const { return mDistanceUnit; }
610
611 void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
612 const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
613
624
634 Qgis::GradientColorSource colorType() const { return mColorType; }
635
644 void setColorRamp( QgsColorRamp *ramp SIP_TRANSFER );
645
652 QgsColorRamp *colorRamp() { return mGradientRamp.get(); }
653
660 void setColor2( const QColor &color2 ) { mColor2 = color2; }
661
668 QColor color2() const { return mColor2; }
669
676 void setIgnoreRings( bool ignoreRings ) { mIgnoreRings = ignoreRings; }
677
683 bool ignoreRings() const { return mIgnoreRings; }
684
691 void setOffset( QPointF offset ) { mOffset = offset; }
692
699 QPointF offset() const { return mOffset; }
700
707 void setOffsetUnit( Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
708
715 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
716
717 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
718 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
719
720 void setOutputUnit( Qgis::RenderUnit unit ) override;
721 Qgis::RenderUnit outputUnit() const override;
722 bool usesMapUnits() const override;
723
724 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
725 QgsMapUnitScale mapUnitScale() const override;
726
727 private:
728 QBrush mBrush;
729 QBrush mSelBrush;
730
731 int mBlurRadius = 0;
732
733 bool mUseWholeShape = true;
734 double mMaxDistance = 5.0;
736 QgsMapUnitScale mDistanceMapUnitScale;
737
739 QColor mColor2;
740
741 bool mIgnoreRings = false;
742
743 QPointF mOffset;
745 QgsMapUnitScale mOffsetMapUnitScale;
746
747 std::unique_ptr< QgsColorRamp > mGradientRamp;
748
749 //helper functions for data defined symbology
750 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QColor &color, QColor &color2, int &blurRadius, bool &useWholeShape, double &maxDistance, bool &ignoreRings );
751
752 /* distance transform of a 1d function using squared distance */
753 void distanceTransform1d( double *f, int n, int *v, double *z, double *d );
754 /* distance transform of 2d function using squared distance */
755 void distanceTransform2d( double *im, int width, int height, QgsRenderContext &context );
756 /* distance transform of a binary QImage */
757 double *distanceTransform( QImage *im, QgsRenderContext &context );
758
759 /* fills a QImage with values from an array of doubles containing squared distance transform values */
760 void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, QgsRenderContext &context, bool useWholeShape = true, int maxPixelDistance = 0 );
761
762#ifdef SIP_RUN
764#endif
765};
766
772{
773 public:
776
777 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
778
785
792
800
809
818
827
828 void setOutputUnit( Qgis::RenderUnit unit ) override;
829 Qgis::RenderUnit outputUnit() const override;
830 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
831 QgsMapUnitScale mapUnitScale() const override;
833 double dxfWidth( QgsSymbolRenderContext &context ) const override;
834 Qt::PenStyle dxfPenStyle() const override;
835 QVariantMap properties() const override;
836
837 protected:
838 QBrush mBrush;
840 double mNextAngle = 0.0; // mAngle / data defined angle
841
843 double mStrokeWidth = 0.0;
846
850 virtual void applyDataDefinedSettings( QgsSymbolRenderContext &context ) { Q_UNUSED( context ) }
851
857 virtual bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const;
858
859 private:
860#ifdef SIP_RUN
862#endif
863};
864
871{
872 public:
877 QgsRasterFillSymbolLayer( const QString &imageFilePath = QString() );
878
880
885 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
886
892 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
893
898 static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
899
900 // implemented from base classes
901 QString layerType() const override;
902 Qgis::SymbolLayerFlags flags() const override;
903 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
904 void startRender( QgsSymbolRenderContext &context ) override;
905 void stopRender( QgsSymbolRenderContext &context ) override;
906 QVariantMap properties() const override;
908 double estimateMaxBleed( const QgsRenderContext &context ) const override;
909 bool usesMapUnits() const override;
910 QColor color() const override;
911 void setOutputUnit( Qgis::RenderUnit unit ) override;
912
913 //override QgsImageFillSymbolLayer's support for sub symbols
914 QgsSymbol *subSymbol() override { return nullptr; }
915 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
916
922 void setImageFilePath( const QString &imagePath );
923
929 QString imageFilePath() const { return mImageFilePath; }
930
937 void setCoordinateMode( Qgis::SymbolCoordinateReference mode );
938
945 Qgis::SymbolCoordinateReference coordinateMode() const { return mCoordinateMode; }
946
952 void setOpacity( double opacity );
953
959 double opacity() const { return mOpacity; }
960
968 void setOffset( QPointF offset ) { mOffset = offset; }
969
977 QPointF offset() const { return mOffset; }
978
986 void setOffsetUnit( const Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
987
995 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
996
1004 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1005
1013 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1014
1026 void setWidth( double width ) { mWidth = width; }
1027
1038 double width() const { return mWidth; }
1039
1051 void setHeight( double height ) { mHeight = height; }
1052
1063 double height() const { return mHeight; }
1064
1074 Q_DECL_DEPRECATED void setWidthUnit( Qgis::RenderUnit unit ) SIP_DEPRECATED { mSizeUnit = unit; }
1075
1085 void setSizeUnit( Qgis::RenderUnit unit ) { mSizeUnit = unit; }
1086
1096 Q_DECL_DEPRECATED Qgis::RenderUnit widthUnit() const SIP_DEPRECATED { return mSizeUnit; }
1097
1108 Qgis::RenderUnit sizeUnit() const { return mSizeUnit; }
1109
1119 Q_DECL_DEPRECATED void setWidthMapUnitScale( const QgsMapUnitScale &scale ) SIP_DEPRECATED { mSizeMapUnitScale = scale; }
1120
1131 void setSizeMapUnitScale( const QgsMapUnitScale &scale ) { mSizeMapUnitScale = scale; }
1132
1142 Q_DECL_DEPRECATED const QgsMapUnitScale &widthMapUnitScale() const SIP_DEPRECATED { return mSizeMapUnitScale; }
1143
1154 const QgsMapUnitScale &sizeMapUnitScale() const { return mSizeMapUnitScale; }
1155
1156 protected:
1157 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1158 bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const override;
1159
1160 private:
1162 QString mImageFilePath;
1164 double mOpacity = 1.0;
1165
1166 QPointF mOffset;
1168 QgsMapUnitScale mOffsetMapUnitScale;
1169
1170 double mWidth = 0.0;
1172 QgsMapUnitScale mSizeMapUnitScale;
1173
1174 double mHeight = 0.0;
1175
1177 void applyPattern( QBrush &brush, const QString &imageFilePath, double width, double height, double opacity, const QgsSymbolRenderContext &context );
1178};
1179
1185{
1186 public:
1190 QgsSVGFillSymbolLayer( const QString &svgFilePath, double width = 20, double rotation = 0.0 );
1191
1195 QgsSVGFillSymbolLayer( const QByteArray &svgData, double width = 20, double rotation = 0.0 );
1196
1198
1203 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1204
1209 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1210
1215 static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
1216
1217 // implemented from base classes
1218
1219 QString layerType() const override;
1220 void startRender( QgsSymbolRenderContext &context ) override;
1221 void stopRender( QgsSymbolRenderContext &context ) override;
1222 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1223 QVariantMap properties() const override;
1224 QgsSVGFillSymbolLayer *clone() const override SIP_FACTORY;
1225 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1226 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1227 bool usesMapUnits() const override;
1228 QgsSymbol *subSymbol() override;
1229 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1230 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1231 QColor dxfColor( QgsSymbolRenderContext &context ) const override;
1232 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1233 bool hasDataDefinedProperties() const override;
1234
1246 void setSvgFilePath( const QString &svgPath );
1247
1253 QString svgFilePath() const { return mSvgFilePath; }
1254
1264 void setPatternWidth( double width ) { mPatternWidth = width; }
1265
1275 double patternWidth() const { return mPatternWidth; }
1276
1286 void setSvgFillColor( const QColor &c ) { setColor( c ); }
1287
1296 QColor svgFillColor() const { return color(); }
1297
1307 void setSvgStrokeColor( const QColor &c ) { mSvgStrokeColor = c; }
1308
1317 QColor svgStrokeColor() const { return mSvgStrokeColor; }
1318
1329 void setSvgStrokeWidth( double w ) { mSvgStrokeWidth = w; }
1330
1341 double svgStrokeWidth() const { return mSvgStrokeWidth; }
1342
1350 void setPatternWidthUnit( Qgis::RenderUnit unit ) { mPatternWidthUnit = unit; }
1351
1359 Qgis::RenderUnit patternWidthUnit() const { return mPatternWidthUnit; }
1360
1368 void setPatternWidthMapUnitScale( const QgsMapUnitScale &scale ) { mPatternWidthMapUnitScale = scale; }
1369
1377 const QgsMapUnitScale &patternWidthMapUnitScale() const { return mPatternWidthMapUnitScale; }
1378
1386 void setSvgStrokeWidthUnit( Qgis::RenderUnit unit ) { mSvgStrokeWidthUnit = unit; }
1387
1395 Qgis::RenderUnit svgStrokeWidthUnit() const { return mSvgStrokeWidthUnit; }
1396
1404 void setSvgStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mSvgStrokeWidthMapUnitScale = scale; }
1405
1413 const QgsMapUnitScale &svgStrokeWidthMapUnitScale() const { return mSvgStrokeWidthMapUnitScale; }
1414
1415 void setOutputUnit( Qgis::RenderUnit unit ) override;
1416 Qgis::RenderUnit outputUnit() const override;
1417
1418 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1419 QgsMapUnitScale mapUnitScale() const override;
1420
1425 QMap<QString, QgsProperty> parameters() const { return mParameters; }
1426
1431 void setParameters( const QMap<QString, QgsProperty> &parameters );
1432
1433 protected:
1434 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1435
1436 private:
1438 double mPatternWidth = 20;
1440 QgsMapUnitScale mPatternWidthMapUnitScale;
1441 QMap<QString, QgsProperty> mParameters;
1442
1444 QByteArray mSvgData;
1446 QString mSvgFilePath;
1448 QRectF mSvgViewBox;
1449
1450 //param(fill), param(stroke), param(stroke-width) are going
1451 //to be replaced in memory
1452 QColor mSvgStrokeColor = QColor( 35, 35, 35 );
1453 double mSvgStrokeWidth = 0.2;
1454 Qgis::RenderUnit mSvgStrokeWidthUnit = Qgis::RenderUnit::Millimeters;
1455 QgsMapUnitScale mSvgStrokeWidthMapUnitScale;
1456
1458 std::unique_ptr< QgsLineSymbol > mStroke;
1459
1461 void storeViewBox();
1462 void setDefaultSvgParams(); //fills mSvgFillColor, mSvgStrokeColor, mSvgStrokeWidth with default values for mSvgFilePath
1463
1465 void applyPattern(
1466 QBrush &brush,
1467 const QString &svgFilePath,
1468 double patternWidth,
1469 Qgis::RenderUnit patternWidthUnit,
1470 const QColor &svgFillColor,
1471 const QColor &svgStrokeColor,
1472 double svgStrokeWidth,
1473 Qgis::RenderUnit svgStrokeWidthUnit,
1474 const QgsSymbolRenderContext &context,
1475 const QgsMapUnitScale &patternWidthMapUnitScale,
1476 const QgsMapUnitScale &svgStrokeWidthMapUnitScale,
1477 const QgsStringMap svgParameters
1478 );
1479};
1480
1487{
1488 public:
1491
1496 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1497
1502 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1503
1504 QString layerType() const override;
1505 void startRender( QgsSymbolRenderContext &context ) override;
1506 void stopRender( QgsSymbolRenderContext &context ) override;
1507 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1508 QVariantMap properties() const override;
1510 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1511 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1512 QImage toTiledPatternImage() const override;
1513 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1514
1515 QString ogrFeatureStyleWidth( double widthScaleFactor ) const;
1516
1524 void setLineAngle( double a ) { mLineAngle = a; }
1525
1533 double lineAngle() const { return mLineAngle; }
1534
1541 void setDistance( double d ) { mDistance = d; }
1542
1548 double distance() const { return mDistance; }
1549
1556 void setLineWidth( double w );
1557
1564 double lineWidth() const { return mLineWidth; }
1565
1566 void setColor( const QColor &c ) override;
1567 QColor color() const override;
1568
1580 void setOffset( double offset ) { mOffset = offset; }
1581
1593 double offset() const { return mOffset; }
1594
1601 void setDistanceUnit( Qgis::RenderUnit unit ) { mDistanceUnit = unit; }
1602
1609 Qgis::RenderUnit distanceUnit() const { return mDistanceUnit; }
1610
1618 void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
1619
1627 const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
1628
1634 void setLineWidthUnit( Qgis::RenderUnit unit ) { mLineWidthUnit = unit; }
1635
1641 Qgis::RenderUnit lineWidthUnit() const { return mLineWidthUnit; }
1642
1650 void setLineWidthMapUnitScale( const QgsMapUnitScale &scale ) { mLineWidthMapUnitScale = scale; }
1651
1659 const QgsMapUnitScale &lineWidthMapUnitScale() const { return mLineWidthMapUnitScale; }
1660
1666 void setOffsetUnit( Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
1667
1673 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
1674
1682 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1683
1691 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1692
1699 Qgis::LineClipMode clipMode() const { return mClipMode; }
1700
1707 void setClipMode( Qgis::LineClipMode mode ) { mClipMode = mode; }
1708
1709 void setOutputUnit( Qgis::RenderUnit unit ) override;
1710 Qgis::RenderUnit outputUnit() const override;
1711 bool usesMapUnits() const override;
1712 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1713 QgsMapUnitScale mapUnitScale() const override;
1714 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1715 QgsSymbol *subSymbol() override;
1716 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1717 bool hasDataDefinedProperties() const override;
1718 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1719 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1720
1721 protected:
1722 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1723
1724 private:
1726 double mDistance = 5.0;
1728 QgsMapUnitScale mDistanceMapUnitScale;
1730 double mLineWidth = 0;
1732 QgsMapUnitScale mLineWidthMapUnitScale;
1734 double mLineAngle = 45.0;
1736 double mOffset = 0.0;
1738 QgsMapUnitScale mOffsetMapUnitScale;
1739
1740 bool mRenderUsingLines = false;
1741
1742#ifdef SIP_RUN
1744#endif
1745
1747 bool applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double lineAngle, double distance );
1748
1750 std::unique_ptr< QgsLineSymbol > mFillLineSymbol;
1751 bool mFillLineSymbolRenderStarted = false;
1752
1754};
1755
1762{
1763 public:
1766
1772 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1773 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1774
1775 QString layerType() const override;
1776 void startRender( QgsSymbolRenderContext &context ) override;
1777 void stopRender( QgsSymbolRenderContext &context ) override;
1778 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1779 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1780 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1781 QVariantMap properties() const override;
1783 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1784 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1785 QImage toTiledPatternImage() const override;
1786 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1787 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1788 QgsSymbol *subSymbol() override;
1789 void setOutputUnit( Qgis::RenderUnit unit ) override;
1790 Qgis::RenderUnit outputUnit() const override;
1791 bool usesMapUnits() const override;
1792 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1793 QgsMapUnitScale mapUnitScale() const override;
1794 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1795 bool hasDataDefinedProperties() const override;
1796 void setColor( const QColor &c ) override;
1797 QColor color() const override;
1798
1808 double distanceX() const { return mDistanceX; }
1809
1819 void setDistanceX( double d ) { mDistanceX = d; }
1820
1828
1835
1843
1851
1861 double distanceY() const { return mDistanceY; }
1862
1872 void setDistanceY( double d ) { mDistanceY = d; }
1873
1881
1888
1896
1904
1914 double displacementX() const { return mDisplacementX; }
1915
1925 void setDisplacementX( double d ) { mDisplacementX = d; }
1926
1934
1941
1949
1957
1967 double displacementY() const { return mDisplacementY; }
1968
1978 void setDisplacementY( double d ) { mDisplacementY = d; }
1979
1987
1994
2002
2010
2018 void setOffsetX( double offset ) { mOffsetX = offset; }
2019
2026 double offsetX() const { return mOffsetX; }
2027
2035 void setOffsetY( double offset ) { mOffsetY = offset; }
2036
2043 double offsetY() const { return mOffsetY; }
2044
2053
2061
2070
2078
2087
2095
2104
2112
2119 Qgis::MarkerClipMode clipMode() const { return mClipMode; }
2120
2127 void setClipMode( Qgis::MarkerClipMode mode ) { mClipMode = mode; }
2128
2138 void setMaximumRandomDeviationX( double deviation ) { mRandomDeviationX = deviation; }
2139
2150
2160 void setMaximumRandomDeviationY( double deviation ) { mRandomDeviationY = deviation; }
2161
2172
2181
2190
2199
2209
2218
2227
2236
2245
2252 unsigned long seed() const { return mSeed; }
2253
2262 void setSeed( unsigned long seed ) { mSeed = seed; }
2263
2264 protected:
2265 std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol;
2267 double mDistanceX = 15;
2270 double mDistanceY = 15;
2273 double mDisplacementX = 0;
2276 double mDisplacementY = 0;
2279 double mOffsetX = 0;
2282 double mOffsetY = 0;
2285
2292 unsigned long mSeed = 0;
2293
2294 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
2295
2296 private:
2297#ifdef SIP_RUN
2299#endif
2300
2301 bool applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double distanceX, double distanceY, double displacementX, double displacementY, double offsetX, double offsetY );
2302
2304
2305 bool mRenderUsingMarkers = false;
2306};
2307
2317{
2318 public:
2326
2328
2334 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2335
2336 QString layerType() const override;
2337 void startRender( QgsSymbolRenderContext &context ) override;
2338 void stopRender( QgsSymbolRenderContext &context ) override;
2339 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2340 QVariantMap properties() const override;
2342 bool canCauseArtifactsBetweenAdjacentTiles() const override;
2343 bool rendersIdenticallyTo( const QgsSymbolLayer *other ) const override;
2344
2345 void setColor( const QColor &color ) override;
2346 QColor color() const override;
2347
2348 QgsSymbol *subSymbol() override;
2349 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) final;
2350
2351 void setOutputUnit( Qgis::RenderUnit unit ) override;
2352 Qgis::RenderUnit outputUnit() const override;
2353 bool usesMapUnits() const override;
2354
2355 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2356 QgsMapUnitScale mapUnitScale() const override;
2357
2358 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2359 bool hasDataDefinedProperties() const override;
2360
2366 int pointCount() const;
2367
2373 void setPointCount( int count );
2374
2380 unsigned long seed() const;
2381
2389 void setSeed( unsigned long seed );
2390
2396 bool clipPoints() const;
2397
2403 void setClipPoints( bool clipped );
2404
2410 Qgis::PointCountMethod countMethod() const;
2411
2417 void setCountMethod( Qgis::PointCountMethod method );
2418
2428 double densityArea() const;
2429
2435 void setDensityArea( double area );
2436
2442 void setDensityAreaUnit( Qgis::RenderUnit unit ) { mDensityAreaUnit = unit; }
2443
2448 Qgis::RenderUnit densityAreaUnit() const { return mDensityAreaUnit; }
2449
2457 void setDensityAreaUnitScale( const QgsMapUnitScale &scale ) { mDensityAreaUnitScale = scale; }
2458
2465 const QgsMapUnitScale &densityAreaUnitScale() const { return mDensityAreaUnitScale; }
2466
2467 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2468 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2469
2470 private:
2471#ifdef SIP_RUN
2473#endif
2474
2475 struct Part
2476 {
2477 QPolygonF exterior;
2478 QVector<QPolygonF> rings;
2479 };
2480
2481 QVector< Part > mCurrentParts;
2482
2483 void render( QgsRenderContext &context, const QVector< Part > &parts, const QgsFeature &feature, bool selected );
2484
2485 std::unique_ptr< QgsMarkerSymbol > mMarker;
2487 int mPointCount = 10;
2488 double mDensityArea = 250.0;
2490 QgsMapUnitScale mDensityAreaUnitScale;
2491 unsigned long mSeed = 0;
2492 bool mClipPoints = false;
2493
2494 bool mRenderingFeature = false;
2495 double mFeatureSymbolOpacity = 1;
2496};
2497
2498
2506{
2507 public:
2510
2511 // static stuff
2512
2518 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2519 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
2520
2521 // implemented from base classes
2522
2523 QString layerType() const override;
2524 void startRender( QgsSymbolRenderContext &context ) override;
2525 void stopRender( QgsSymbolRenderContext &context ) override;
2526 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2527 QVariantMap properties() const override;
2529 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
2530 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
2531 void setColor( const QColor &color ) override;
2532 QColor color() const override;
2533 QgsSymbol *subSymbol() override;
2534 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) final;
2535 void setOutputUnit( Qgis::RenderUnit unit ) override;
2536 Qgis::RenderUnit outputUnit() const override;
2537 bool usesMapUnits() const override;
2538 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2539 QgsMapUnitScale mapUnitScale() const override;
2540 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2541 bool hasDataDefinedProperties() const override;
2542 bool canCauseArtifactsBetweenAdjacentTiles() const override;
2543
2545 bool pointOnSurface() const { return mPointOnSurface; }
2546
2552
2557 bool pointOnAllParts() const { return mPointOnAllParts; }
2558
2565 bool clipPoints() const { return mClipPoints; }
2566
2574
2582
2590
2591 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2592 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2593
2594 protected:
2595 std::unique_ptr< QgsMarkerSymbol > mMarker;
2596 bool mPointOnSurface = false;
2597 bool mPointOnAllParts = true;
2598 bool mClipPoints = false;
2600
2601 bool mRenderingFeature = false;
2603 bool mUseSelectedColor = false;
2604
2605 private:
2606#ifdef SIP_RUN
2608#endif
2609 struct Part
2610 {
2611 QPolygonF exterior;
2612 QVector<QPolygonF> rings;
2613 };
2614
2615 void render( QgsRenderContext &context, const QVector<Part> &parts, const QgsFeature &feature, bool selected );
2616 QVector<Part> mCurrentParts;
2617};
2618
2619#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:62
MarkerClipMode
Marker clipping modes.
Definition qgis.h:3430
@ Shape
Clip to polygon shape.
Definition qgis.h:3432
LineClipMode
Line clipping modes.
Definition qgis.h:3444
@ ClipPainterOnly
Applying clipping on the painter only (i.e. line endpoints will coincide with polygon bounding box,...
Definition qgis.h:3445
GradientColorSource
Gradient color sources.
Definition qgis.h:3359
@ SimpleTwoColor
Simple two color gradient.
Definition qgis.h:3360
GradientSpread
Gradient spread options, which control how gradients are rendered outside of their start and end poin...
Definition qgis.h:3403
@ Pad
Pad out gradient using colors at endpoint of gradient.
Definition qgis.h:3404
PointCountMethod
Methods which define the number of points randomly filling a polygon.
Definition qgis.h:3418
@ Absolute
The point count is used as an absolute count of markers.
Definition qgis.h:3419
QFlags< SymbolLayerFlag > SymbolLayerFlags
Symbol layer flags.
Definition qgis.h:935
RenderUnit
Rendering size units.
Definition qgis.h:5566
@ Millimeters
Millimeters.
Definition qgis.h:5567
@ Pixels
Pixels.
Definition qgis.h:5569
GradientType
Gradient types.
Definition qgis.h:3373
@ Linear
Linear gradient.
Definition qgis.h:3374
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition qgis.h:3388
@ Feature
Relative to feature/shape being rendered.
Definition qgis.h:3389
static QgsSymbolLayer * createFromSld(QDomElement &element)
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns the set of attributes referenced by the layer.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
Qgis::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer.
void setPointOnAllParts(bool pointOnAllParts)
Sets whether a point is drawn for all parts or only on the biggest part of multi-part features.
void setMapUnitScale(const QgsMapUnitScale &scale) override
bool canCauseArtifactsBetweenAdjacentTiles() const override
Returns true if the symbol layer rendering can cause visible artifacts across a single feature when t...
bool setSubSymbol(QgsSymbol *symbol) final
Sets layer's subsymbol. takes ownership of the passed symbol.
QgsMapUnitScale mapUnitScale() const override
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
QString layerType() const override
Returns a string that represents this layer type.
void setColor(const QColor &color) override
Sets the "representative" color for the symbol layer.
bool pointOnAllParts() const
Returns whether a point is drawn for all parts or only on the biggest part of multi-part features.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
bool hasDataDefinedProperties() const override
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
void setOutputUnit(Qgis::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
bool clipPoints() const
Returns true if point markers should be clipped to the polygon boundary.
QgsCentroidFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
Q_DECL_DEPRECATED void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
Saves the symbol layer as SLD.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsCentroidFillSymbolLayer using the specified properties map containing symbol propert...
~QgsCentroidFillSymbolLayer() override
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
QColor color() const override
Returns the "representative" color of the symbol layer.
bool clipOnCurrentPartOnly() const
Returns true if point markers should be clipped to the current part boundary only.
void setPointOnSurface(bool pointOnSurface)
Abstract base class for color ramps.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:60
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,...
virtual QImage toTiledPatternImage() const
Renders the symbol layer as an image that can be used as a seamless pattern fill for polygons,...
double angle() const
Returns the rotation angle of the fill symbol, in degrees clockwise.
QgsFillSymbolLayer(const QgsFillSymbolLayer &other)=delete
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::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
Qgis::SymbolCoordinateReference coordinateMode() const
Returns the coordinate mode for gradient, which controls how the gradient stops are positioned.
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].
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
void setOffsetUnit(Qgis::RenderUnit unit)
Sets the unit for the fill's offset.
void setCoordinateMode(Qgis::SymbolCoordinateReference coordinateMode)
Sets the coordinate mode for gradient, which controls how the gradient stops are positioned.
Qgis::SymbolCoordinateReference mCoordinateMode
QgsGradientFillSymbolLayer(const QColor &color=DEFAULT_SIMPLEFILL_COLOR, const QColor &color2=Qt::white, Qgis::GradientColorSource gradientColorType=Qgis::GradientColorSource::SimpleTwoColor, Qgis::GradientType gradientType=Qgis::GradientType::Linear, Qgis::SymbolCoordinateReference coordinateMode=Qgis::SymbolCoordinateReference::Feature, Qgis::GradientSpread gradientSpread=Qgis::GradientSpread::Pad)
Constructor for QgsGradientFillSymbolLayer.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsGradientFillSymbolLayer using the specified properties map containing symbol propert...
Qgis::GradientSpread mGradientSpread
void setReferencePoint2IsCentroid(bool isCentroid)
Sets whether the end point for the gradient is taken from the feature centroid.
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...
QgsColorRamp * colorRamp()
Returns the color ramp used for the gradient fill.
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.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns 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
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].
std::unique_ptr< QgsColorRamp > mGradientRamp
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 fill symbol layers which fill polygons with a repeated image.
QgsMapUnitScale mStrokeWidthMapUnitScale
void setStrokeWidthUnit(Qgis::RenderUnit unit)
Sets the units for the symbol's stroke width.
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...
double mStrokeWidth
Stroke width.
void setCoordinateReference(Qgis::SymbolCoordinateReference coordinateReference)
Sets the coordinate reference mode for fill which controls how the top left corner of the image fill ...
Qgis::SymbolCoordinateReference mCoordinateReference
Qgis::RenderUnit strokeWidthUnit() const
Returns the units for the symbol's stroke width.
Qgis::RenderUnit mStrokeWidthUnit
virtual void applyDataDefinedSettings(QgsSymbolRenderContext &context)
Applies data defined settings prior to generating the fill symbol brush.
const QgsMapUnitScale & strokeWidthMapUnitScale() const
Returns the stroke width map unit scale.
~QgsImageFillSymbolLayer() override
A symbol fill consisting of repeated parallel lines.
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
QString layerType() const override
Returns a string that represents this layer type.
QgsLinePatternFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
Qgis::RenderUnit distanceUnit() const
Returns the units for the distance between lines in the fill pattern.
Q_DECL_DEPRECATED void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
Saves the symbol layer as SLD.
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.
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.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
Qgis::RenderUnit lineWidthUnit() const
Returns the units for the line's width.
void setLineWidthUnit(Qgis::RenderUnit unit)
Sets the unit for the line's width.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the pattern's line offset.
void setDistance(double d)
Sets the distance between lines in the fill pattern.
const QgsMapUnitScale & lineWidthMapUnitScale() const
Returns the map unit scale for the pattern's line width.
void setClipMode(Qgis::LineClipMode mode)
Sets the line clipping mode, which defines how lines are clipped at the edges of shapes.
void setOffsetUnit(Qgis::RenderUnit unit)
Sets the unit for the line pattern's offset.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
const QgsMapUnitScale & distanceMapUnitScale() const
Returns the map unit scale for the pattern's line distance.
QImage toTiledPatternImage() const override
Renders the symbol layer as an image that can be used as a seamless pattern fill for polygons,...
void setLineAngle(double a)
Sets the angle for the parallel lines used to fill the symbol.
double offset() const
Returns the offset distance for lines within the fill, which is the distance to offset the parallel l...
void setDistanceUnit(Qgis::RenderUnit unit)
Sets the unit for the distance between lines in the fill pattern.
double distance() const
Returns 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...
Qgis::RenderUnit offsetUnit() const
Returns the units for the line pattern's offset.
QString ogrFeatureStyleWidth(double widthScaleFactor) const
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's line offset.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
~QgsLinePatternFillSymbolLayer() override
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
static QgsSymbolLayer * createFromSld(QDomElement &element)
Creates a new QgsLinePatternFillSymbolLayer from a SLD element.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsLinePatternFillSymbolLayer from a properties map.
A line symbol type, for rendering LineString and MultiLineString geometries.
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.
QgsMapUnitScale mapUnitScale() const override
const QgsMapUnitScale & distanceYMapUnitScale() const
Returns the map unit scale for the vertical distance between points in the pattern.
void setDisplacementX(double d)
Sets the horizontal displacement for odd numbered rows in the pattern.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
void setOffsetXUnit(Qgis::RenderUnit unit)
Sets the units for the horizontal offset between rows in the pattern.
Qgis::RenderUnit offsetYUnit() const
Returns the units for the vertical 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 renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
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.
void setDistanceYUnit(Qgis::RenderUnit unit)
Sets the unit for the vertical distance between points in the pattern.
double distanceX() const
Returns the horizontal distance between rendered markers in the fill.
Qgis::RenderUnit randomDeviationYUnit() const
Returns the units for the vertical random deviation of points in the pattern.
QImage toTiledPatternImage() const override
Renders the symbol layer as an image that can be used as a seamless pattern fill for polygons,...
double displacementY() const
Returns the vertical displacement for odd numbered columns in the pattern.
void setColor(const QColor &c) override
Sets the "representative" color for the symbol layer.
void setDisplacementYUnit(Qgis::RenderUnit unit)
Sets the units for the vertical displacement between rows in the pattern.
void setRandomDeviationYUnit(Qgis::RenderUnit unit)
Sets the unit for the vertical random deviation of points in the pattern.
const QgsMapUnitScale & distanceXMapUnitScale() const
Returns the map unit scale for the horizontal distance between points in the pattern.
void startFeatureRender(const QgsFeature &feature, QgsRenderContext &context) override
Called before the layer will be rendered for a particular feature.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsPointPatternFillSymbolLayer using the specified properties map containing symbol pro...
void setRandomDeviationYMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the vertical random deviation of points 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.
void setRandomDeviationXMapUnitScale(const QgsMapUnitScale &scale)
Sets the unit scale for the horizontal random deviation of points in the pattern.
Qgis::RenderUnit distanceXUnit() const
Returns the units for the horizontal distance between points in the pattern.
bool hasDataDefinedProperties() const override
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
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.
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
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 setMapUnitScale(const QgsMapUnitScale &scale) override
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
QString layerType() const override
Returns a string that represents this layer type.
void applyDataDefinedSettings(QgsSymbolRenderContext &context) override
Applies data defined settings prior to generating the fill symbol brush.
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.
const QgsMapUnitScale & offsetXMapUnitScale() const
Returns the unit scale for the horizontal offset for rows in the pattern.
const QgsMapUnitScale & displacementXMapUnitScale() const
Returns the map unit scale for the horizontal displacement between odd numbered rows in the pattern.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
const QgsMapUnitScale & offsetYMapUnitScale() const
Returns the unit scale for the vertical offset between rows in the pattern.
void setDistanceXMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the horizontal distance between points in the pattern.
Qgis::RenderUnit distanceYUnit() const
Returns the units for the vertical distance between points in the pattern.
void stopFeatureRender(const QgsFeature &feature, QgsRenderContext &context) override
Called after the layer has been rendered for a particular feature.
const QgsMapUnitScale & displacementYMapUnitScale() const
Returns the map unit scale for the vertical displacement between odd numbered columns in the pattern.
void setDistanceXUnit(Qgis::RenderUnit unit)
Sets the unit for the horizontal distance between points in the pattern.
QColor color() const override
Returns the "representative" color of the symbol layer.
void setOffsetYUnit(Qgis::RenderUnit unit)
Sets the units for the vertical offset for rows in the pattern.
const QgsMapUnitScale & randomDeviationYMapUnitScale() const
Returns the unit scale for the vertical random deviation of points in the pattern.
Qgis::RenderUnit offsetXUnit() const
Returns the units for the horizontal offset for rows 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.
Qgis::RenderUnit displacementXUnit() const
Returns the units for the horizontal displacement between rows in the pattern.
Qgis::RenderUnit randomDeviationXUnit() const
Returns the units for the horizontal random deviation of points in the pattern.
void setDisplacementXUnit(Qgis::RenderUnit unit)
Sets the units for the horizontal displacement between rows in the pattern.
void setDistanceX(double d)
Sets the horizontal distance between rendered markers in the fill.
Q_DECL_DEPRECATED void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
Saves the symbol layer as SLD.
double offsetX() const
Returns the horizontal offset values for points in the pattern.
void setRandomDeviationXUnit(Qgis::RenderUnit unit)
Sets the unit for the horizontal random deviation of points in the pattern.
Qgis::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer.
double maximumRandomDeviationX() const
Returns the maximum horizontal random deviation of points in the pattern.
std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
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.
QgsPointPatternFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
void setDistanceYMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the vertical distance between points in the pattern.
Qgis::RenderUnit displacementYUnit() const
Returns the units for the vertical 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.
void setOutputUnit(Qgis::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns the set of attributes referenced by the layer.
~QgsPointPatternFillSymbolLayer() override
bool setSubSymbol(QgsSymbol *symbol) override
Sets layer's subsymbol. takes ownership of the passed symbol.
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.
static QgsSymbolLayer * createFromSld(QDomElement &element)
A fill symbol layer which places markers at random locations within polygons.
~QgsRandomMarkerFillSymbolLayer() override
bool setSubSymbol(QgsSymbol *symbol) final
Sets layer's subsymbol. takes ownership of the passed symbol.
int pointCount() const
Returns the count of random points to render in the fill.
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
QgsRandomMarkerFillSymbolLayer(int pointCount=10, Qgis::PointCountMethod method=Qgis::PointCountMethod::Absolute, double densityArea=250.0, unsigned long seed=0)
Constructor for QgsRandomMarkerFillSymbolLayer, with the specified pointCount.
unsigned long seed() const
Returns the random number seed to use when generating points, or 0 if a truly random sequence will be...
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsRandomMarkerFillSymbolLayer using the specified properties map containing symbol pro...
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
QString layerType() const override
Returns a string that represents this layer type.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
void setDensityAreaUnitScale(const QgsMapUnitScale &scale)
Sets the map scale for the density area.
QgsRandomMarkerFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
Qgis::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer.
void setMapUnitScale(const QgsMapUnitScale &scale) override
bool hasDataDefinedProperties() const override
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
void setCountMethod(Qgis::PointCountMethod method)
Sets the count method used to randomly fill the polygon.
bool clipPoints() const
Returns true if point markers should be clipped to the polygon boundary.
bool canCauseArtifactsBetweenAdjacentTiles() const override
Returns true if the symbol layer rendering can cause visible artifacts across a single feature when t...
void setClipPoints(bool clipped)
Sets whether point markers should be clipped to the polygon boundary.
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
QColor color() const override
Returns the "representative" color of the symbol layer.
void setSeed(unsigned long seed)
Sets the random number seed to use when generating points, or 0 if a truly random sequence will be us...
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns the set of attributes referenced by the layer.
void setPointCount(int count)
Sets the count of random points to render in the fill.
Qgis::RenderUnit densityAreaUnit() const
Returns the units for the density area.
Qgis::PointCountMethod countMethod() const
Returns the count method used to randomly fill the polygon.
void setDensityAreaUnit(Qgis::RenderUnit unit)
Sets the units for the density area.
const QgsMapUnitScale & densityAreaUnitScale() const
Returns the map scale for the density area.
double densityArea() const
Returns the density area used to count the number of points to randomly fill the polygon.
bool rendersIdenticallyTo(const QgsSymbolLayer *other) const override
Returns true if this symbol layer will always render identically to an other symbol layer.
void setColor(const QColor &color) override
Sets the "representative" color for the symbol layer.
void setDensityArea(double area)
Sets the density area used to count the number of points to randomly fill the polygon.
void setOutputUnit(Qgis::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
QgsMapUnitScale mapUnitScale() const override
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
const QgsMapUnitScale & sizeMapUnitScale() const
Returns the map unit scale for the image's width and height.
double width() const
Returns the width used for scaling the image used in the fill.
Q_DECL_DEPRECATED void setWidthUnit(Qgis::RenderUnit unit)
Sets the unit for the image's width.
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
Qgis::SymbolLayerFlags flags() const override
Returns flags which control the symbol layer's behavior.
void setOffsetUnit(const Qgis::RenderUnit unit)
Sets the units for the fill's offset.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
static QgsSymbolLayer * createFromSld(QDomElement &element)
Creates a new QgsRasterFillSymbolLayer from a SLD element.
void setHeight(double height)
Sets the height for scaling the image.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsRasterFillSymbolLayer from a properties map.
Q_DECL_DEPRECATED const QgsMapUnitScale & widthMapUnitScale() const
Returns the map unit scale for the image's width.
Qgis::SymbolCoordinateReference coordinateMode() const
Coordinate mode for fill.
QString layerType() const override
Returns a string that represents this layer type.
void setOutputUnit(Qgis::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
Qgis::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
QgsRasterFillSymbolLayer(const QString &imageFilePath=QString())
Constructor for QgsRasterFillSymbolLayer, using a raster fill from the specified imageFilePath.
double opacity() const
Returns the opacity for the raster image used in the fill.
void setSizeUnit(Qgis::RenderUnit unit)
Sets the unit for the image's width and height.
~QgsRasterFillSymbolLayer() override
Q_DECL_DEPRECATED Qgis::RenderUnit widthUnit() const
Returns the units for the image's width.
QColor color() const override
Returns the "representative" color of the symbol layer.
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
Qgis::RenderUnit sizeUnit() const
Returns the units for the image's width and height.
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.
Q_DECL_DEPRECATED void setWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the image's width.
double height() const
Returns the height used for scaling the image used in the fill.
void setWidth(double width)
Sets the width for scaling the image used in the fill.
static void resolvePaths(QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving)
Turns relative paths in properties map to absolute when reading and vice versa when writing.
void setSizeMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the image's width and height.
QPointF offset() const
Returns the offset for the fill.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill's offset.
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
void setOffset(QPointF offset)
Sets the offset for the fill.
QgsRasterFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
Contains information about the context of a rendering operation.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
QString svgFilePath() const
Returns the path to the SVG file used to render the fill.
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
void setSvgStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's stroke.
QColor dxfColor(QgsSymbolRenderContext &context) const override
Gets color.
static QgsSymbolLayer * createFromSld(QDomElement &element)
Creates a new QgsSVGFillSymbolLayer from a SLD element.
bool setSubSymbol(QgsSymbol *symbol) override
Sets layer's subsymbol. takes ownership of the passed symbol.
QColor svgStrokeColor() const
Returns the stroke color used for rendering the SVG content.
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
void setSvgStrokeWidthUnit(Qgis::RenderUnit unit)
Sets the unit for the stroke width.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
Qgis::RenderUnit patternWidthUnit() const
Returns the units for the width of the SVG images in the pattern.
void setSvgFillColor(const QColor &c)
Sets the fill color used for rendering the SVG content.
const QgsMapUnitScale & svgStrokeWidthMapUnitScale() const
Returns the map unit scale for the pattern's stroke.
double svgStrokeWidth() const
Returns the stroke width used for rendering the SVG content.
QString layerType() const override
Returns a string that represents this layer type.
QMap< QString, QgsProperty > parameters() const
Returns the dynamic SVG parameters.
void setSvgStrokeWidth(double w)
Sets the stroke width used for rendering the SVG content.
QgsSVGFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns the set of attributes referenced by the layer.
QgsSVGFillSymbolLayer(const QString &svgFilePath, double width=20, double rotation=0.0)
Constructor for QgsSVGFillSymbolLayer, using the SVG picture at the specified absolute file path.
void setPatternWidthUnit(Qgis::RenderUnit unit)
Sets the unit for the width of the SVG images in the pattern.
void setSvgFilePath(const QString &svgPath)
Sets the path to the SVG file to render in the fill.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsSVGFillSymbolLayer from a properties map.
QColor svgFillColor() const
Returns the fill color used for rendering the SVG content.
static void resolvePaths(QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving)
Turns relative paths in properties map to absolute when reading and vice versa when writing.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
void setSvgStrokeColor(const QColor &c)
Sets the stroke color used for rendering the SVG content.
const QgsMapUnitScale & patternWidthMapUnitScale() const
Returns the map unit scale for the pattern's width.
Qgis::RenderUnit svgStrokeWidthUnit() const
Returns the units 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.
bool hasDataDefinedProperties() const override
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
~QgsSVGFillSymbolLayer() override
Q_DECL_DEPRECATED void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
Saves the symbol layer as SLD.
void setPatternWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the pattern's width.
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
A fill symbol layer which applies a gradient from the outer edges of a symbol to the inside.
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
QgsShapeburstFillSymbolLayer(const QColor &color=DEFAULT_SIMPLEFILL_COLOR, const QColor &color2=Qt::white, Qgis::GradientColorSource colorType=Qgis::GradientColorSource::SimpleTwoColor, int blurRadius=0, bool useWholeShape=true, double maxDistance=5)
Constructor for QgsShapeburstFillSymbolLayer.
QgsShapeburstFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
~QgsShapeburstFillSymbolLayer() override
Qgis::RenderUnit offsetUnit() const
Returns the units used for the offset of the shapeburst fill.
QgsColorRamp * colorRamp()
Returns the color ramp used for the shapeburst fill.
int blurRadius() const
Returns the blur radius, which controls the amount of blurring applied to the fill.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
void setOffsetUnit(Qgis::RenderUnit unit)
Sets the units used for the offset for the shapeburst fill.
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
void setOffset(QPointF offset)
Sets the offset for the shapeburst fill.
void setBlurRadius(int blurRadius)
Sets the blur radius, which controls the amount of blurring applied to the fill.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
void setUseWholeShape(bool useWholeShape)
Sets whether the shapeburst fill should be drawn using the entire shape.
QColor color2() const
Returns the color used for the endpoint of the shapeburst fill.
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.
QgsShapeburstFillSymbolLayer & operator=(const QgsShapeburstFillSymbolLayer &other)=delete
QgsShapeburstFillSymbolLayer cannot be copied.
Qgis::RenderUnit distanceUnit() const
Returns the unit for the maximum distance to shade inside of the shape from the polygon's boundary.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
bool canCauseArtifactsBetweenAdjacentTiles() const override
Returns true if the symbol layer rendering can cause visible artifacts across a single feature when t...
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsShapeburstFillSymbolLayer using the specified properties map containing symbol prope...
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.
Qgis::SymbolLayerFlags flags() const override
Returns flags which control the symbol layer's behavior.
const QgsMapUnitScale & offsetMapUnitScale() const
QString layerType() const override
Returns a string that represents this layer type.
void setDistanceUnit(Qgis::RenderUnit unit)
Sets the unit for the maximum distance to shade inside of the shape from the polygon's boundary.
void setDistanceMapUnitScale(const QgsMapUnitScale &scale)
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.
double estimateMaxBleed(const QgsRenderContext &context) const override
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
QgsShapeburstFillSymbolLayer(const QgsShapeburstFillSymbolLayer &other)=delete
QgsShapeburstFillSymbolLayer cannot be copied.
const QgsMapUnitScale & distanceMapUnitScale() const
QgsSimpleFillSymbolLayer(const QColor &color=DEFAULT_SIMPLEFILL_COLOR, Qt::BrushStyle style=DEFAULT_SIMPLEFILL_STYLE, const QColor &strokeColor=DEFAULT_SIMPLEFILL_BORDERCOLOR, Qt::PenStyle strokeStyle=DEFAULT_SIMPLEFILL_BORDERSTYLE, double strokeWidth=DEFAULT_SIMPLEFILL_BORDERWIDTH, Qt::PenJoinStyle penJoinStyle=DEFAULT_SIMPLEFILL_JOINSTYLE)
Qgis::RenderUnit strokeWidthUnit() const
Returns the units for the width of the fill's stroke.
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 & strokeWidthMapUnitScale() const
QString ogrFeatureStyle(double mmScaleFactor, double mapUnitScaleFactor) const override
void startRender(QgsSymbolRenderContext &context) override
Called before a set of rendering operations commences on the supplied render context.
Qgis::SymbolLayerFlags flags() const override
Returns flags which control the symbol layer's behavior.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the fill's offset.
void setStrokeWidthUnit(Qgis::RenderUnit unit)
Sets the units for the width of the fill's stroke.
~QgsSimpleFillSymbolLayer() override
Q_DECL_DEPRECATED void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props) const override
Saves the symbol layer as SLD.
void setPenJoinStyle(Qt::PenJoinStyle style)
QColor fillColor() const override
Returns the fill color for the symbol layer.
Qt::PenStyle strokeStyle() const
QString layerType() const override
Returns a string that represents this layer type.
QgsMapUnitScale mOffsetMapUnitScale
Qgis::RenderUnit mStrokeWidthUnit
void setStrokeWidth(double strokeWidth)
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
QPointF offset() const
Returns the offset by which polygons will be translated during rendering.
Qgis::RenderUnit offsetUnit() const
Returns the units for the fill's offset.
void setStrokeStyle(Qt::PenStyle strokeStyle)
QgsMapUnitScale mStrokeWidthMapUnitScale
void setOffsetUnit(Qgis::RenderUnit unit)
Sets the unit for the fill's offset.
void renderPolygon(const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) override
Renders the fill symbol layer for the polygon whose outer ring is defined by points,...
void setFillColor(const QColor &color) override
Sets the fill color for the symbol layer.
QgsSimpleFillSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
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.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the fill's offset.
Qt::BrushStyle brushStyle() const
QVariantMap properties() const override
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Creates a new QgsSimpleFillSymbolLayer using the specified properties map containing symbol propertie...
static QgsSymbolLayer * createFromSld(QDomElement &element)
Holds SLD export options and other information related to SLD export of a QGIS layer style.
virtual QgsSymbolLayer * clone() const =0
Shall be reimplemented by subclasses to create a deep copy of the instance.
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 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 Qgis::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 Q_DECL_DEPRECATED double dxfWidth(const QgsDxfExport &e, QgsSymbolRenderContext &context) const
Gets line width.
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 void setOutputUnit(Qgis::RenderUnit unit)
Sets the units to use for sizes and widths within the symbol layer.
virtual Qgis::SymbolLayerFlags flags() const
Returns flags which control the symbol layer's behavior.
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.
QgsSymbolLayer(const QgsSymbolLayer &other)
Encapsulates the context in which a symbol is being rendered.
Abstract base class for all rendered symbols.
Definition qgssymbol.h:227
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:7751
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_TRANSFER
Definition qgis_sip.h:35
#define SIP_ABSTRACT
Definition qgis_sip.h:220
#define SIP_FACTORY
Definition qgis_sip.h:83
#define DEFAULT_SIMPLEFILL_JOINSTYLE
#define DEFAULT_SIMPLEFILL_COLOR
#define DEFAULT_SIMPLEFILL_STYLE
#define DEFAULT_SIMPLEFILL_BORDERSTYLE
#define DEFAULT_SIMPLEFILL_BORDERCOLOR
#define DEFAULT_SIMPLEFILL_BORDERWIDTH