QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsmasksymbollayer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmasksymbollayer.h
3 ---------------------
4 begin : July 2019
5 copyright : (C) 2019 by Hugo Mercier
6 email : hugo dot mercier at oslandia 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 QGSMASKSYMBOLLAYER_H
17#define QGSMASKSYMBOLLAYER_H
18
19#include "qgis.h"
20#include "qgis_core.h"
21#include "qgssymbollayer.h"
22
23class QgsPaintEffect;
24class QgsMarkerSymbol;
26
33
35{
36 public:
39
41
49 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
50
52 QgsSymbol *subSymbol() override;
53 bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
54 QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
55 bool hasDataDefinedProperties() const override;
56
57 QVariantMap properties() const override;
58
59 QString layerType() const override;
60 void startRender( QgsSymbolRenderContext &context ) override;
61 void stopRender( QgsSymbolRenderContext &context ) override;
62 void renderPoint( QPointF point, QgsSymbolRenderContext &context ) override;
63 QRectF bounds( QPointF point, QgsSymbolRenderContext &context ) override;
64 bool usesMapUnits() const override;
65 void setOutputUnit( Qgis::RenderUnit unit ) override;
66 QColor color() const override;
67
68 void drawPreviewIcon( QgsSymbolRenderContext &context, QSize size ) override;
69
70 // TODO QGIS 4.0 rename to avoid collision with base class member
71
73 bool enabled() const; // cppcheck-suppress duplInheritedMember
74
80 QList<QgsSymbolLayerReference> masks() const override;
81
87 void clearMasks();
88
94 void setMasks( const QList<QgsSymbolLayerReference> &maskedLayers );
95
96 private:
97#ifdef SIP_RUN
99#endif
100
102 std::unique_ptr<QgsMarkerSymbol> mSymbol;
103
105 QList<QgsSymbolLayerReference> mMaskedSymbolLayers;
106
107 std::unique_ptr<QgsPaintEffect> mEffect;
108};
109
110#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
QgsMarkerSymbolLayer(const QgsMarkerSymbolLayer &other)
double size() const
Returns the symbol size.
A marker symbol type, for rendering Point and MultiPoint geometries.
static QgsSymbolLayer * create(const QVariantMap &properties=QVariantMap())
Create a new QgsMaskMarkerSymbolLayer.
void setMasks(const QList< QgsSymbolLayerReference > &maskedLayers)
Sets the symbol layers that will be masked by the sub symbol's shape.
QColor color() const override
Returns the "representative" color of the symbol layer.
void stopRender(QgsSymbolRenderContext &context) override
Called after a set of rendering operations has finished on the supplied render context.
QgsMaskMarkerSymbolLayer * clone() const override
Shall be reimplemented by subclasses to create a deep copy of the instance.
QString layerType() const override
Returns a string that represents this layer type.
bool enabled() const
Whether some masked symbol layers are defined.
void renderPoint(QPointF point, QgsSymbolRenderContext &context) override
Renders a marker at the specified point.
bool usesMapUnits() const override
Returns true if the symbol layer has any components which use map unit based sizes.
bool setSubSymbol(QgsSymbol *symbol) override
Sets layer's subsymbol. takes ownership of the passed symbol.
~QgsMaskMarkerSymbolLayer() override
bool hasDataDefinedProperties() const override
Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
QList< QgsSymbolLayerReference > masks() const override
Returns a list of references to symbol layers that are masked by the sub symbol's shape.
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.
QgsMaskMarkerSymbolLayer()
Simple constructor.
void drawPreviewIcon(QgsSymbolRenderContext &context, QSize size) override
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.
QgsSymbol * subSymbol() override
Returns the symbol's sub symbol, if present.
void clearMasks()
Remove masks defined by this symbol layer.
QRectF bounds(QPointF point, QgsSymbolRenderContext &context) override
Returns the approximate bounding box of the marker symbol layer, taking into account any data defined...
Base class for visual effects which can be applied to QPicture drawings.
Contains information about the context of a rendering operation.
Type used to refer to a specific symbol layer in a symbol of a layer.
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
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_FACTORY
Definition qgis_sip.h:84