QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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...
 
Qgis::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...
 
Qgis::RenderUnit offsetUnit () const
 Returns the units used for the shadow offset distance. More...
 
double opacity () const
 Returns the opacity for the effect. More...
 
QVariantMap properties () const override
 Returns the properties describing the paint effect encoded in a string format. More...
 
void readProperties (const QVariantMap &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 Qgis::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 Qgis::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 QVariantMap properties () const =0
 Returns the properties describing the paint effect encoded in a string format. More...
 
virtual bool readProperties (const QDomElement &element)
 Restores the effect to the state described by a DOM element. More...
 
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 properties map. 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
virtual QRectF boundingRect (const QRectF &rect, const QgsRenderContext &context) const
 Returns the bounding rect required for drawing the effect. More...
 
virtual void draw (QgsRenderContext &context)=0
 Handles drawing of the effect's result on to the specified render context. More...
 
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
 
Qgis::RenderUnit mBlurUnit = Qgis::RenderUnit::Millimeters
 
QColor mColor
 
int mOffsetAngle = 135
 
double mOffsetDist = 2.0
 
QgsMapUnitScale mOffsetMapUnitScale
 
Qgis::RenderUnit mOffsetUnit = Qgis::RenderUnit::Millimeters
 
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.

Definition at line 35 of file qgsshadoweffect.h.

Constructor & Destructor Documentation

◆ QgsShadowEffect()

QgsShadowEffect::QgsShadowEffect ( )

Definition at line 24 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 219 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 63 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 103 of file qgsshadoweffect.h.

◆ blurUnit()

Qgis::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 83 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 175 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 187 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 30 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 QgsDropShadowEffect, and QgsInnerShadowEffect.

◆ 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 119 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 137 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 173 of file qgsshadoweffect.h.

◆ offsetUnit()

Qgis::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 155 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 203 of file qgsshadoweffect.h.

◆ properties()

QVariantMap 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 101 of file qgsshadoweffect.cpp.

◆ readProperties()

void QgsShadowEffect::readProperties ( const QVariantMap &  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 119 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 211 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 53 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 93 of file qgsshadoweffect.h.

◆ setBlurUnit()

void QgsShadowEffect::setBlurUnit ( const Qgis::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 73 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 180 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 111 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 128 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 164 of file qgsshadoweffect.h.

◆ setOffsetUnit()

void QgsShadowEffect::setOffsetUnit ( const Qgis::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 146 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 195 of file qgsshadoweffect.h.

Member Data Documentation

◆ mBlendMode

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

Definition at line 243 of file qgsshadoweffect.h.

◆ mBlurLevel

double QgsShadowEffect::mBlurLevel = 2.645
protected

Definition at line 234 of file qgsshadoweffect.h.

◆ mBlurMapUnitScale

QgsMapUnitScale QgsShadowEffect::mBlurMapUnitScale
protected

Definition at line 236 of file qgsshadoweffect.h.

◆ mBlurUnit

Qgis::RenderUnit QgsShadowEffect::mBlurUnit = Qgis::RenderUnit::Millimeters
protected

Definition at line 235 of file qgsshadoweffect.h.

◆ mColor

QColor QgsShadowEffect::mColor
protected

Definition at line 242 of file qgsshadoweffect.h.

◆ mOffsetAngle

int QgsShadowEffect::mOffsetAngle = 135
protected

Definition at line 237 of file qgsshadoweffect.h.

◆ mOffsetDist

double QgsShadowEffect::mOffsetDist = 2.0
protected

Definition at line 238 of file qgsshadoweffect.h.

◆ mOffsetMapUnitScale

QgsMapUnitScale QgsShadowEffect::mOffsetMapUnitScale
protected

Definition at line 240 of file qgsshadoweffect.h.

◆ mOffsetUnit

Qgis::RenderUnit QgsShadowEffect::mOffsetUnit = Qgis::RenderUnit::Millimeters
protected

Definition at line 239 of file qgsshadoweffect.h.

◆ mOpacity

double QgsShadowEffect::mOpacity = 1.0
protected

Definition at line 241 of file qgsshadoweffect.h.


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