QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgssymbollayerutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssymbollayerutils.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 
17 #ifndef QGSSYMBOLLAYERUTILS_H
18 #define QGSSYMBOLLAYERUTILS_H
19 
20 #include "qgis_core.h"
21 #include "qgis_sip.h"
22 #include <QMap>
23 #include <QFont>
24 #include <QColor>
25 #include <QPainter>
26 #include "qgis.h"
27 #include "qgsmapunitscale.h"
28 #include "qgscolorramp.h"
29 #include "qgsarrowsymbollayer.h"
30 #include "qgssymbol.h"
31 
32 #include <QFile>
33 
34 class QgsExpression;
35 class QgsPathResolver;
38 
39 typedef QMap<QString, QString> QgsStringMap;
40 typedef QMap<QString, QgsSymbol * > QgsSymbolMap;
41 typedef QList< QPair< QColor, QString > > QgsNamedColorList SIP_SKIP;
42 
43 class QDomDocument;
44 class QDomElement;
45 class QIcon;
46 class QPixmap;
47 class QPointF;
48 class QSize;
49 class QMimeData;
50 class QgsFeatureRenderer;
51 class QgsSymbolLayerId;
52 
57 class CORE_EXPORT QgsSymbolLayerUtils
58 {
59  public:
60 
61  static QString encodeColor( const QColor &color );
62  static QColor decodeColor( const QString &str );
63 
64  static QString encodeSldAlpha( int alpha );
65  static int decodeSldAlpha( const QString &str );
66 
67  static QString encodeSldFontStyle( QFont::Style style );
68  static QFont::Style decodeSldFontStyle( const QString &str );
69 
70  static QString encodeSldFontWeight( int weight );
71  static int decodeSldFontWeight( const QString &str );
72 
73  static QString encodePenStyle( Qt::PenStyle style );
74  static Qt::PenStyle decodePenStyle( const QString &str );
75 
76  static QString encodePenJoinStyle( Qt::PenJoinStyle style );
77  static Qt::PenJoinStyle decodePenJoinStyle( const QString &str );
78 
79  static QString encodePenCapStyle( Qt::PenCapStyle style );
80  static Qt::PenCapStyle decodePenCapStyle( const QString &str );
81 
82  static QString encodeSldLineJoinStyle( Qt::PenJoinStyle style );
83  static Qt::PenJoinStyle decodeSldLineJoinStyle( const QString &str );
84 
85  static QString encodeSldLineCapStyle( Qt::PenCapStyle style );
86  static Qt::PenCapStyle decodeSldLineCapStyle( const QString &str );
87 
88  static QString encodeBrushStyle( Qt::BrushStyle style );
89  static Qt::BrushStyle decodeBrushStyle( const QString &str );
90 
91  static QString encodeSldBrushStyle( Qt::BrushStyle style );
92  static Qt::BrushStyle decodeSldBrushStyle( const QString &str );
93 
104  static Qgis::SymbolCoordinateReference decodeCoordinateReference( const QString &string, bool *ok SIP_OUT = nullptr );
105 
113  static QString encodeCoordinateReference( Qgis::SymbolCoordinateReference coordinateReference );
114 
119  static QgsArrowSymbolLayer::HeadType decodeArrowHeadType( const QVariant &value, bool *ok SIP_OUT = nullptr );
120 
125  static QgsArrowSymbolLayer::ArrowType decodeArrowType( const QVariant &value, bool *ok SIP_OUT = nullptr );
126 
137  static Qgis::MarkerClipMode decodeMarkerClipMode( const QString &string, bool *ok SIP_OUT = nullptr );
138 
145  static QString encodeMarkerClipMode( Qgis::MarkerClipMode mode );
146 
157  static Qgis::LineClipMode decodeLineClipMode( const QString &string, bool *ok SIP_OUT = nullptr );
158 
165  static QString encodeLineClipMode( Qgis::LineClipMode mode );
166 
172  static QString encodePoint( QPointF point );
173 
179  static QPointF decodePoint( const QString &string );
180 
193  static QPointF toPoint( const QVariant &value, bool *ok SIP_OUT = nullptr );
194 
201  static QString encodeSize( QSizeF size );
202 
209  static QSizeF decodeSize( const QString &string );
210 
223  static QSizeF toSize( const QVariant &value, bool *ok SIP_OUT = nullptr );
224 
225  static QString encodeMapUnitScale( const QgsMapUnitScale &mapUnitScale );
226  static QgsMapUnitScale decodeMapUnitScale( const QString &str );
227 
228  static QString encodeRealVector( const QVector<qreal> &v );
229  static QVector<qreal> decodeRealVector( const QString &s );
230 
231  static QString encodeSldRealVector( const QVector<qreal> &v );
232  static QVector<qreal> decodeSldRealVector( const QString &s );
233 
241  static QString encodeSldUom( QgsUnitTypes::RenderUnit unit, double *scaleFactor );
242 
250  static QgsUnitTypes::RenderUnit decodeSldUom( const QString &str, double *scaleFactor = nullptr );
251 
259  static double sizeInPixelsFromSldUom( const QString &uom, double size );
260 
266  static QString encodeScaleMethod( Qgis::ScaleMethod scaleMethod );
267 
273  static Qgis::ScaleMethod decodeScaleMethod( const QString &str );
274 
275  static QPainter::CompositionMode decodeBlendMode( const QString &s );
276 
285  static QIcon symbolPreviewIcon( const QgsSymbol *symbol, QSize size, int padding = 0, QgsLegendPatchShape *shape = nullptr );
286 
302  static QPixmap symbolPreviewPixmap( const QgsSymbol *symbol, QSize size, int padding = 0, QgsRenderContext *customContext = nullptr, bool selected = false,
303  const QgsExpressionContext *expressionContext = nullptr,
304  const QgsLegendPatchShape *shape = nullptr );
305 
317  static QPicture symbolLayerPreviewPicture( const QgsSymbolLayer *layer, QgsUnitTypes::RenderUnit units, QSize size, const QgsMapUnitScale &scale = QgsMapUnitScale(), Qgis::SymbolType parentSymbolType = Qgis::SymbolType::Hybrid );
318 
329  static QIcon symbolLayerPreviewIcon( const QgsSymbolLayer *layer, QgsUnitTypes::RenderUnit u, QSize size, const QgsMapUnitScale &scale = QgsMapUnitScale(), Qgis::SymbolType parentSymbolType = Qgis::SymbolType::Hybrid );
330 
338  static QIcon colorRampPreviewIcon( QgsColorRamp *ramp, QSize size, int padding = 0 );
339 
352  static QPixmap colorRampPreviewPixmap( QgsColorRamp *ramp, QSize size, int padding = 0, Qt::Orientation direction = Qt::Horizontal,
353  bool flipDirection = false, bool drawTransparentBackground = true );
354 
355  static void drawStippledBackground( QPainter *painter, QRect rect );
356 
361  static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int markerSize );
362 
364  static double estimateMaxSymbolBleed( QgsSymbol *symbol, const QgsRenderContext &context );
365 
372  static QgsSymbol *loadSymbol( const QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
373 
382  template <class SymbolType> static SymbolType *loadSymbol( const QDomElement &element, const QgsReadWriteContext &context ) SIP_SKIP
383  {
384  QgsSymbol *tmpSymbol = QgsSymbolLayerUtils::loadSymbol( element, context );
385  SymbolType *symbolCastToType = dynamic_cast<SymbolType *>( tmpSymbol );
386 
387  if ( symbolCastToType )
388  {
389  return symbolCastToType;
390  }
391  else
392  {
393  //could not cast
394  delete tmpSymbol;
395  return nullptr;
396  }
397  }
398 
400  static QgsSymbolLayer *loadSymbolLayer( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
402  static QDomElement saveSymbol( const QString &symbolName, const QgsSymbol *symbol, QDomDocument &doc, const QgsReadWriteContext &context );
403 
409  static QString symbolProperties( QgsSymbol *symbol );
410 
414  static bool createSymbolLayerListFromSld( QDomElement &element, QgsWkbTypes::GeometryType geomType, QList<QgsSymbolLayer *> &layers );
415 
416  static QgsSymbolLayer *createFillLayerFromSld( QDomElement &element ) SIP_FACTORY;
417  static QgsSymbolLayer *createLineLayerFromSld( QDomElement &element ) SIP_FACTORY;
418  static QgsSymbolLayer *createMarkerLayerFromSld( QDomElement &element ) SIP_FACTORY;
419 
423  static bool convertPolygonSymbolizerToPointMarker( QDomElement &element, QList<QgsSymbolLayer *> &layerList );
424  static bool hasExternalGraphic( QDomElement &element );
425  static bool hasWellKnownMark( QDomElement &element );
426 
427  static bool needFontMarker( QDomElement &element );
428  static bool needSvgMarker( QDomElement &element );
429  static bool needEllipseMarker( QDomElement &element );
430  static bool needMarkerLine( QDomElement &element );
431  static bool needLinePatternFill( QDomElement &element );
432  static bool needPointPatternFill( QDomElement &element );
433  static bool needSvgFill( QDomElement &element );
434 
435  static void fillToSld( QDomDocument &doc, QDomElement &element,
436  Qt::BrushStyle brushStyle, const QColor &color = QColor() );
437  static bool fillFromSld( QDomElement &element,
438  Qt::BrushStyle &brushStyle, QColor &color );
439 
441  static void lineToSld( QDomDocument &doc, QDomElement &element,
442  Qt::PenStyle penStyle, const QColor &color, double width = -1,
443  const Qt::PenJoinStyle *penJoinStyle = nullptr, const Qt::PenCapStyle *penCapStyle = nullptr,
444  const QVector<qreal> *customDashPattern = nullptr, double dashOffset = 0.0 ) SIP_SKIP;
445  static bool lineFromSld( QDomElement &element,
446  Qt::PenStyle &penStyle, QColor &color, double &width,
447  Qt::PenJoinStyle *penJoinStyle = nullptr, Qt::PenCapStyle *penCapStyle = nullptr,
448  QVector<qreal> *customDashPattern = nullptr, double *dashOffset = nullptr );
449 
450  static void externalGraphicToSld( QDomDocument &doc, QDomElement &element,
451  const QString &path, const QString &mime,
452  const QColor &color, double size = -1 );
453  static bool externalGraphicFromSld( QDomElement &element,
454  QString &path, QString &mime,
455  QColor &color, double &size );
456 
457  static void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
458  const QString &name, const QColor &color, const QColor &strokeColor, Qt::PenStyle strokeStyle,
459  double strokeWidth = -1, double size = -1 );
460 
462  static bool wellKnownMarkerFromSld( QDomElement &element,
463  QString &name, QColor &color, QColor &strokeColor, Qt::PenStyle &strokeStyle,
464  double &strokeWidth, double &size ) SIP_PYNAME( wellKnownMarkerFromSld2 );
465 
466  static void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
467  const QString &path, const QString &format, int *markIndex = nullptr,
468  const QColor &color = QColor(), double size = -1 );
469  static bool externalMarkerFromSld( QDomElement &element,
470  QString &path, QString &format, int &markIndex,
471  QColor &color, double &size );
472 
473 
474  static void labelTextToSld( QDomDocument &doc, QDomElement &element, const QString &label,
475  const QFont &font, const QColor &color = QColor(), double size = -1 );
476 
478  static QString ogrFeatureStylePen( double width, double mmScaleFactor, double mapUnitsScaleFactor, const QColor &c,
479  Qt::PenJoinStyle joinStyle = Qt::MiterJoin,
480  Qt::PenCapStyle capStyle = Qt::FlatCap,
481  double offset = 0.0,
482  const QVector<qreal> *dashPattern = nullptr );
483 
488  static QString ogrFeatureStyleBrush( const QColor &fillColr );
489 
490  static void createRotationElement( QDomDocument &doc, QDomElement &element, const QString &rotationFunc );
491  static bool rotationFromSldElement( QDomElement &element, QString &rotationFunc );
492 
493  static void createOpacityElement( QDomDocument &doc, QDomElement &element, const QString &alphaFunc );
494  static bool opacityFromSldElement( QDomElement &element, QString &alphaFunc );
495 
496  static void createDisplacementElement( QDomDocument &doc, QDomElement &element, QPointF offset );
497  static bool displacementFromSldElement( QDomElement &element, QPointF &offset );
498 
505  static void createAnchorPointElement( QDomDocument &doc, QDomElement &element, QPointF anchor );
506 
507  static void createOnlineResourceElement( QDomDocument &doc, QDomElement &element, const QString &path, const QString &format );
508  static bool onlineResourceFromSldElement( QDomElement &element, QString &path, QString &format );
509 
510  static void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString &geomFunc );
511  static bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
512 
519  static bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString &function );
520  static bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString &function );
521  static bool functionFromSldElement( QDomElement &element, QString &function );
522 
523  static QDomElement createSvgParameterElement( QDomDocument &doc, const QString &name, const QString &value );
524  static QgsStringMap getSvgParameterList( QDomElement &element );
525 
526  static QDomElement createVendorOptionElement( QDomDocument &doc, const QString &name, const QString &value );
527  static QgsStringMap getVendorOptionList( QDomElement &element );
528 
530  static QVariantMap parseProperties( const QDomElement &element );
532  static void saveProperties( QVariantMap props, QDomDocument &doc, QDomElement &element );
533 
535  static QgsSymbolMap loadSymbols( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
537  static QDomElement saveSymbols( QgsSymbolMap &symbols, const QString &tagName, QDomDocument &doc, const QgsReadWriteContext &context );
538 
539  static void clearSymbolMap( QgsSymbolMap &symbols );
540 
548  static QMimeData *symbolToMimeData( const QgsSymbol *symbol ) SIP_FACTORY;
549 
556  static QgsSymbol *symbolFromMimeData( const QMimeData *data ) SIP_FACTORY;
557 
564  static QgsColorRamp *loadColorRamp( QDomElement &element ) SIP_FACTORY;
565 
574  static QDomElement saveColorRamp( const QString &name, QgsColorRamp *ramp, QDomDocument &doc );
575 
582  static QVariant colorRampToVariant( const QString &name, QgsColorRamp *ramp );
583 
590  static QgsColorRamp *loadColorRamp( const QVariant &value ) SIP_FACTORY;
591 
598  static QString colorToName( const QColor &color );
599 
607  static QList< QColor > parseColorList( const QString &colorStr );
608 
616  static QMimeData *colorToMimeData( const QColor &color ) SIP_FACTORY;
617 
626  static QColor colorFromMimeData( const QMimeData *data, bool &hasAlpha SIP_OUT );
627 
634  static QgsNamedColorList colorListFromMimeData( const QMimeData *data );
635 
643  static QMimeData *colorListToMimeData( const QgsNamedColorList &colorList, bool allFormats = true ) SIP_FACTORY;
644 
653  static bool saveColorsToGpl( QFile &file, const QString &paletteName, const QgsNamedColorList &colors );
654 
663  static QgsNamedColorList importColorsFromGpl( QFile &file, bool &ok, QString &name );
664 
673  static QColor parseColor( const QString &colorStr, bool strictEval = false );
674 
684  static QColor parseColorWithAlpha( const QString &colorStr, bool &containsAlpha, bool strictEval = false );
685 
689  static void multiplyImageOpacity( QImage *image, qreal opacity );
690 
692  static void blurImageInPlace( QImage &image, QRect rect, int radius, bool alphaOnly );
693 
698  static void premultiplyColor( QColor &rgb, int alpha );
699 
712  static bool condenseFillAndOutline( QgsFillSymbolLayer *fill, QgsLineSymbolLayer *outline );
713 
715  static void sortVariantList( QList<QVariant> &list, Qt::SortOrder order );
717  static QPointF pointOnLineWithDistance( QPointF startPoint, QPointF directionPoint, double distance );
718 
720  static QStringList listSvgFiles();
721 
723  static QStringList listSvgFilesAt( const QString &directory );
724 
731  static QString svgSymbolNameToPath( const QString &name, const QgsPathResolver &pathResolver );
732 
737  static QString svgSymbolPathToName( const QString &path, const QgsPathResolver &pathResolver );
738 
740  static QPointF polygonCentroid( const QPolygonF &points );
741 
743  static QPointF polygonPointOnSurface( const QPolygonF &points, const QVector<QPolygonF> *rings = nullptr );
744 
746  static bool pointInPolygon( const QPolygonF &points, QPointF point );
747 
753  static double polylineLength( const QPolygonF &polyline );
754 
767  static QPolygonF polylineSubstring( const QPolygonF &polyline, double startOffset, double endOffset );
768 
776  static bool isSharpCorner( QPointF p1, QPointF p2, QPointF p3 );
777 
785  static void appendPolyline( QPolygonF &target, const QPolygonF &line );
786 
794  static QgsExpression *fieldOrExpressionToExpression( const QString &fieldOrExpression ) SIP_FACTORY;
795 
803  static QString fieldOrExpressionFromExpression( QgsExpression *expression );
804 
811  static QList<double> prettyBreaks( double minimum, double maximum, int classes );
812 
818  static double rescaleUom( double size, QgsUnitTypes::RenderUnit unit, const QVariantMap &props );
819 
825  static QPointF rescaleUom( QPointF point, QgsUnitTypes::RenderUnit unit, const QVariantMap &props ) SIP_PYNAME( rescalePointUom );
826 
832  static QVector<qreal> rescaleUom( const QVector<qreal> &array, QgsUnitTypes::RenderUnit unit, const QVariantMap &props ) SIP_PYNAME( rescaleArrayUom );
833 
838  static void applyScaleDependency( QDomDocument &doc, QDomElement &ruleElem, QVariantMap &props );
839 
844  static void mergeScaleDependencies( double mScaleMinDenom, double mScaleMaxDenom, QVariantMap &props );
845 
852  static void parametricSvgToSld( QDomDocument &doc, QDomElement &graphicElem,
853  const QString &path,
854  const QColor &fillColor, double size, const QColor &strokeColor, double strokeWidth );
855 
860  static QString getSvgParametricPath( const QString &basePath, const QColor &fillColor, const QColor &strokeColor, double strokeWidth );
861 
866  static QSet<const QgsSymbolLayer *> toSymbolLayerPointers( QgsFeatureRenderer *renderer, const QSet<QgsSymbolLayerId> &symbolLayerIds );
867 
875  static double rendererFrameRate( const QgsFeatureRenderer *renderer );
876 
887  static QgsSymbol *restrictedSizeSymbol( const QgsSymbol *s, double minSize, double maxSize, QgsRenderContext *context, double &width, double &height );
888 
893  static QgsStringMap evaluatePropertiesMap( const QMap<QString, QgsProperty> &propertiesMap, const QgsExpressionContext &context );
894 
896 #ifndef SIP_RUN
897  static QgsProperty rotateWholeSymbol( double additionalRotation, const QgsProperty &property )
898  {
899  const QString exprString = property.asExpression();
900  return QgsProperty::fromExpression( QString::number( additionalRotation ) + " + (" + exprString + ')' );
901  }
902 
903  static QgsProperty scaleWholeSymbol( double scaleFactor, const QgsProperty &property )
904  {
905  const QString exprString = property.asExpression();
906  return QgsProperty::fromExpression( QString::number( scaleFactor ) + "*(" + exprString + ')' );
907  }
908 
909  static QgsProperty scaleWholeSymbol( double scaleFactorX, double scaleFactorY, const QgsProperty &property )
910  {
911  const QString exprString = property.asExpression();
913  ( !qgsDoubleNear( scaleFactorX, 0.0 ) ? "tostring(" + QString::number( scaleFactorX ) + "*(" + exprString + "))" : QStringLiteral( "'0'" ) ) +
914  "|| ',' || " +
915  ( !qgsDoubleNear( scaleFactorY, 0.0 ) ? "tostring(" + QString::number( scaleFactorY ) + "*(" + exprString + "))" : QStringLiteral( "'0'" ) ) );
916  }
917 #endif
918 
920 };
921 
922 class QPolygonF;
923 
925 QList<QPolygonF> offsetLine( QPolygonF polyline, double dist, QgsWkbTypes::GeometryType geometryType ) SIP_SKIP;
926 
927 #endif
928 
929 
QgsLineSymbolLayer
Definition: qgssymbollayer.h:1024
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition: qgsexpressioncontext.h:406
QgsArrowSymbolLayer::ArrowType
ArrowType
Possible arrow types.
Definition: qgsarrowsymbollayer.h:133
SIP_PYNAME
#define SIP_PYNAME(name)
Definition: qgis_sip.h:81
QgsColorRamp
Abstract base class for color ramps.
Definition: qgscolorramp.h:29
QgsProperty
A store for object properties.
Definition: qgsproperty.h:230
QgsUnitTypes::RenderUnit
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:167
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:34
Qgis::LineClipMode
LineClipMode
Line clipping modes.
Definition: qgis.h:1518
SIP_OUT
#define SIP_OUT
Definition: qgis_sip.h:58
QgsSymbolMap
QMap< QString, QgsSymbol * > QgsSymbolMap
Definition: qgsrenderer.h:45
Qgis::MarkerClipMode
MarkerClipMode
Marker clipping modes.
Definition: qgis.h:1504
QgsNamedColorList
QList< QPair< QColor, QString > > QgsNamedColorList
List of colors paired with a friendly display name identifying the color.
Definition: qgscolorscheme.h:34
QgsProperty::asExpression
QString asExpression() const
Returns an expression string representing the state of the property, or an empty string if the proper...
Definition: qgsproperty.cpp:398
qgis.h
QgsRenderContext
Contains information about the context of a rendering operation.
Definition: qgsrendercontext.h:59
QgsSymbol
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:92
QgsProperty::fromExpression
static QgsProperty fromExpression(const QString &expression, bool isActive=true)
Returns a new ExpressionBasedProperty created from the specified expression.
Definition: qgsproperty.cpp:237
QgsLegendPatchShape
Represents a patch shape for use in map legends.
Definition: qgslegendpatchshape.h:33
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
Qgis::ScaleMethod
ScaleMethod
Scale methods.
Definition: qgis.h:219
QgsSymbolLayer
Definition: qgssymbollayer.h:54
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsArrowSymbolLayer::HeadType
HeadType
Possible head types.
Definition: qgsarrowsymbollayer.h:120
Qgis::SymbolType
SymbolType
Symbol types.
Definition: qgis.h:205
qgsarrowsymbollayer.h
Qgis::VertexMarkerType
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition: qgis.h:806
qgscolorramp.h
qgsDoubleNear
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:2265
qgis_sip.h
QgsSymbolLayerUtils::loadSymbol
static SymbolType * loadSymbol(const QDomElement &element, const QgsReadWriteContext &context)
Attempts to load a symbol from a DOM element and cast it to a particular symbol type.
Definition: qgssymbollayerutils.h:382
QgsUnitTypes
Helper functions for various unit types.
Definition: qgsunittypes.h:38
QgsSymbolLayerUtils::loadSymbol
static QgsSymbol * loadSymbol(const QDomElement &element, const QgsReadWriteContext &context)
Attempts to load a symbol from a DOM element.
Definition: qgssymbollayerutils.cpp:1214
QgsMapUnitScale
Struct for storing maximum and minimum scales for measurements in map units.
Definition: qgsmapunitscale.h:36
Qgis::SymbolType::Hybrid
@ Hybrid
Hybrid symbol.
QgsStringMap
QMap< QString, QString > QgsStringMap
Definition: qgis.h:2781
QgsFeatureRenderer
Definition: qgsrenderer.h:101
QgsWkbTypes::GeometryType
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:140
c
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
Definition: porting_processing.dox:1
str
#define str(x)
Definition: qgis.cpp:37
QgsFillSymbolLayer
Definition: qgssymbollayer.h:1222
offsetLine
QList< QPolygonF > offsetLine(QPolygonF polyline, double dist, QgsWkbTypes::GeometryType geometryType)
calculate geometry shifted by a specified distance
Definition: qgssymbollayerutils.cpp:1139
qgsmapunitscale.h
QgsSymbolLayerId
We may need stable references to symbol layers, when pointers to symbol layers is not usable (when a ...
Definition: qgssymbollayerreference.h:53
QgsSymbolLayerUtils
Definition: qgssymbollayerutils.h:57
Qgis::SymbolCoordinateReference
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition: qgis.h:1462
QgsExpression
Class for parsing and evaluation of expressions (formerly called "search strings")....
Definition: qgsexpression.h:102
QgsStringMap
QMap< QString, QString > QgsStringMap
Definition: qgssymbollayerutils.h:37
qgssymbol.h
QgsPathResolver
Resolves relative paths into absolute paths and vice versa. Used for writing.
Definition: qgspathresolver.h:31
QgsSymbolMap
QMap< QString, QgsSymbol * > QgsSymbolMap
Definition: qgssymbollayerutils.h:40