64    static QString encodeColor( 
const QColor &color );
 
   65    static QColor decodeColor( 
const QString &str );
 
   67    static QString encodeSldAlpha( 
int alpha );
 
   68    static int decodeSldAlpha( 
const QString &str );
 
   70    static QString encodeSldFontStyle( QFont::Style style );
 
   71    static QFont::Style decodeSldFontStyle( 
const QString &str );
 
   73    static QString encodeSldFontWeight( 
int weight );
 
   74    static int decodeSldFontWeight( 
const QString &str );
 
   76    static QString encodePenStyle( Qt::PenStyle style );
 
   77    static Qt::PenStyle decodePenStyle( 
const QString &str );
 
   79    static QString encodePenJoinStyle( Qt::PenJoinStyle style );
 
   80    static Qt::PenJoinStyle decodePenJoinStyle( 
const QString &str );
 
   82    static QString encodePenCapStyle( Qt::PenCapStyle style );
 
   83    static Qt::PenCapStyle decodePenCapStyle( 
const QString &str );
 
   85    static QString encodeSldLineJoinStyle( Qt::PenJoinStyle style );
 
   86    static Qt::PenJoinStyle decodeSldLineJoinStyle( 
const QString &str );
 
   88    static QString encodeSldLineCapStyle( Qt::PenCapStyle style );
 
   89    static Qt::PenCapStyle decodeSldLineCapStyle( 
const QString &str );
 
   91    static QString encodeBrushStyle( Qt::BrushStyle style );
 
   92    static Qt::BrushStyle decodeBrushStyle( 
const QString &str );
 
   94    static QString encodeSldBrushStyle( Qt::BrushStyle style );
 
   95    static Qt::BrushStyle decodeSldBrushStyle( 
const QString &str );
 
  109    static Qgis::JoinStyle penJoinStyleToJoinStyle( Qt::PenJoinStyle style );
 
  116    static bool hasSldSymbolizer( 
const QDomElement &element );
 
  196    static QString encodePoint( QPointF point );
 
  203    static QPointF decodePoint( 
const QString &
string );
 
  217    static QPointF toPoint( 
const QVariant &value, 
bool *ok 
SIP_OUT = 
nullptr );
 
  224    static QString encodeSize( QSizeF size );
 
  231    static QSizeF decodeSize( 
const QString &
string );
 
  245    static QSizeF toSize( 
const QVariant &value, 
bool *ok 
SIP_OUT = 
nullptr );
 
  247    static QString encodeMapUnitScale( 
const QgsMapUnitScale &mapUnitScale );
 
  250    static QString encodeRealVector( 
const QVector<qreal> &v );
 
  251    static QVector<qreal> decodeRealVector( 
const QString &s );
 
  253    static QString encodeSldRealVector( 
const QVector<qreal> &v );
 
  254    static QVector<qreal> decodeSldRealVector( 
const QString &s );
 
  272    static Qgis::RenderUnit decodeSldUom( 
const QString &str, 
double *scaleFactor = 
nullptr );
 
  280    static double sizeInPixelsFromSldUom( 
const QString &uom, 
double size );
 
  296    static QPainter::CompositionMode decodeBlendMode( 
const QString &s );
 
  321    static QPixmap symbolPreviewPixmap( 
const QgsSymbol *symbol, QSize size, 
int padding = 0, 
QgsRenderContext *customContext = 
nullptr, 
bool selected = 
false,
 
  359    static QIcon colorRampPreviewIcon( 
QgsColorRamp *ramp, QSize size, 
int padding = 0 );
 
  373    static QPixmap colorRampPreviewPixmap( 
QgsColorRamp *ramp, QSize size, 
int padding = 0, Qt::Orientation direction = Qt::Horizontal,
 
  374                                           bool flipDirection = 
false, 
bool drawTransparentBackground = 
true );
 
  376    static void drawStippledBackground( QPainter *painter, QRect rect );
 
  382    static void drawVertexMarker( 
double x, 
double y, QPainter &p, 
Qgis::VertexMarkerType type, 
int markerSize );
 
  393    static std::unique_ptr< QgsSymbol > loadSymbol( 
const QDomElement &element, 
const QgsReadWriteContext &context );
 
  406      const bool canCast = 
dynamic_cast<SymbolType *
>( tmpSymbol.get() );
 
  410        std::unique_ptr< SymbolType > castRes( 
static_cast<SymbolType *
>( tmpSymbol.release() ) );
 
 
  421    static std::unique_ptr< QgsSymbolLayer > loadSymbolLayer( QDomElement &element, 
const QgsReadWriteContext &context );
 
  424    static QDomElement saveSymbol( 
const QString &symbolName, 
const QgsSymbol *symbol, QDomDocument &doc, 
const QgsReadWriteContext &context );
 
  430    static QString symbolProperties( 
QgsSymbol *symbol );
 
  435    static bool createSymbolLayerListFromSld( QDomElement &element, 
Qgis::GeometryType geomType, QList<QgsSymbolLayer *> &layers );
 
  440    static std::unique_ptr< QgsSymbolLayer > createFillLayerFromSld( QDomElement &element );
 
  445    static std::unique_ptr< QgsSymbolLayer > createLineLayerFromSld( QDomElement &element );
 
  450    static std::unique_ptr< QgsSymbolLayer > createMarkerLayerFromSld( QDomElement &element );
 
  455    static bool convertPolygonSymbolizerToPointMarker( QDomElement &element, QList<QgsSymbolLayer *> &layerList );
 
  462    static bool hasExternalGraphic( QDomElement &element );
 
  470    static bool hasExternalGraphicV2( 
const QDomElement &element, 
const QString format = QString() );
 
  472    static bool hasWellKnownMark( QDomElement &element );
 
  474    static bool needFontMarker( QDomElement &element );
 
  481    static bool needSvgMarker( 
const QDomElement &element );
 
  491    static bool needRasterMarker( 
const QDomElement &element );
 
  492    static bool needEllipseMarker( QDomElement &element );
 
  493    static bool needMarkerLine( QDomElement &element );
 
  494    static bool needLinePatternFill( QDomElement &element );
 
  495    static bool needPointPatternFill( QDomElement &element );
 
  496    static bool needSvgFill( QDomElement &element );
 
  504    static bool needRasterImageFill( QDomElement &element );
 
  511    Q_DECL_DEPRECATED 
static void fillToSld( QDomDocument &doc, QDomElement &element,
 
  512        Qt::BrushStyle brushStyle, 
const QColor &color = QColor() ) 
SIP_DEPRECATED;
 
  519    static 
void fillToSld( QDomDocument &doc, QDomElement &element, 
QgsSldExportContext &context,
 
  520                           Qt::BrushStyle brushStyle, const QColor &color = QColor() );
 
  522    static 
bool fillFromSld( QDomElement &element,
 
  523                             Qt::BrushStyle &brushStyle, QColor &color );
 
  526    static 
void lineToSld( QDomDocument &doc, QDomElement &element,
 
  527                           Qt::PenStyle penStyle, const QColor &color, 
QgsSldExportContext &context, 
double width = -1,
 
  528                           const Qt::PenJoinStyle *penJoinStyle = 
nullptr, const Qt::PenCapStyle *penCapStyle = 
nullptr,
 
  529                           const QVector<qreal> *customDashPattern = 
nullptr, 
double dashOffset = 0.0 ) 
SIP_SKIP;
 
  530    static 
bool lineFromSld( QDomElement &element,
 
  531                             Qt::PenStyle &penStyle, QColor &color, 
double &width,
 
  532                             Qt::PenJoinStyle *penJoinStyle = 
nullptr, Qt::PenCapStyle *penCapStyle = 
nullptr,
 
  533                             QVector<qreal> *customDashPattern = 
nullptr, 
double *dashOffset = 
nullptr );
 
  535    static 
void externalGraphicToSld( QDomDocument &doc, QDomElement &element,
 
  536                                      const QString &path, const QString &mime,
 
  537                                      const QColor &color, 
double size = -1 );
 
  538    static 
bool externalGraphicFromSld( QDomElement &element,
 
  539                                        QString &path, QString &mime,
 
  540                                        QColor &color, 
double &size );
 
  546    Q_DECL_DEPRECATED static 
void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
 
  547        const QString &name, const QColor &color, const QColor &strokeColor, Qt::PenStyle strokeStyle,
 
  554    static 
void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
 
  555                                      const QString &name, const QColor &color, const QColor &strokeColor, Qt::PenStyle strokeStyle,
 
  557                                      double strokeWidth = -1, 
double size = -1 );
 
  562    static 
bool wellKnownMarkerFromSld( QDomElement &element,
 
  563                                        QString &name, QColor &color, QColor &strokeColor, Qt::PenStyle &strokeStyle,
 
  564                                        double &strokeWidth, 
double &size ) 
SIP_PYNAME( wellKnownMarkerFromSld2 );
 
  571    Q_DECL_DEPRECATED static 
void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
 
  572        const QString &path, const QString &format, 
int *markIndex = 
nullptr,
 
  573        const QColor &color = QColor(), 
double size = -1 ) 
SIP_DEPRECATED;
 
  580    static 
void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
 
  581                                     const QString &path, const QString &format, 
QgsSldExportContext &context, 
int *markIndex = 
nullptr,
 
  582                                     const QColor &color = QColor(), 
double size = -1 );
 
  584    static 
bool externalMarkerFromSld( QDomElement &element,
 
  585                                       QString &path, QString &format, 
int &markIndex,
 
  586                                       QColor &color, 
double &size );
 
  593    Q_DECL_DEPRECATED static 
void labelTextToSld( QDomDocument &doc, QDomElement &element, const QString &label,
 
  594        const QFont &font, const QColor &color = QColor(), 
double size = -1 ) 
SIP_DEPRECATED;
 
  601    static 
void labelTextToSld( QDomDocument &doc, QDomElement &element, const QString &label,
 
  602                                const QFont &font, 
QgsSldExportContext &context, const QColor &color = QColor(), 
double size = -1 );
 
  605    static QString ogrFeatureStylePen( 
double width, 
double mmScaleFactor, 
double mapUnitsScaleFactor, const QColor &
c,
 
  606                                       Qt::PenJoinStyle joinStyle = Qt::MiterJoin,
 
  607                                       Qt::PenCapStyle capStyle = Qt::FlatCap,
 
  609                                       const QVector<qreal> *dashPattern = 
nullptr );
 
  615    static QString ogrFeatureStyleBrush( const QColor &fillColr );
 
  621    Q_DECL_DEPRECATED static 
void createRotationElement( QDomDocument &doc, QDomElement &element, const QString &rotationFunc ) 
SIP_DEPRECATED;
 
  627    static 
void createRotationElement( QDomDocument &doc, QDomElement &element, const QString &rotationFunc, 
QgsSldExportContext &context );
 
  629    static 
bool rotationFromSldElement( QDomElement &element, QString &rotationFunc );
 
  635    Q_DECL_DEPRECATED static 
void createOpacityElement( QDomDocument &doc, QDomElement &element, const QString &alphaFunc ) 
SIP_DEPRECATED;
 
  641    static 
void createOpacityElement( QDomDocument &doc, QDomElement &element, const QString &alphaFunc, 
QgsSldExportContext &context );
 
  643    static 
bool opacityFromSldElement( QDomElement &element, QString &alphaFunc );
 
  645    static 
void createDisplacementElement( QDomDocument &doc, QDomElement &element, QPointF offset );
 
  646    static 
bool displacementFromSldElement( QDomElement &element, QPointF &offset );
 
  654    static 
void createAnchorPointElement( QDomDocument &doc, QDomElement &element, QPointF anchor );
 
  656    static 
void createOnlineResourceElement( QDomDocument &doc, QDomElement &element, const QString &path, const QString &format );
 
  657    static 
bool onlineResourceFromSldElement( QDomElement &element, QString &path, QString &format );
 
  663    Q_DECL_DEPRECATED static 
void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString &geomFunc ) 
SIP_DEPRECATED;
 
  669    static 
void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString &geomFunc, 
QgsSldExportContext &context );
 
  671    static 
bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
 
  680    Q_DECL_DEPRECATED static 
bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString &function ) 
SIP_DEPRECATED;
 
  690    static 
bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString &function, 
QgsSldExportContext &context );
 
  696    Q_DECL_DEPRECATED static 
bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString &function ) 
SIP_DEPRECATED;
 
  702    static 
bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString &function, 
QgsSldExportContext &context );
 
  704    static 
bool functionFromSldElement( QDomElement &element, QString &function );
 
  706    static QDomElement createSvgParameterElement( QDomDocument &doc, const QString &name, const QString &value );
 
  707    static 
QgsStringMap getSvgParameterList( QDomElement &element );
 
  709    static QDomElement createVendorOptionElement( QDomDocument &doc, const QString &name, const QString &value );
 
  710    static 
QgsStringMap getVendorOptionList( QDomElement &element );
 
  713    static QVariantMap parseProperties( const QDomElement &element );
 
  715    static 
void saveProperties( QVariantMap props, QDomDocument &doc, QDomElement &element );
 
  737    static std::unique_ptr< 
QgsSymbol > symbolFromMimeData( const QMimeData *data );
 
  745    static std::unique_ptr< 
QgsColorRamp > loadColorRamp( QDomElement &element );
 
  755    static QDomElement saveColorRamp( const QString &name, const 
QgsColorRamp *ramp, QDomDocument &doc );
 
  763    static QVariant colorRampToVariant( const QString &name, 
QgsColorRamp *ramp );
 
  771    static std::unique_ptr< 
QgsColorRamp > loadColorRamp( const QVariant &value );
 
  778    static QString colorToName( const QColor &color );
 
  786    static QList< QColor > parseColorList( const QString &colorStr );
 
  794    static QMimeData *colorToMimeData( const QColor &color ) 
SIP_FACTORY;
 
  803    static QColor colorFromMimeData( const QMimeData *data, 
bool &hasAlpha 
SIP_OUT );
 
  828    static 
bool saveColorsToGpl( QFile &file, const QString &paletteName, const 
QgsNamedColorList &colors );
 
  838    static 
QgsNamedColorList importColorsFromGpl( QFile &file, 
bool &ok, QString &name );
 
  847    static QColor parseColor( const QString &colorStr, 
bool strictEval = false );
 
  857    static QColor parseColorWithAlpha( const QString &colorStr, 
bool &containsAlpha, 
bool strictEval = false );
 
  862    static 
void multiplyImageOpacity( QImage *image, qreal opacity );
 
  865    static 
void blurImageInPlace( QImage &image, QRect rect, 
int radius, 
bool alphaOnly );
 
  870    static 
void premultiplyColor( QColor &rgb, 
int alpha );
 
  887    static 
void sortVariantList( QList<QVariant> &list, Qt::SortOrder order );
 
  889    static QPointF pointOnLineWithDistance( QPointF startPoint, QPointF directionPoint, 
double distance );
 
  892    static QStringList listSvgFiles();
 
  895    static QStringList listSvgFilesAt( const QString &directory );
 
  903    static QString svgSymbolNameToPath( const QString &name, const 
QgsPathResolver &pathResolver );
 
  909    static QString svgSymbolPathToName( const QString &path, const 
QgsPathResolver &pathResolver );
 
  918    static QList< QList< QPolygonF > > toQPolygonF( const 
QgsGeometry &geometry, 
Qgis::SymbolType type );
 
  930    static QPointF polygonCentroid( const QPolygonF &points );
 
  933    static QPointF polygonPointOnSurface( const QPolygonF &points, const QVector<QPolygonF> *rings = 
nullptr );
 
  936    static 
bool pointInPolygon( const QPolygonF &points, QPointF point );
 
  943    static 
double polylineLength( const QPolygonF &polyline );
 
  957    static QPolygonF polylineSubstring( const QPolygonF &polyline, 
double startOffset, 
double endOffset );
 
  966    static 
bool isSharpCorner( QPointF p1, QPointF p2, QPointF p3 );
 
  975    static 
void appendPolyline( QPolygonF &target, const QPolygonF &line );
 
  983    static std::unique_ptr< 
QgsExpression > fieldOrExpressionToExpression( const QString &fieldOrExpression );
 
  991    static QString fieldOrExpressionFromExpression( 
QgsExpression *expression );
 
  998    static QList<
double> prettyBreaks( 
double minimum, 
double maximum, 
int classes );
 
 1004    static 
double rescaleUom( 
double size, 
Qgis::RenderUnit unit, const QVariantMap &props );
 
 1010    static QPointF rescaleUom( QPointF point, 
Qgis::RenderUnit unit, const QVariantMap &props ) 
SIP_PYNAME( rescalePointUom );
 
 1016    static QVector<qreal> rescaleUom( const QVector<qreal> &array, 
Qgis::RenderUnit unit, const QVariantMap &props ) 
SIP_PYNAME( rescaleArrayUom );
 
 1021    static 
void applyScaleDependency( QDomDocument &doc, QDomElement &ruleElem, QVariantMap &props );
 
 1026    static 
void mergeScaleDependencies( 
double mScaleMinDenom, 
double mScaleMaxDenom, QVariantMap &props );
 
 1034    Q_DECL_DEPRECATED static 
void parametricSvgToSld( QDomDocument &doc, QDomElement &graphicElem,
 
 1035        const QString &path,
 
 1036        const QColor &fillColor, 
double size, const QColor &strokeColor, 
double strokeWidth ) 
SIP_DEPRECATED;
 
 1044    static 
void parametricSvgToSld( QDomDocument &doc, QDomElement &graphicElem,
 
 1045                                    const QString &path,
 
 1046                                    const QColor &fillColor, 
double size, const QColor &strokeColor, 
double strokeWidth,
 
 1052    static QString getSvgParametricPath( const QString &basePath, const QColor &fillColor, const QColor &strokeColor, 
double strokeWidth );
 
 1084    static 
QgsSymbol *restrictedSizeSymbol( const 
QgsSymbol *s, 
double minSize, 
double maxSize, 
QgsRenderContext *context, 
double &width, 
double &height, 
bool *ok = 
nullptr );
 
 1101    static QSize tileSize( 
int width, 
int height, 
double &angleRad 
SIP_INOUT );
 
 1107    static 
void clearSymbolLayerIds( 
QgsSymbol *symbol );
 
 1119    static 
void resetSymbolLayerIds( 
QgsSymbol *symbol );
 
 1131    static 
void clearSymbolLayerMasks( 
QgsSymbol *symbol );
 
 1143    static QVector< 
QgsGeometry > collectSymbolLayerClipGeometries( const 
QgsRenderContext &context, const QString &symbolLayerId, const QRectF &bounds );
 
 1159    static QgsProperty scaleWholeSymbol( 
double scaleFactorX, 
double scaleFactorY, 
const QgsProperty &property )
 
 1163               ( !
qgsDoubleNear( scaleFactorX, 0.0 ) ? 
"tostring(" + QString::number( scaleFactorX ) + 
"*(" + exprString + 
"))" : QStringLiteral( 
"'0'" ) ) +
 
 1165               ( !
qgsDoubleNear( scaleFactorY, 0.0 ) ? 
"tostring(" + QString::number( scaleFactorY ) + 
"*(" + exprString + 
"))" : QStringLiteral( 
"'0'" ) ) );