QGIS API Documentation 3.40.0-Bratislava (b56115d8743)
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_core.h"
20#include "qgis.h"
21#include "qgssymbollayer.h"
22
23class QgsPaintEffect;
24class QgsMarkerSymbol;
26
35{
36 public:
39
41
49 static QgsSymbolLayer *create( const QVariantMap &properties = QVariantMap() ) SIP_FACTORY;
50
51 QgsMaskMarkerSymbolLayer *clone() const override SIP_FACTORY;
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 virtual 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 setMasks( const QList<QgsSymbolLayerReference> &maskedLayers );
88
89 private:
90#ifdef SIP_RUN
92#endif
93
95 std::unique_ptr<QgsMarkerSymbol> mSymbol;
96
98 QList<QgsSymbolLayerReference> mMaskedSymbolLayers;
99
100 std::unique_ptr<QgsPaintEffect> mEffect;
101};
102
103#endif
104
105
The Qgis class provides global constants for use throughout the application.
Definition qgis.h:54
Abstract base class for marker symbol layers.
A marker symbol type, for rendering Point and MultiPoint geometries.
Special symbol layer that uses its sub symbol as a selective mask.
~QgsMaskMarkerSymbolLayer() override
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.
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:76