QGIS API Documentation  3.13.0-Master (13337b20cd)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsShadowEffect Class Referenceabstract

Base class for paint effects which offset, blurred shadows. More...

#include <qgsshadoweffect.h>

Inheritance diagram for QgsShadowEffect:
Inheritance graph
[legend]

Public Member Functions

 QgsShadowEffect ()
 
QPainter::CompositionMode blendMode () const
 Returns the blend mode for the effect. More...
 
double blurLevel () const
 Returns the blur level (radius) for the shadow. More...
 
const QgsMapUnitScaleblurMapUnitScale () const
 Returns the map unit scale used for the shadow blur strength (radius). More...
 
QgsUnitTypes::RenderUnit blurUnit () const
 Returns the units used for the shadow blur level (radius). More...
 
QColor color () const
 Returns the color used for the shadow. More...
 
int offsetAngle () const
 Returns the angle used for offsetting the shadow. More...
 
double offsetDistance () const
 Returns the distance used for offsetting the shadow. More...
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 Returns the map unit scale used for the shadow offset distance. More...
 
QgsUnitTypes::RenderUnit offsetUnit () const
 Returns the units used for the shadow offset distance. More...
 
double opacity () const
 Returns the opacity for the effect. More...
 
QgsStringMap properties () const override
 Returns the properties describing the paint effect encoded in a string format. More...
 
void readProperties (const QgsStringMap &props) override
 Reads a string map of an effect's properties and restores the effect to the state described by the properties map. More...
 
void setBlendMode (const QPainter::CompositionMode mode)
 Sets the blend mode for the effect. More...
 
void setBlurLevel (const double level)
 Sets blur level (radius) for the shadow. More...
 
void setBlurMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the shadow blur strength (radius). More...
 
void setBlurUnit (const QgsUnitTypes::RenderUnit unit)
 Sets the units used for the shadow blur level (radius). More...
 
void setColor (const QColor &color)
 Sets the color for the shadow. More...
 
void setOffsetAngle (const int angle)
 Sets the angle for offsetting the shadow. More...
 
void setOffsetDistance (const double distance)
 Sets the distance for offsetting the shadow. More...
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the shadow offset distance. More...
 
void setOffsetUnit (const QgsUnitTypes::RenderUnit unit)
 Sets the units used for the shadow offset distance. More...
 
void setOpacity (const double opacity)
 Sets the opacity for the effect. More...
 
- Public Member Functions inherited from QgsPaintEffect
 QgsPaintEffect ()=default
 Constructor for QgsPaintEffect. More...
 
 QgsPaintEffect (const QgsPaintEffect &other)
 
virtual ~QgsPaintEffect ()
 
virtual void begin (QgsRenderContext &context)
 Begins intercepting paint operations to a render context. More...
 
virtual QgsPaintEffectclone () const =0
 Duplicates an effect by creating a deep copy of the effect. More...
 
DrawMode drawMode () const
 Returns the draw mode for the effect. More...
 
bool enabled () const
 Returns whether the effect is enabled. More...
 
virtual void end (QgsRenderContext &context)
 Ends interception of paint operations to a render context, and draws the result to the render context after being modified by the effect. More...
 
virtual bool readProperties (const QDomElement &element)
 Restores the effect to the state described by a DOM element. More...
 
virtual void render (QPicture &picture, QgsRenderContext &context)
 Renders a picture using the effect. More...
 
virtual bool saveProperties (QDomDocument &doc, QDomElement &element) const
 Saves the current state of the effect to a DOM element. More...
 
void setDrawMode (DrawMode drawMode)
 Sets the draw mode for the effect. More...
 
void setEnabled (bool enabled)
 Sets whether the effect is enabled. More...
 
virtual QString type () const =0
 Returns the effect type. More...
 

Protected Member Functions

QRectF boundingRect (const QRectF &rect, const QgsRenderContext &context) const override
 Returns the bounding rect required for drawing the effect. More...
 
void draw (QgsRenderContext &context) override
 Handles drawing of the effect's result on to the specified render context. More...
 
virtual bool exteriorShadow () const =0
 Specifies whether the shadow is drawn outside the picture or within the picture. More...
 
- Protected Member Functions inherited from QgsPaintEffect
void drawSource (QPainter &painter)
 Draws the source QPicture onto the specified painter. More...
 
void fixQPictureDpi (QPainter *painter) const
 Applies a workaround to a QPainter to avoid an issue with incorrect scaling when drawing QPictures. More...
 
QPointF imageOffset (const QgsRenderContext &context) const
 Returns the offset which should be used when drawing the source image on to a destination render context. More...
 
const QPicture * source () const
 Returns the source QPicture. More...
 
QImage * sourceAsImage (QgsRenderContext &context)
 Returns the source QPicture rendered to a new QImage. More...
 

Protected Attributes

QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_Multiply
 
double mBlurLevel = 2.645
 
QgsMapUnitScale mBlurMapUnitScale
 
QgsUnitTypes::RenderUnit mBlurUnit = QgsUnitTypes::RenderMillimeters
 
QColor mColor
 
int mOffsetAngle = 135
 
double mOffsetDist = 2.0
 
QgsMapUnitScale mOffsetMapUnitScale
 
QgsUnitTypes::RenderUnit mOffsetUnit = QgsUnitTypes::RenderMillimeters
 
double mOpacity = 1.0
 
- Protected Attributes inherited from QgsPaintEffect
DrawMode mDrawMode = ModifyAndRender
 
bool mEnabled = true
 
bool requiresQPainterDpiFix = true
 

Additional Inherited Members

- Public Types inherited from QgsPaintEffect
enum  DrawMode { Modifier, Render, ModifyAndRender }
 Drawing modes for effects. More...
 

Detailed Description

Base class for paint effects which offset, blurred shadows.

Since
QGIS 2.9

Definition at line 34 of file qgsshadoweffect.h.

Constructor & Destructor Documentation

◆ QgsShadowEffect()

QgsShadowEffect::QgsShadowEffect ( )

Definition at line 23 of file qgsshadoweffect.cpp.

Member Function Documentation

◆ blendMode()

QPainter::CompositionMode QgsShadowEffect::blendMode ( ) const
inline

Returns the blend mode for the effect.

Returns
blend mode used for drawing the effect on to a destination paint device
See also
setBlendMode

Definition at line 218 of file qgsshadoweffect.h.

◆ blurLevel()

double QgsShadowEffect::blurLevel ( ) const
inline

Returns the blur level (radius) for the shadow.

Returns
blur level. values indicating greater blur strength.
See also
setBlurLevel
blurUnit
blurMapUnitScale

Definition at line 62 of file qgsshadoweffect.h.

◆ blurMapUnitScale()

const QgsMapUnitScale& QgsShadowEffect::blurMapUnitScale ( ) const
inline

Returns the map unit scale used for the shadow blur strength (radius).

Returns
map unit scale for blur strength
See also
setBlurMapUnitScale
blurLevel
blurUnit
Since
QGIS 3.4.9

Definition at line 102 of file qgsshadoweffect.h.

◆ blurUnit()

QgsUnitTypes::RenderUnit QgsShadowEffect::blurUnit ( ) const
inline

Returns the units used for the shadow blur level (radius).

Returns
units for blur level
See also
setBlurUnit
blurLevel
blurMapUnitScale
Since
QGIS 3.4.9

Definition at line 82 of file qgsshadoweffect.h.

◆ boundingRect()

QRectF QgsShadowEffect::boundingRect ( const QRectF &  rect,
const QgsRenderContext context 
) const
overrideprotectedvirtual

Returns the bounding rect required for drawing the effect.

This method can be used to expand the bounding rect of a source picture to account for offset or blurring effects.

Parameters
rectoriginal source bounding rect
contextdestination render context
Returns
modified bounding rect
See also
sourceAsImage

Reimplemented from QgsPaintEffect.

Definition at line 168 of file qgsshadoweffect.cpp.

◆ color()

QColor QgsShadowEffect::color ( ) const
inline

Returns the color used for the shadow.

Returns
shadow color
See also
setColor

Definition at line 186 of file qgsshadoweffect.h.

◆ draw()

void QgsShadowEffect::draw ( QgsRenderContext context)
overrideprotectedvirtual

Handles drawing of the effect's result on to the specified render context.

Derived classes must reimplement this method to apply any transformations to the source QPicture and draw the result using the context's painter.

Parameters
contextdestination render context
See also
drawSource

Implements QgsPaintEffect.

Definition at line 29 of file qgsshadoweffect.cpp.

◆ exteriorShadow()

virtual bool QgsShadowEffect::exteriorShadow ( ) const
protectedpure virtual

Specifies whether the shadow is drawn outside the picture or within the picture.

Returns
true if shadow is to be drawn outside the picture, or false to draw shadow within the picture

Implemented in QgsInnerShadowEffect, and QgsDropShadowEffect.

◆ offsetAngle()

int QgsShadowEffect::offsetAngle ( ) const
inline

Returns the angle used for offsetting the shadow.

Returns
offset angle in degrees clockwise from North
See also
setOffsetAngle
offsetDistance

Definition at line 118 of file qgsshadoweffect.h.

◆ offsetDistance()

double QgsShadowEffect::offsetDistance ( ) const
inline

Returns the distance used for offsetting the shadow.

Returns
offset distance. Distance units are retrieved via offsetUnit()
See also
setOffsetDistance
offsetUnit
offsetMapUnitScale

Definition at line 136 of file qgsshadoweffect.h.

◆ offsetMapUnitScale()

const QgsMapUnitScale& QgsShadowEffect::offsetMapUnitScale ( ) const
inline

Returns the map unit scale used for the shadow offset distance.

Returns
map unit scale for offset distance
See also
setOffsetMapUnitScale
offsetDistance
offsetUnit

Definition at line 172 of file qgsshadoweffect.h.

◆ offsetUnit()

QgsUnitTypes::RenderUnit QgsShadowEffect::offsetUnit ( ) const
inline

Returns the units used for the shadow offset distance.

Returns
units for offset distance
See also
setOffsetUnit
offsetDistance
offsetMapUnitScale

Definition at line 154 of file qgsshadoweffect.h.

◆ opacity()

double QgsShadowEffect::opacity ( ) const
inline

Returns the opacity for the effect.

Returns
opacity value between 0 and 1 inclusive, where 0 is fully transparent and 1 is fully opaque
See also
setOpacity()

Definition at line 202 of file qgsshadoweffect.h.

◆ properties()

QgsStringMap QgsShadowEffect::properties ( ) const
overridevirtual

Returns the properties describing the paint effect encoded in a string format.

Returns
string map of properties, in the form property key, value
See also
readProperties
saveProperties

Implements QgsPaintEffect.

Definition at line 94 of file qgsshadoweffect.cpp.

◆ readProperties()

void QgsShadowEffect::readProperties ( const QgsStringMap props)
overridevirtual

Reads a string map of an effect's properties and restores the effect to the state described by the properties map.

Parameters
propseffect properties encoded in a string map
See also
properties

Implements QgsPaintEffect.

Definition at line 112 of file qgsshadoweffect.cpp.

◆ setBlendMode()

void QgsShadowEffect::setBlendMode ( const QPainter::CompositionMode  mode)
inline

Sets the blend mode for the effect.

Parameters
modeblend mode used for drawing the effect on to a destination paint device
See also
blendMode

Definition at line 210 of file qgsshadoweffect.h.

◆ setBlurLevel()

void QgsShadowEffect::setBlurLevel ( const double  level)
inline

Sets blur level (radius) for the shadow.

Parameters
levelblur level. values indicating greater blur strength.
See also
blurLevel
setBlurUnit
setBlurMapUnitScale

Definition at line 52 of file qgsshadoweffect.h.

◆ setBlurMapUnitScale()

void QgsShadowEffect::setBlurMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the shadow blur strength (radius).

Parameters
scalemap unit scale for blur strength
See also
blurMapUnitScale
setBlurLevel
setBlurUnit
Since
QGIS 3.4.9

Definition at line 92 of file qgsshadoweffect.h.

◆ setBlurUnit()

void QgsShadowEffect::setBlurUnit ( const QgsUnitTypes::RenderUnit  unit)
inline

Sets the units used for the shadow blur level (radius).

Parameters
unitunits for blur level
See also
blurUnit
setBlurLevel
setBlurMapUnitScale
Since
QGIS 3.4.9

Definition at line 72 of file qgsshadoweffect.h.

◆ setColor()

void QgsShadowEffect::setColor ( const QColor &  color)
inline

Sets the color for the shadow.

Parameters
colorshadow color
See also
color

Definition at line 179 of file qgsshadoweffect.h.

◆ setOffsetAngle()

void QgsShadowEffect::setOffsetAngle ( const int  angle)
inline

Sets the angle for offsetting the shadow.

Parameters
angleoffset angle in degrees clockwise from North
See also
offsetAngle
setOffsetDistance

Definition at line 110 of file qgsshadoweffect.h.

◆ setOffsetDistance()

void QgsShadowEffect::setOffsetDistance ( const double  distance)
inline

Sets the distance for offsetting the shadow.

Parameters
distanceoffset distance. Units are specified via setOffsetUnit()
See also
offsetDistance
setOffsetUnit
setOffsetMapUnitScale

Definition at line 127 of file qgsshadoweffect.h.

◆ setOffsetMapUnitScale()

void QgsShadowEffect::setOffsetMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the shadow offset distance.

Parameters
scalemap unit scale for offset distance
See also
offsetMapUnitScale
setOffsetDistance
setOffsetUnit

Definition at line 163 of file qgsshadoweffect.h.

◆ setOffsetUnit()

void QgsShadowEffect::setOffsetUnit ( const QgsUnitTypes::RenderUnit  unit)
inline

Sets the units used for the shadow offset distance.

Parameters
unitunits for offset distance
See also
offsetUnit
setOffsetDistance
setOffsetMapUnitScale

Definition at line 145 of file qgsshadoweffect.h.

◆ setOpacity()

void QgsShadowEffect::setOpacity ( const double  opacity)
inline

Sets the opacity for the effect.

Parameters
opacitydouble between 0 and 1 inclusive, where 0 is fully transparent and 1 is fully opaque
See also
opacity()

Definition at line 194 of file qgsshadoweffect.h.

Member Data Documentation

◆ mBlendMode

QPainter::CompositionMode QgsShadowEffect::mBlendMode = QPainter::CompositionMode_Multiply
protected

Definition at line 242 of file qgsshadoweffect.h.

◆ mBlurLevel

double QgsShadowEffect::mBlurLevel = 2.645
protected

Definition at line 233 of file qgsshadoweffect.h.

◆ mBlurMapUnitScale

QgsMapUnitScale QgsShadowEffect::mBlurMapUnitScale
protected

Definition at line 235 of file qgsshadoweffect.h.

◆ mBlurUnit

QgsUnitTypes::RenderUnit QgsShadowEffect::mBlurUnit = QgsUnitTypes::RenderMillimeters
protected

Definition at line 234 of file qgsshadoweffect.h.

◆ mColor

QColor QgsShadowEffect::mColor
protected

Definition at line 241 of file qgsshadoweffect.h.

◆ mOffsetAngle

int QgsShadowEffect::mOffsetAngle = 135
protected

Definition at line 236 of file qgsshadoweffect.h.

◆ mOffsetDist

double QgsShadowEffect::mOffsetDist = 2.0
protected

Definition at line 237 of file qgsshadoweffect.h.

◆ mOffsetMapUnitScale

QgsMapUnitScale QgsShadowEffect::mOffsetMapUnitScale
protected

Definition at line 239 of file qgsshadoweffect.h.

◆ mOffsetUnit

QgsUnitTypes::RenderUnit QgsShadowEffect::mOffsetUnit = QgsUnitTypes::RenderMillimeters
protected

Definition at line 238 of file qgsshadoweffect.h.

◆ mOpacity

double QgsShadowEffect::mOpacity = 1.0
protected

Definition at line 240 of file qgsshadoweffect.h.


The documentation for this class was generated from the following files: