QGIS API Documentation 3.99.0-Master (752b475928d)
Loading...
Searching...
No Matches
qgsshadoweffect.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsshadoweffect.h
3 -----------------
4 begin : December 2014
5 copyright : (C) 2014 Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSSHADOWEFFECT_H
18#define QGSSHADOWEFFECT_H
19
20#include "qgis.h"
21#include "qgis_core.h"
22#include "qgis_sip.h"
23#include "qgsmapunitscale.h"
24#include "qgspainteffect.h"
25
26#include <QPainter>
27
34{
35
36 public:
37
39
40 Qgis::PaintEffectFlags flags() const override;
41 QVariantMap properties() const override;
42
44 void readProperties( const QVariantMap &props ) override;
45
54 void setBlurLevel( const double level ) { mBlurLevel = level; }
55
64 double blurLevel() const { return mBlurLevel; }
65
74 void setBlurUnit( const Qgis::RenderUnit unit ) { mBlurUnit = unit; }
75
85
94 void setBlurMapUnitScale( const QgsMapUnitScale &scale ) { mBlurMapUnitScale = scale; }
95
105
112 void setOffsetAngle( const int angle ) { mOffsetAngle = angle; }
113
120 int offsetAngle() const { return mOffsetAngle; }
121
129 void setOffsetDistance( const double distance ) { mOffsetDist = distance; }
130
138 double offsetDistance() const { return mOffsetDist; }
139
147 void setOffsetUnit( const Qgis::RenderUnit unit ) { mOffsetUnit = unit; }
148
157
166
175
181 void setColor( const QColor &color ) { mColor = color; }
182
188 QColor color() const { return mColor; }
189
196 void setOpacity( const double opacity ) { mOpacity = opacity; }
197
204 double opacity() const { return mOpacity; }
205
212 void setBlendMode( const QPainter::CompositionMode mode ) { mBlendMode = mode; }
213
220 QPainter::CompositionMode blendMode() const { return mBlendMode; }
221
222 protected:
223
224 QRectF boundingRect( const QRectF &rect, const QgsRenderContext &context ) const override;
225 void draw( QgsRenderContext &context ) override;
226
233 virtual bool exteriorShadow() const = 0;
234
235 double mBlurLevel = 2.645;
238 int mOffsetAngle = 135;
239 double mOffsetDist = 2.0;
242 double mOpacity = 1.0;
243 QColor mColor;
244 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_Multiply;
245
246};
247
248
256{
257
258 public:
259
265 static QgsPaintEffect *create( const QVariantMap &map ) SIP_FACTORY;
266
268
269 QString type() const override;
270 QgsDropShadowEffect *clone() const override SIP_FACTORY;
271
272 protected:
273
274 bool exteriorShadow() const override;
275
276};
277
286{
287
288 public:
289
295 static QgsPaintEffect *create( const QVariantMap &map ) SIP_FACTORY;
296
298
299 QString type() const override;
300 QgsInnerShadowEffect *clone() const override SIP_FACTORY;
301
302 protected:
303
304 bool exteriorShadow() const override;
305
306};
307
308#endif // QGSSHADOWEFFECT_H
309
QFlags< PaintEffectFlag > PaintEffectFlags
Flags which control how paint effects behave.
Definition qgis.h:2815
RenderUnit
Rendering size units.
Definition qgis.h:5183
@ Millimeters
Millimeters.
Definition qgis.h:5184
static QgsPaintEffect * create(const QVariantMap &map)
Creates a new QgsDropShadowEffect effect from a properties string map.
bool exteriorShadow() const override
Specifies whether the shadow is drawn outside the picture or within the picture.
bool exteriorShadow() const override
Specifies whether the shadow is drawn outside the picture or within the picture.
static QgsPaintEffect * create(const QVariantMap &map)
Creates a new QgsInnerShadowEffect effect from a properties string map.
Struct for storing maximum and minimum scales for measurements in map units.
QgsPaintEffect()=default
virtual void readProperties(const QVariantMap &props)=0
Reads a string map of an effect's properties and restores the effect to the state described by the pr...
virtual Qgis::PaintEffectFlags flags() const
Returns flags which specify how the paint effect behaves.
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
virtual QRectF boundingRect(const QRectF &rect, const QgsRenderContext &context) const
Returns the bounding rect required for drawing the effect.
virtual QVariantMap properties() const =0
Returns the properties describing the paint effect encoded in a string format.
virtual void draw(QgsRenderContext &context)=0
Handles drawing of the effect's result on to the specified render context.
virtual QString type() const =0
Returns the effect type.
Contains information about the context of a rendering operation.
int offsetAngle() const
Returns the angle used for offsetting the shadow.
void setOffsetAngle(const int angle)
Sets the angle for offsetting the shadow.
void setOpacity(const double opacity)
Sets the opacity for the effect.
void setColor(const QColor &color)
Sets the color for the shadow.
double opacity() const
Returns the opacity for the effect.
Qgis::RenderUnit offsetUnit() const
Returns the units used for the shadow offset distance.
Qgis::RenderUnit mOffsetUnit
QColor color() const
Returns the color used for the shadow.
virtual bool exteriorShadow() const =0
Specifies whether the shadow is drawn outside the picture or within the picture.
QPainter::CompositionMode blendMode() const
Returns the blend mode for the effect.
Qgis::RenderUnit blurUnit() const
Returns the units used for the shadow blur level (radius).
void setBlurLevel(const double level)
Sets blur level (radius) for the shadow.
void setOffsetUnit(const Qgis::RenderUnit unit)
Sets the units used for the shadow offset distance.
void setOffsetDistance(const double distance)
Sets the distance for offsetting the shadow.
QgsMapUnitScale mOffsetMapUnitScale
Qgis::RenderUnit mBlurUnit
double blurLevel() const
Returns the blur level (radius) for the shadow.
void setBlurUnit(const Qgis::RenderUnit unit)
Sets the units used for the shadow blur level (radius).
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale used for the shadow offset distance.
QPainter::CompositionMode mBlendMode
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale used for the shadow offset distance.
void setBlendMode(const QPainter::CompositionMode mode)
Sets the blend mode for the effect.
double offsetDistance() const
Returns the distance used for offsetting the shadow.
QgsMapUnitScale mBlurMapUnitScale
const QgsMapUnitScale & blurMapUnitScale() const
Returns the map unit scale used for the shadow blur strength (radius).
void setBlurMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale used for the shadow blur strength (radius).
#define SIP_FACTORY
Definition qgis_sip.h:84
#define SIP_NODEFAULTCTORS
Definition qgis_sip.h:109