QGIS API Documentation  3.24.2-Tisler (13c1a02865)
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 
23 class QgsPaintEffect;
24 class 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  QColor color() const override;
66 
67  virtual void drawPreviewIcon( QgsSymbolRenderContext &context, QSize size ) override;
68 
70  bool enabled() const;
71 
77  QList<QgsSymbolLayerReference> masks() const override;
78 
84  void setMasks( const QList<QgsSymbolLayerReference> &maskedLayers );
85 
86  private:
87 #ifdef SIP_RUN
89 #endif
90 
92  std::unique_ptr<QgsMarkerSymbol> mSymbol;
93 
95  QList<QgsSymbolLayerReference> mMaskedSymbolLayers;
96 
97  std::unique_ptr<QgsPaintEffect> mEffect;
98 };
99 
100 #endif
101 
102 
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:38
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_FACTORY
Definition: qgis_sip.h:76