206 static QPointF
decodePoint(
const QString &
string );
220 static QPointF
toPoint(
const QVariant &value,
bool *ok
SIP_OUT =
nullptr );
234 static QSizeF
decodeSize(
const QString &
string );
248 static QSizeF
toSize(
const QVariant &value,
bool *ok
SIP_OUT =
nullptr );
377 bool flipDirection =
false,
bool drawTransparentBackground =
true );
409 const bool canCast =
dynamic_cast<SymbolType *
>( tmpSymbol.get() );
413 std::unique_ptr< SymbolType > castRes(
static_cast<SymbolType *
>( tmpSymbol.release() ) );
424 static std::unique_ptr< QgsSymbolLayer > loadSymbolLayer( QDomElement &element,
const QgsReadWriteContext &context );
427 static QDomElement saveSymbol(
const QString &symbolName,
const QgsSymbol *symbol, QDomDocument &doc,
const QgsReadWriteContext &context );
433 static QString symbolProperties(
QgsSymbol *symbol );
438 static bool createSymbolLayerListFromSld( QDomElement &element,
Qgis::GeometryType geomType, QList<QgsSymbolLayer *> &layers );
443 static std::unique_ptr< QgsSymbolLayer > createFillLayerFromSld( QDomElement &element );
448 static std::unique_ptr< QgsSymbolLayer > createLineLayerFromSld( QDomElement &element );
453 static std::unique_ptr< QgsSymbolLayer > createMarkerLayerFromSld( QDomElement &element );
458 static bool convertPolygonSymbolizerToPointMarker( QDomElement &element, QList<QgsSymbolLayer *> &layerList );
465 static bool hasExternalGraphic( QDomElement &element );
473 static bool hasExternalGraphicV2(
const QDomElement &element,
const QString format = QString() );
475 static bool hasWellKnownMark( QDomElement &element );
477 static bool needFontMarker( QDomElement &element );
484 static bool needSvgMarker(
const QDomElement &element );
494 static bool needRasterMarker(
const QDomElement &element );
495 static bool needEllipseMarker( QDomElement &element );
496 static bool needMarkerLine( QDomElement &element );
497 static bool needLinePatternFill( QDomElement &element );
498 static bool needPointPatternFill( QDomElement &element );
499 static bool needSvgFill( QDomElement &element );
507 static bool needRasterImageFill( QDomElement &element );
514 Q_DECL_DEPRECATED
static void fillToSld( QDomDocument &doc, QDomElement &element,
515 Qt::BrushStyle brushStyle,
const QColor &color = QColor() )
SIP_DEPRECATED;
522 static
void fillToSld( QDomDocument &doc, QDomElement &element,
QgsSldExportContext &context,
523 Qt::BrushStyle brushStyle, const QColor &color = QColor() );
525 static
bool fillFromSld( QDomElement &element,
526 Qt::BrushStyle &brushStyle, QColor &color );
529 static
void lineToSld( QDomDocument &doc, QDomElement &element,
530 Qt::PenStyle penStyle, const QColor &color,
QgsSldExportContext &context,
double width = -1,
531 const Qt::PenJoinStyle *penJoinStyle =
nullptr, const Qt::PenCapStyle *penCapStyle =
nullptr,
532 const QVector<qreal> *customDashPattern =
nullptr,
double dashOffset = 0.0 )
SIP_SKIP;
533 static
bool lineFromSld( QDomElement &element,
534 Qt::PenStyle &penStyle, QColor &color,
double &width,
535 Qt::PenJoinStyle *penJoinStyle =
nullptr, Qt::PenCapStyle *penCapStyle =
nullptr,
536 QVector<qreal> *customDashPattern =
nullptr,
double *dashOffset =
nullptr );
538 static
void externalGraphicToSld( QDomDocument &doc, QDomElement &element,
539 const QString &path, const QString &mime,
540 const QColor &color,
double size = -1 );
541 static
bool externalGraphicFromSld( QDomElement &element,
542 QString &path, QString &mime,
543 QColor &color,
double &size );
549 Q_DECL_DEPRECATED static
void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
550 const QString &name, const QColor &color, const QColor &strokeColor, Qt::PenStyle strokeStyle,
557 static
void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
558 const QString &name, const QColor &color, const QColor &strokeColor, Qt::PenStyle strokeStyle,
560 double strokeWidth = -1,
double size = -1 );
565 static
bool wellKnownMarkerFromSld( QDomElement &element,
566 QString &name, QColor &color, QColor &strokeColor, Qt::PenStyle &strokeStyle,
567 double &strokeWidth,
double &size )
SIP_PYNAME( wellKnownMarkerFromSld2 );
574 Q_DECL_DEPRECATED static
void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
575 const QString &path, const QString &format,
int *markIndex =
nullptr,
576 const QColor &color = QColor(),
double size = -1 )
SIP_DEPRECATED;
583 static
void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
584 const QString &path, const QString &format,
QgsSldExportContext &context,
int *markIndex =
nullptr,
585 const QColor &color = QColor(),
double size = -1 );
587 static
bool externalMarkerFromSld( QDomElement &element,
588 QString &path, QString &format,
int &markIndex,
589 QColor &color,
double &size );
596 Q_DECL_DEPRECATED static
void labelTextToSld( QDomDocument &doc, QDomElement &element, const QString &label,
597 const QFont &font, const QColor &color = QColor(),
double size = -1 )
SIP_DEPRECATED;
604 static
void labelTextToSld( QDomDocument &doc, QDomElement &element, const QString &label,
605 const QFont &font,
QgsSldExportContext &context, const QColor &color = QColor(),
double size = -1 );
608 static QString ogrFeatureStylePen(
double width,
double mmScaleFactor,
double mapUnitsScaleFactor, const QColor &
c,
609 Qt::PenJoinStyle joinStyle = Qt::MiterJoin,
610 Qt::PenCapStyle capStyle = Qt::FlatCap,
612 const QVector<qreal> *dashPattern =
nullptr );
618 static QString ogrFeatureStyleBrush( const QColor &fillColr );
624 Q_DECL_DEPRECATED static
void createRotationElement( QDomDocument &doc, QDomElement &element, const QString &rotationFunc )
SIP_DEPRECATED;
630 static
void createRotationElement( QDomDocument &doc, QDomElement &element, const QString &rotationFunc,
QgsSldExportContext &context );
632 static
bool rotationFromSldElement( QDomElement &element, QString &rotationFunc );
638 Q_DECL_DEPRECATED static
void createOpacityElement( QDomDocument &doc, QDomElement &element, const QString &alphaFunc )
SIP_DEPRECATED;
644 static
void createOpacityElement( QDomDocument &doc, QDomElement &element, const QString &alphaFunc,
QgsSldExportContext &context );
646 static
bool opacityFromSldElement( QDomElement &element, QString &alphaFunc );
648 static
void createDisplacementElement( QDomDocument &doc, QDomElement &element, QPointF offset );
649 static
bool displacementFromSldElement( QDomElement &element, QPointF &offset );
657 static
void createAnchorPointElement( QDomDocument &doc, QDomElement &element, QPointF anchor );
659 static
void createOnlineResourceElement( QDomDocument &doc, QDomElement &element, const QString &path, const QString &format );
660 static
bool onlineResourceFromSldElement( QDomElement &element, QString &path, QString &format );
666 Q_DECL_DEPRECATED static
void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString &geomFunc )
SIP_DEPRECATED;
672 static
void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString &geomFunc,
QgsSldExportContext &context );
674 static
bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
683 Q_DECL_DEPRECATED static
bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString &function )
SIP_DEPRECATED;
693 static
bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString &function,
QgsSldExportContext &context );
699 Q_DECL_DEPRECATED static
bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString &function )
SIP_DEPRECATED;
705 static
bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString &function,
QgsSldExportContext &context );
707 static
bool functionFromSldElement( QDomElement &element, QString &function );
709 static QDomElement createSvgParameterElement( QDomDocument &doc, const QString &name, const QString &value );
710 static
QgsStringMap getSvgParameterList( QDomElement &element );
712 static QDomElement createVendorOptionElement( QDomDocument &doc, const QString &name, const QString &value );
713 static
QgsStringMap getVendorOptionList( QDomElement &element );
716 static QVariantMap parseProperties( const QDomElement &element );
718 static
void saveProperties( QVariantMap props, QDomDocument &doc, QDomElement &element );
740 static std::unique_ptr<
QgsSymbol > symbolFromMimeData( const QMimeData *data );
748 static std::unique_ptr<
QgsColorRamp > loadColorRamp( QDomElement &element );
758 static QDomElement saveColorRamp( const QString &name, const
QgsColorRamp *ramp, QDomDocument &doc );
766 static QVariant colorRampToVariant( const QString &name,
QgsColorRamp *ramp );
774 static std::unique_ptr<
QgsColorRamp > loadColorRamp( const QVariant &value );
781 static QString colorToName( const QColor &color );
789 static QList< QColor > parseColorList( const QString &colorStr );
797 static QMimeData *colorToMimeData( const QColor &color )
SIP_FACTORY;
806 static QColor colorFromMimeData( const QMimeData *data,
bool &hasAlpha
SIP_OUT );
831 static
bool saveColorsToGpl( QFile &file, const QString &paletteName, const
QgsNamedColorList &colors );
841 static
QgsNamedColorList importColorsFromGpl( QFile &file,
bool &ok, QString &name );
850 static QColor parseColor( const QString &colorStr,
bool strictEval = false );
860 static QColor parseColorWithAlpha( const QString &colorStr,
bool &containsAlpha,
bool strictEval = false );
865 static
void multiplyImageOpacity( QImage *image, qreal opacity );
868 static
void blurImageInPlace( QImage &image, QRect rect,
int radius,
bool alphaOnly );
873 static
void premultiplyColor( QColor &rgb,
int alpha );
890 static
void sortVariantList( QList<QVariant> &list, Qt::SortOrder order );
892 static QPointF pointOnLineWithDistance( QPointF startPoint, QPointF directionPoint,
double distance );
895 static QStringList listSvgFiles();
898 static QStringList listSvgFilesAt( const QString &directory );
906 static QString svgSymbolNameToPath( const QString &name, const
QgsPathResolver &pathResolver );
912 static QString svgSymbolPathToName( const QString &path, const
QgsPathResolver &pathResolver );
921 static QList< QList< QPolygonF > > toQPolygonF( const
QgsGeometry &geometry,
Qgis::SymbolType type );
933 static QPointF polygonCentroid( const QPolygonF &points );
936 static QPointF polygonPointOnSurface( const QPolygonF &points, const QVector<QPolygonF> *rings =
nullptr );
939 static
bool pointInPolygon( const QPolygonF &points, QPointF point );
946 static
double polylineLength( const QPolygonF &polyline );
960 static QPolygonF polylineSubstring( const QPolygonF &polyline,
double startOffset,
double endOffset );
969 static
bool isSharpCorner( QPointF p1, QPointF p2, QPointF p3 );
978 static
void appendPolyline( QPolygonF &target, const QPolygonF &line );
986 static std::unique_ptr<
QgsExpression > fieldOrExpressionToExpression( const QString &fieldOrExpression );
994 static QString fieldOrExpressionFromExpression(
QgsExpression *expression );
1001 static QList<
double> prettyBreaks(
double minimum,
double maximum,
int classes );
1007 static
double rescaleUom(
double size,
Qgis::RenderUnit unit, const QVariantMap &props );
1013 static QPointF rescaleUom( QPointF point,
Qgis::RenderUnit unit, const QVariantMap &props )
SIP_PYNAME( rescalePointUom );
1019 static QVector<qreal> rescaleUom( const QVector<qreal> &array,
Qgis::RenderUnit unit, const QVariantMap &props )
SIP_PYNAME( rescaleArrayUom );
1024 static
void applyScaleDependency( QDomDocument &doc, QDomElement &ruleElem, QVariantMap &props );
1029 static
void mergeScaleDependencies(
double mScaleMinDenom,
double mScaleMaxDenom, QVariantMap &props );
1037 Q_DECL_DEPRECATED static
void parametricSvgToSld( QDomDocument &doc, QDomElement &graphicElem,
1038 const QString &path,
1039 const QColor &fillColor,
double size, const QColor &strokeColor,
double strokeWidth )
SIP_DEPRECATED;
1047 static
void parametricSvgToSld( QDomDocument &doc, QDomElement &graphicElem,
1048 const QString &path,
1049 const QColor &fillColor,
double size, const QColor &strokeColor,
double strokeWidth,
1055 static QString getSvgParametricPath( const QString &basePath, const QColor &fillColor, const QColor &strokeColor,
double strokeWidth );
1087 static std::unique_ptr<
QgsSymbol > restrictedSizeSymbol( const
QgsSymbol *s,
double minSize,
double maxSize,
QgsRenderContext *context,
double &width,
double &height,
bool *ok =
nullptr );
1104 static QSize tileSize(
int width,
int height,
double &angleRad
SIP_INOUT );
1110 static
void clearSymbolLayerIds(
QgsSymbol *symbol );
1122 static
void resetSymbolLayerIds(
QgsSymbol *symbol );
1134 static
void clearSymbolLayerMasks(
QgsSymbol *symbol );
1146 static QVector<
QgsGeometry > collectSymbolLayerClipGeometries( const
QgsRenderContext &context, const QString &symbolLayerId, const QRectF &bounds );
1156 static QgsProperty scaleWholeSymbol(
double scaleFactor,
const QgsProperty &property )
1158 const QString exprString =
property.asExpression();
1162 static QgsProperty scaleWholeSymbol(
double scaleFactorX,
double scaleFactorY,
const QgsProperty &property )
1164 const QString exprString =
property.asExpression();
1166 ( !
qgsDoubleNear( scaleFactorX, 0.0 ) ?
"tostring(" + QString::number( scaleFactorX ) +
"*(" + exprString +
"))" : u
"'0'"_s ) +
1168 ( !
qgsDoubleNear( scaleFactorY, 0.0 ) ?
"tostring(" + QString::number( scaleFactorY ) +
"*(" + exprString +
"))" : u
"'0'"_s ) );