QGIS API Documentation 3.99.0-Master (2fe06baccd8)
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 Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE,
53 );
54
56
57 // static stuff
58
64 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
65 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
66
67 // implemented from base classes
68
69 QString layerType() const override;
70 Qgis::SymbolLayerFlags flags() const override;
71 void startRender( QgsSymbolRenderContext &context ) override;
72 void stopRender( QgsSymbolRenderContext &context ) override;
73 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
74 QVariantMap properties() const override;
76 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
77 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
78 QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
79
80 Qt::BrushStyle brushStyle() const { return mBrushStyle; }
81 void setBrushStyle( Qt::BrushStyle style ) { mBrushStyle = style; }
82
83 QColor strokeColor() const override { return mStrokeColor; }
84 void setStrokeColor( const QColor &strokeColor ) override { mStrokeColor = strokeColor; }
85 QColor fillColor() const override { return color(); }
86 void setFillColor( const QColor &color ) override { setColor( color ); }
87
88 Qt::PenStyle strokeStyle() const { return mStrokeStyle; }
90
91 double strokeWidth() const { return mStrokeWidth; }
93
94 Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
95 void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
96
105 void setOffset( QPointF offset ) { mOffset = offset; }
106
115 QPointF offset() const { return mOffset; }
116
123
129
132
139
146
153
160
161 void setOutputUnit( Qgis::RenderUnit unit ) override;
162 Qgis::RenderUnit outputUnit() const override;
163 bool usesMapUnits() const override;
164
165 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
166 QgsMapUnitScale mapUnitScale() const override;
167
168 double estimateMaxBleed( const QgsRenderContext &context ) const override;
169
170 double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
171 QColor dxfColor( QgsSymbolRenderContext &context ) const override;
172 double dxfAngle( QgsSymbolRenderContext &context ) const override;
173
174 Qt::PenStyle dxfPenStyle() const override;
175 QColor dxfBrushColor( QgsSymbolRenderContext &context ) const override;
176 Qt::BrushStyle dxfBrushStyle() const override;
177 QImage toTiledPatternImage( ) const override;
178
179 protected:
180 QBrush mBrush;
181 QBrush mSelBrush;
182 Qt::BrushStyle mBrushStyle;
184 Qt::PenStyle mStrokeStyle;
188 Qt::PenJoinStyle mPenJoinStyle;
189 QPen mPen;
191
192 QPointF mOffset;
195
196 private:
197 //helper functions for data defined symbology
198 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QBrush &brush, QPen &pen, QPen &selPen );
199
200};
201
202class QgsColorRamp;
203
210{
211 public:
212
217 const QColor &color2 = Qt::white,
222 );
223
225
226 // static stuff
227
233 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
234
235 // implemented from base classes
236
237 Qgis::SymbolLayerFlags flags() const override;
238 QString layerType() const override;
239 void startRender( QgsSymbolRenderContext &context ) override;
240 void stopRender( QgsSymbolRenderContext &context ) override;
241 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
242 QVariantMap properties() const override;
244 double estimateMaxBleed( const QgsRenderContext &context ) const override;
245 bool canCauseArtifactsBetweenAdjacentTiles() const override;
246
253
260
267
274
282
290 void setColorRamp( QgsColorRamp *ramp SIP_TRANSFER );
291
297 QColor color2() const { return mColor2; }
298
304 void setColor2( const QColor &color2 ) { mColor2 = color2; }
305
312
319
326
333
339 void setReferencePoint1( QPointF referencePoint ) { mReferencePoint1 = referencePoint; }
340
346 QPointF referencePoint1() const { return mReferencePoint1; }
347
353 void setReferencePoint1IsCentroid( bool isCentroid ) { mReferencePoint1IsCentroid = isCentroid; }
354
361
367 void setReferencePoint2( QPointF referencePoint ) { mReferencePoint2 = referencePoint; }
368
374 QPointF referencePoint2() const { return mReferencePoint2; }
375
381 void setReferencePoint2IsCentroid( bool isCentroid ) { mReferencePoint2IsCentroid = isCentroid; }
382
383
390
399 void setOffset( QPointF offset ) { mOffset = offset; }
400
409 QPointF offset() const { return mOffset; }
410
417
424
431
438
439 void setOutputUnit( Qgis::RenderUnit unit ) override;
440 Qgis::RenderUnit outputUnit() const override;
441 bool usesMapUnits() const override;
442
443 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
444 QgsMapUnitScale mapUnitScale() const override;
445
446 protected:
447 QBrush mBrush;
448 QBrush mSelBrush;
449
451 QColor mColor2;
452 std::unique_ptr<QgsColorRamp> mGradientRamp;
456
461
462 QPointF mOffset;
465
466 private:
467
468 //helper functions for data defined symbology
469 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, const QPolygonF &points );
470
472 void applyGradient( const QgsSymbolRenderContext &context, QBrush &brush, const QColor &color, const QColor &color2,
475 QPointF referencePoint1, QPointF referencePoint2, double angle );
476
478 QPointF rotateReferencePoint( QPointF refPoint, double angle );
479};
480
487{
488 public:
489
493 QgsShapeburstFillSymbolLayer( const QColor &color = DEFAULT_SIMPLEFILL_COLOR, const QColor &color2 = Qt::white,
495 int blurRadius = 0, bool useWholeShape = true, double maxDistance = 5 );
496
498
504
510
511 // static stuff
512
518 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
519
520 // implemented from base classes
521
522 QString layerType() const override;
523 Qgis::SymbolLayerFlags flags() const override;
524 void startRender( QgsSymbolRenderContext &context ) override;
525 void stopRender( QgsSymbolRenderContext &context ) override;
526 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
527 QVariantMap properties() const override;
529 double estimateMaxBleed( const QgsRenderContext &context ) const override;
530 bool canCauseArtifactsBetweenAdjacentTiles() const override;
531
537 void setBlurRadius( int blurRadius ) { mBlurRadius = blurRadius; }
538
544 int blurRadius() const { return mBlurRadius; }
545
553 void setUseWholeShape( bool useWholeShape ) { mUseWholeShape = useWholeShape; }
554
561 bool useWholeShape() const { return mUseWholeShape; }
562
570 void setMaxDistance( double maxDistance ) { mMaxDistance = maxDistance; }
571
579 double maxDistance() const { return mMaxDistance; }
580
587 void setDistanceUnit( Qgis::RenderUnit unit ) { mDistanceUnit = unit; }
588
595 Qgis::RenderUnit distanceUnit() const { return mDistanceUnit; }
596
597 void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
598 const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
599
610
620 Qgis::GradientColorSource colorType() const { return mColorType; }
621
630 void setColorRamp( QgsColorRamp *ramp SIP_TRANSFER );
631
638 QgsColorRamp *colorRamp() { return mGradientRamp.get(); }
639
646 void setColor2( const QColor &color2 ) { mColor2 = color2; }
647
654 QColor color2() const { return mColor2; }
655
662 void setIgnoreRings( bool ignoreRings ) { mIgnoreRings = ignoreRings; }
663
669 bool ignoreRings() const { return mIgnoreRings; }
670
677 void setOffset( QPointF offset ) { mOffset = offset; }
678
685 QPointF offset() const { return mOffset; }
686
693 void setOffsetUnit( Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
694
701 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
702
703 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
704 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
705
706 void setOutputUnit( Qgis::RenderUnit unit ) override;
707 Qgis::RenderUnit outputUnit() const override;
708 bool usesMapUnits() const override;
709
710 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
711 QgsMapUnitScale mapUnitScale() const override;
712
713 private:
714 QBrush mBrush;
715 QBrush mSelBrush;
716
717 int mBlurRadius = 0;
718
719 bool mUseWholeShape = true;
720 double mMaxDistance = 5.0;
722 QgsMapUnitScale mDistanceMapUnitScale;
723
725 QColor mColor2;
726
727 bool mIgnoreRings = false;
728
729 QPointF mOffset;
731 QgsMapUnitScale mOffsetMapUnitScale;
732
733 std::unique_ptr< QgsColorRamp > mGradientRamp;
734
735 //helper functions for data defined symbology
736 void applyDataDefinedSymbology( QgsSymbolRenderContext &context, QColor &color, QColor &color2, int &blurRadius, bool &useWholeShape,
737 double &maxDistance, bool &ignoreRings );
738
739 /* distance transform of a 1d function using squared distance */
740 void distanceTransform1d( double *f, int n, int *v, double *z, double *d );
741 /* distance transform of 2d function using squared distance */
742 void distanceTransform2d( double *im, int width, int height, QgsRenderContext &context );
743 /* distance transform of a binary QImage */
744 double *distanceTransform( QImage *im, QgsRenderContext &context );
745
746 /* fills a QImage with values from an array of doubles containing squared distance transform values */
747 void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, QgsRenderContext &context, bool useWholeShape = true, int maxPixelDistance = 0 );
748
749#ifdef SIP_RUN
751#endif
752};
753
759{
760 public:
761
764
765 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
766
773
780
788
797
806
815
816 void setOutputUnit( Qgis::RenderUnit unit ) override;
817 Qgis::RenderUnit outputUnit() const override;
818 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
819 QgsMapUnitScale mapUnitScale() const override;
820 double dxfWidth( const QgsDxfExport &e, QgsSymbolRenderContext &context ) const override;
821 Qt::PenStyle dxfPenStyle() const override;
822 QVariantMap properties() const override;
823
824 protected:
825 QBrush mBrush;
827 double mNextAngle = 0.0; // mAngle / data defined angle
828
830 double mStrokeWidth = 0.0;
833
837 virtual void applyDataDefinedSettings( QgsSymbolRenderContext &context ) { Q_UNUSED( context ) }
838
844 virtual bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const;
845
846 private:
847#ifdef SIP_RUN
849#endif
850};
851
858{
859 public:
860
865 QgsRasterFillSymbolLayer( const QString &imageFilePath = QString() );
866
868
873 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
874
880 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
881
886 static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
887
888 // implemented from base classes
889 QString layerType() const override;
890 Qgis::SymbolLayerFlags flags() const override;
891 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
892 void startRender( QgsSymbolRenderContext &context ) override;
893 void stopRender( QgsSymbolRenderContext &context ) override;
894 QVariantMap properties() const override;
896 double estimateMaxBleed( const QgsRenderContext &context ) const override;
897 bool usesMapUnits() const override;
898 QColor color() const override;
899 void setOutputUnit( Qgis::RenderUnit unit ) override;
900
901 //override QgsImageFillSymbolLayer's support for sub symbols
902 QgsSymbol *subSymbol() override { return nullptr; }
903 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
904
910 void setImageFilePath( const QString &imagePath );
911
917 QString imageFilePath() const { return mImageFilePath; }
918
925 void setCoordinateMode( Qgis::SymbolCoordinateReference mode );
926
933 Qgis::SymbolCoordinateReference coordinateMode() const { return mCoordinateMode; }
934
940 void setOpacity( double opacity );
941
947 double opacity() const { return mOpacity; }
948
956 void setOffset( QPointF offset ) { mOffset = offset; }
957
965 QPointF offset() const { return mOffset; }
966
974 void setOffsetUnit( const Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
975
983 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
984
992 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
993
1001 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1002
1014 void setWidth( double width ) { mWidth = width; }
1015
1026 double width() const { return mWidth; }
1027
1039 void setHeight( double height ) { mHeight = height; }
1040
1051 double height() const { return mHeight; }
1052
1062 Q_DECL_DEPRECATED void setWidthUnit( Qgis::RenderUnit unit ) SIP_DEPRECATED { mSizeUnit = unit; }
1063
1073 void setSizeUnit( Qgis::RenderUnit unit ) { mSizeUnit = unit; }
1074
1084 Q_DECL_DEPRECATED Qgis::RenderUnit widthUnit() const SIP_DEPRECATED { return mSizeUnit; }
1085
1096 Qgis::RenderUnit sizeUnit() const { return mSizeUnit; }
1097
1107 Q_DECL_DEPRECATED void setWidthMapUnitScale( const QgsMapUnitScale &scale ) SIP_DEPRECATED { mSizeMapUnitScale = scale; }
1108
1119 void setSizeMapUnitScale( const QgsMapUnitScale &scale ) { mSizeMapUnitScale = scale; }
1120
1130 Q_DECL_DEPRECATED const QgsMapUnitScale &widthMapUnitScale() const SIP_DEPRECATED { return mSizeMapUnitScale; }
1131
1142 const QgsMapUnitScale &sizeMapUnitScale() const { return mSizeMapUnitScale; }
1143
1144 protected:
1145
1146 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1147 bool applyBrushTransformFromContext( QgsSymbolRenderContext *context = nullptr ) const override;
1148 private:
1149
1151 QString mImageFilePath;
1153 double mOpacity = 1.0;
1154
1155 QPointF mOffset;
1157 QgsMapUnitScale mOffsetMapUnitScale;
1158
1159 double mWidth = 0.0;
1161 QgsMapUnitScale mSizeMapUnitScale;
1162
1163 double mHeight = 0.0;
1164
1166 void applyPattern( QBrush &brush, const QString &imageFilePath, double width, double height, double opacity,
1167 const QgsSymbolRenderContext &context );
1168};
1169
1175{
1176 public:
1177
1181 QgsSVGFillSymbolLayer( const QString &svgFilePath, double width = 20, double rotation = 0.0 );
1182
1186 QgsSVGFillSymbolLayer( const QByteArray &svgData, double width = 20, double rotation = 0.0 );
1187
1189
1194 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1195
1200 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1201
1206 static void resolvePaths( QVariantMap &properties, const QgsPathResolver &pathResolver, bool saving );
1207
1208 // implemented from base classes
1209
1210 QString layerType() const override;
1211 void startRender( QgsSymbolRenderContext &context ) override;
1212 void stopRender( QgsSymbolRenderContext &context ) override;
1213 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1214 QVariantMap properties() const override;
1215 QgsSVGFillSymbolLayer *clone() const override SIP_FACTORY;
1216 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1217 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1218 bool usesMapUnits() const override;
1219 QgsSymbol *subSymbol() override;
1220 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1221 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1222 QColor dxfColor( QgsSymbolRenderContext &context ) const override;
1223 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1224 bool hasDataDefinedProperties() const override;
1225
1237 void setSvgFilePath( const QString &svgPath );
1238
1244 QString svgFilePath() const { return mSvgFilePath; }
1245
1255 void setPatternWidth( double width ) { mPatternWidth = width;}
1256
1266 double patternWidth() const { return mPatternWidth; }
1267
1277 void setSvgFillColor( const QColor &c ) { setColor( c ); }
1278
1287 QColor svgFillColor() const { return color(); }
1288
1298 void setSvgStrokeColor( const QColor &c ) { mSvgStrokeColor = c; }
1299
1308 QColor svgStrokeColor() const { return mSvgStrokeColor; }
1309
1320 void setSvgStrokeWidth( double w ) { mSvgStrokeWidth = w; }
1321
1332 double svgStrokeWidth() const { return mSvgStrokeWidth; }
1333
1341 void setPatternWidthUnit( Qgis::RenderUnit unit ) { mPatternWidthUnit = unit; }
1342
1350 Qgis::RenderUnit patternWidthUnit() const { return mPatternWidthUnit; }
1351
1359 void setPatternWidthMapUnitScale( const QgsMapUnitScale &scale ) { mPatternWidthMapUnitScale = scale; }
1360
1368 const QgsMapUnitScale &patternWidthMapUnitScale() const { return mPatternWidthMapUnitScale; }
1369
1377 void setSvgStrokeWidthUnit( Qgis::RenderUnit unit ) { mSvgStrokeWidthUnit = unit; }
1378
1386 Qgis::RenderUnit svgStrokeWidthUnit() const { return mSvgStrokeWidthUnit; }
1387
1395 void setSvgStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mSvgStrokeWidthMapUnitScale = scale; }
1396
1404 const QgsMapUnitScale &svgStrokeWidthMapUnitScale() const { return mSvgStrokeWidthMapUnitScale; }
1405
1406 void setOutputUnit( Qgis::RenderUnit unit ) override;
1407 Qgis::RenderUnit outputUnit() const override;
1408
1409 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1410 QgsMapUnitScale mapUnitScale() const override;
1411
1416 QMap<QString, QgsProperty> parameters() const { return mParameters; }
1417
1422 void setParameters( const QMap<QString, QgsProperty> &parameters );
1423
1424 protected:
1425
1426 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1427
1428 private:
1429
1431 double mPatternWidth = 20;
1433 QgsMapUnitScale mPatternWidthMapUnitScale;
1434 QMap<QString, QgsProperty> mParameters;
1435
1437 QByteArray mSvgData;
1439 QString mSvgFilePath;
1441 QRectF mSvgViewBox;
1442
1443 //param(fill), param(stroke), param(stroke-width) are going
1444 //to be replaced in memory
1445 QColor mSvgStrokeColor = QColor( 35, 35, 35 );
1446 double mSvgStrokeWidth = 0.2;
1447 Qgis::RenderUnit mSvgStrokeWidthUnit = Qgis::RenderUnit::Millimeters;
1448 QgsMapUnitScale mSvgStrokeWidthMapUnitScale;
1449
1451 std::unique_ptr< QgsLineSymbol > mStroke;
1452
1454 void storeViewBox();
1455 void setDefaultSvgParams(); //fills mSvgFillColor, mSvgStrokeColor, mSvgStrokeWidth with default values for mSvgFilePath
1456
1458 void applyPattern( QBrush &brush, const QString &svgFilePath, double patternWidth, Qgis::RenderUnit patternWidthUnit, const QColor &svgFillColor, const QColor &svgStrokeColor,
1459 double svgStrokeWidth, Qgis::RenderUnit svgStrokeWidthUnit, const QgsSymbolRenderContext &context, const QgsMapUnitScale &patternWidthMapUnitScale, const QgsMapUnitScale &svgStrokeWidthMapUnitScale,
1460 const QgsStringMap svgParameters );
1461};
1462
1469{
1470 public:
1473
1478 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1479
1484 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1485
1486 QString layerType() const override;
1487 void startRender( QgsSymbolRenderContext &context ) override;
1488 void stopRender( QgsSymbolRenderContext &context ) override;
1489 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1490 QVariantMap properties() const override;
1492 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1493 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1494 QImage toTiledPatternImage( ) const override;
1495 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1496
1497 QString ogrFeatureStyleWidth( double widthScaleFactor ) const;
1498
1506 void setLineAngle( double a ) { mLineAngle = a; }
1507
1515 double lineAngle() const { return mLineAngle; }
1516
1523 void setDistance( double d ) { mDistance = d; }
1524
1530 double distance() const { return mDistance; }
1531
1538 void setLineWidth( double w );
1539
1546 double lineWidth() const { return mLineWidth; }
1547
1548 void setColor( const QColor &c ) override;
1549 QColor color() const override;
1550
1562 void setOffset( double offset ) { mOffset = offset; }
1563
1575 double offset() const { return mOffset; }
1576
1583 void setDistanceUnit( Qgis::RenderUnit unit ) { mDistanceUnit = unit; }
1584
1591 Qgis::RenderUnit distanceUnit() const { return mDistanceUnit; }
1592
1600 void setDistanceMapUnitScale( const QgsMapUnitScale &scale ) { mDistanceMapUnitScale = scale; }
1601
1609 const QgsMapUnitScale &distanceMapUnitScale() const { return mDistanceMapUnitScale; }
1610
1616 void setLineWidthUnit( Qgis::RenderUnit unit ) { mLineWidthUnit = unit; }
1617
1623 Qgis::RenderUnit lineWidthUnit() const { return mLineWidthUnit; }
1624
1632 void setLineWidthMapUnitScale( const QgsMapUnitScale &scale ) { mLineWidthMapUnitScale = scale; }
1633
1641 const QgsMapUnitScale &lineWidthMapUnitScale() const { return mLineWidthMapUnitScale; }
1642
1648 void setOffsetUnit( Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
1649
1655 Qgis::RenderUnit offsetUnit() const { return mOffsetUnit; }
1656
1664 void setOffsetMapUnitScale( const QgsMapUnitScale &scale ) { mOffsetMapUnitScale = scale; }
1665
1673 const QgsMapUnitScale &offsetMapUnitScale() const { return mOffsetMapUnitScale; }
1674
1681 Qgis::LineClipMode clipMode() const { return mClipMode; }
1682
1689 void setClipMode( Qgis::LineClipMode mode ) { mClipMode = mode; }
1690
1691 void setOutputUnit( Qgis::RenderUnit unit ) override;
1692 Qgis::RenderUnit outputUnit() const override;
1693 bool usesMapUnits() const override;
1694 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1695 QgsMapUnitScale mapUnitScale() const override;
1696 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1697 QgsSymbol *subSymbol() override;
1698 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1699 bool hasDataDefinedProperties() const override;
1700 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1701 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1702
1703 protected:
1704
1705 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
1706
1707 private:
1709 double mDistance = 5.0;
1711 QgsMapUnitScale mDistanceMapUnitScale;
1713 double mLineWidth = 0;
1715 QgsMapUnitScale mLineWidthMapUnitScale;
1717 double mLineAngle = 45.0;
1719 double mOffset = 0.0;
1721 QgsMapUnitScale mOffsetMapUnitScale;
1722
1723 bool mRenderUsingLines = false;
1724
1725#ifdef SIP_RUN
1727#endif
1728
1730 bool applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double lineAngle, double distance );
1731
1733 std::unique_ptr< QgsLineSymbol > mFillLineSymbol;
1734 bool mFillLineSymbolRenderStarted = false;
1735
1737};
1738
1745{
1746 public:
1749
1755 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
1756 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
1757
1758 QString layerType() const override;
1759 void startRender( QgsSymbolRenderContext &context ) override;
1760 void stopRender( QgsSymbolRenderContext &context ) override;
1761 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1762 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
1763 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
1764 QVariantMap properties() const override;
1766 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
1767 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
1768 QImage toTiledPatternImage( ) const override;
1769 double estimateMaxBleed( const QgsRenderContext &context ) const override;
1770 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
1771 QgsSymbol *subSymbol() override;
1772 void setOutputUnit( Qgis::RenderUnit unit ) override;
1773 Qgis::RenderUnit outputUnit() const override;
1774 bool usesMapUnits() const override;
1775 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
1776 QgsMapUnitScale mapUnitScale() const override;
1777 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
1778 bool hasDataDefinedProperties() const override;
1779 void setColor( const QColor &c ) override;
1780 QColor color() const override;
1781
1791 double distanceX() const { return mDistanceX; }
1792
1802 void setDistanceX( double d ) { mDistanceX = d; }
1803
1811
1818
1826
1834
1844 double distanceY() const { return mDistanceY; }
1845
1855 void setDistanceY( double d ) { mDistanceY = d; }
1856
1864
1871
1879
1887
1897 double displacementX() const { return mDisplacementX; }
1898
1908 void setDisplacementX( double d ) { mDisplacementX = d; }
1909
1917
1924
1932
1940
1950 double displacementY() const { return mDisplacementY; }
1951
1961 void setDisplacementY( double d ) { mDisplacementY = d; }
1962
1970
1977
1985
1993
2001 void setOffsetX( double offset ) { mOffsetX = offset; }
2002
2009 double offsetX() const { return mOffsetX; }
2010
2018 void setOffsetY( double offset ) { mOffsetY = offset; }
2019
2026 double offsetY() const { return mOffsetY; }
2027
2036
2044
2053
2061
2070
2078
2087
2095
2102 Qgis::MarkerClipMode clipMode() const { return mClipMode; }
2103
2110 void setClipMode( Qgis::MarkerClipMode mode ) { mClipMode = mode; }
2111
2121 void setMaximumRandomDeviationX( double deviation ) { mRandomDeviationX = deviation; }
2122
2133
2143 void setMaximumRandomDeviationY( double deviation ) { mRandomDeviationY = deviation; }
2144
2155
2164
2173
2182
2192
2201
2210
2219
2228
2235 unsigned long seed() const { return mSeed; }
2236
2245 void setSeed( unsigned long seed ) { mSeed = seed; }
2246
2247 protected:
2248 std::unique_ptr< QgsMarkerSymbol > mMarkerSymbol;
2250 double mDistanceX = 15;
2253 double mDistanceY = 15;
2256 double mDisplacementX = 0;
2259 double mDisplacementY = 0;
2262 double mOffsetX = 0;
2265 double mOffsetY = 0;
2268
2275 unsigned long mSeed = 0;
2276
2277 void applyDataDefinedSettings( QgsSymbolRenderContext &context ) override;
2278
2279 private:
2280#ifdef SIP_RUN
2282#endif
2283
2284 bool applyPattern( const QgsSymbolRenderContext &context, QBrush &brush, double distanceX, double distanceY,
2285 double displacementX, double displacementY, double offsetX, double offsetY );
2286
2288
2289 bool mRenderUsingMarkers = false;
2290};
2291
2301{
2302 public:
2303
2311
2313
2319 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2320
2321 QString layerType() const override;
2322 void startRender( QgsSymbolRenderContext &context ) override;
2323 void stopRender( QgsSymbolRenderContext &context ) override;
2324 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2325 QVariantMap properties() const override;
2327 bool canCauseArtifactsBetweenAdjacentTiles() const override;
2328 bool rendersIdenticallyTo( const QgsSymbolLayer *other ) const override;
2329
2330 void setColor( const QColor &color ) override;
2331 QColor color() const override;
2332
2333 QgsSymbol *subSymbol() override;
2334 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) final;
2335
2336 void setOutputUnit( Qgis::RenderUnit unit ) override;
2337 Qgis::RenderUnit outputUnit() const override;
2338 bool usesMapUnits() const override;
2339
2340 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2341 QgsMapUnitScale mapUnitScale() const override;
2342
2343 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2344 bool hasDataDefinedProperties() const override;
2345
2351 int pointCount() const;
2352
2358 void setPointCount( int count );
2359
2365 unsigned long seed() const;
2366
2374 void setSeed( unsigned long seed );
2375
2381 bool clipPoints() const;
2382
2388 void setClipPoints( bool clipped );
2389
2395 Qgis::PointCountMethod countMethod() const;
2396
2402 void setCountMethod( Qgis::PointCountMethod method );
2403
2413 double densityArea() const;
2414
2420 void setDensityArea( double area );
2421
2427 void setDensityAreaUnit( Qgis::RenderUnit unit ) { mDensityAreaUnit = unit; }
2428
2433 Qgis::RenderUnit densityAreaUnit() const { return mDensityAreaUnit; }
2434
2442 void setDensityAreaUnitScale( const QgsMapUnitScale &scale ) { mDensityAreaUnitScale = scale; }
2443
2450 const QgsMapUnitScale &densityAreaUnitScale() const { return mDensityAreaUnitScale; }
2451
2452 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2453 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2454
2455 private:
2456#ifdef SIP_RUN
2458#endif
2459
2460 struct Part
2461 {
2462 QPolygonF exterior;
2463 QVector<QPolygonF> rings;
2464 };
2465
2466 QVector< Part > mCurrentParts;
2467
2468 void render( QgsRenderContext &context, const QVector< Part > &parts, const QgsFeature &feature, bool selected );
2469
2470 std::unique_ptr< QgsMarkerSymbol > mMarker;
2472 int mPointCount = 10;
2473 double mDensityArea = 250.0;
2475 QgsMapUnitScale mDensityAreaUnitScale;
2476 unsigned long mSeed = 0;
2477 bool mClipPoints = false;
2478
2479 bool mRenderingFeature = false;
2480 double mFeatureSymbolOpacity = 1;
2481};
2482
2483
2491{
2492 public:
2495
2496 // static stuff
2497
2503 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
2504 static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
2505
2506 // implemented from base classes
2507
2508 QString layerType() const override;
2509 void startRender( QgsSymbolRenderContext &context ) override;
2510 void stopRender( QgsSymbolRenderContext &context ) override;
2511 void renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, QgsSymbolRenderContext &context ) override;
2512 QVariantMap properties() const override;
2514 Q_DECL_DEPRECATED void toSld( QDomDocument &doc, QDomElement &element, const QVariantMap &props ) const override SIP_DEPRECATED;
2515 bool toSld( QDomDocument &doc, QDomElement &element, QgsSldExportContext &context ) const override;
2516 void setColor( const QColor &color ) override;
2517 QColor color() const override;
2518 QgsSymbol *subSymbol() override;
2519 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) final;
2520 void setOutputUnit( Qgis::RenderUnit unit ) override;
2521 Qgis::RenderUnit outputUnit() const override;
2522 bool usesMapUnits() const override;
2523 void setMapUnitScale( const QgsMapUnitScale &scale ) override;
2524 QgsMapUnitScale mapUnitScale() const override;
2525 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
2526 bool hasDataDefinedProperties() const override;
2527 bool canCauseArtifactsBetweenAdjacentTiles() const override;
2528
2530 bool pointOnSurface() const { return mPointOnSurface; }
2531
2537
2542 bool pointOnAllParts() const { return mPointOnAllParts; }
2543
2550 bool clipPoints() const { return mClipPoints; }
2551
2559
2567
2575
2576 void startFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2577 void stopFeatureRender( const QgsFeature &feature, QgsRenderContext &context ) override;
2578
2579 protected:
2580
2581 std::unique_ptr< QgsMarkerSymbol > mMarker;
2582 bool mPointOnSurface = false;
2583 bool mPointOnAllParts = true;
2584 bool mClipPoints = false;
2586
2587 bool mRenderingFeature = false;
2589 bool mUseSelectedColor = false;
2590
2591 private:
2592#ifdef SIP_RUN
2594#endif
2595 struct Part
2596 {
2597 QPolygonF exterior;
2598 QVector<QPolygonF> rings;
2599 };
2600
2601 void render( QgsRenderContext &context, const QVector<Part> &parts, const QgsFeature &feature, bool selected );
2602 QVector<Part> mCurrentParts;
2603};
2604
2605#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
MarkerClipMode
Marker clipping modes.
Definition qgis.h:3249
@ Shape
Clip to polygon shape.
Definition qgis.h:3251
LineClipMode
Line clipping modes.
Definition qgis.h:3263
@ ClipPainterOnly
Applying clipping on the painter only (i.e. line endpoints will coincide with polygon bounding box,...
Definition qgis.h:3264
GradientColorSource
Gradient color sources.
Definition qgis.h:3178
@ SimpleTwoColor
Simple two color gradient.
Definition qgis.h:3179
GradientSpread
Gradient spread options, which control how gradients are rendered outside of their start and end poin...
Definition qgis.h:3222
@ Pad
Pad out gradient using colors at endpoint of gradient.
Definition qgis.h:3223
PointCountMethod
Methods which define the number of points randomly filling a polygon.
Definition qgis.h:3237
@ Absolute
The point count is used as an absolute count of markers.
Definition qgis.h:3238
QFlags< SymbolLayerFlag > SymbolLayerFlags
Symbol layer flags.
Definition qgis.h:887
RenderUnit
Rendering size units.
Definition qgis.h:5183
@ Millimeters
Millimeters.
Definition qgis.h:5184
@ Pixels
Pixels.
Definition qgis.h:5186
GradientType
Gradient types.
Definition qgis.h:3192
@ Linear
Linear gradient.
Definition qgis.h:3193
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition qgis.h:3207
@ Feature
Relative to feature/shape being rendered.
Definition qgis.h:3208
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.
Exports QGIS layers to the DXF format.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:58
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 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:231
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:7132
#define SIP_DEPRECATED
Definition qgis_sip.h:114
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_ABSTRACT
Definition qgis_sip.h:221
#define SIP_FACTORY
Definition qgis_sip.h:84
#define DEFAULT_SIMPLEFILL_JOINSTYLE
#define DEFAULT_SIMPLEFILL_COLOR
#define DEFAULT_SIMPLEFILL_STYLE
#define DEFAULT_SIMPLEFILL_BORDERSTYLE
#define DEFAULT_SIMPLEFILL_BORDERCOLOR
#define DEFAULT_SIMPLEFILL_BORDERWIDTH