QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsGlowEffect Class Referenceabstract

Base class for paint effect which draw a glow inside or outside a picture. More...

#include <qgsgloweffect.h>

Inheritance diagram for QgsGlowEffect:
Inheritance graph
[legend]

Public Types

enum  GlowColorType { SingleColor, ColorRamp }
 Color sources for the glow. More...
 
- Public Types inherited from QgsPaintEffect
enum  DrawMode { Modifier, Render, ModifyAndRender }
 Drawing modes for effects. More...
 

Public Member Functions

 QgsGlowEffect ()
 
 QgsGlowEffect (const QgsGlowEffect &other)
 
 ~QgsGlowEffect () override
 
QPainter::CompositionMode blendMode () const
 Returns the blend mode for the effect. More...
 
double blurLevel () const
 Returns the blur level (radius) for the glow. More...
 
const QgsMapUnitScaleblurMapUnitScale () const
 Returns the map unit scale used for the glow blur strength (radius). More...
 
QgsUnitTypes::RenderUnit blurUnit () const
 Returns the units used for the glow blur level (radius). More...
 
QColor color () const
 Returns the color for the glow. More...
 
GlowColorType colorType () const
 Returns the color mode used for the glow. More...
 
double opacity () const
 Returns the opacity for the effect. More...
 
QgsGlowEffectoperator= (const QgsGlowEffect &rhs)
 
QgsStringMap properties () const override
 Returns the properties describing the paint effect encoded in a string format. More...
 
QgsColorRampramp () const
 Returns the color ramp used for the glow. 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 glow. More...
 
void setBlurMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the glow blur strength (radius). More...
 
void setBlurUnit (const QgsUnitTypes::RenderUnit unit)
 Sets the units used for the glow blur level (radius). More...
 
void setColor (const QColor &color)
 Sets the color for the glow. More...
 
void setColorType (GlowColorType colorType)
 Sets the color mode to use for the glow. More...
 
void setOpacity (const double opacity)
 Sets the opacity for the effect. More...
 
void setRamp (QgsColorRamp *ramp)
 Sets the color ramp for the glow. More...
 
void setSpread (const double spread)
 Sets the spread distance for drawing the glow effect. More...
 
void setSpreadMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the spread distance. More...
 
void setSpreadUnit (const QgsUnitTypes::RenderUnit unit)
 Sets the units used for the glow spread distance. More...
 
double spread () const
 Returns the spread distance used for drawing the glow effect. More...
 
const QgsMapUnitScalespreadMapUnitScale () const
 Returns the map unit scale used for the spread distance. More...
 
QgsUnitTypes::RenderUnit spreadUnit () const
 Returns the units used for the glow spread distance. 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 shadeExterior () const =0
 Specifies whether the glow 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_SourceOver
 
double mBlurLevel = 2.645
 
QgsMapUnitScale mBlurMapUnitScale
 
QgsUnitTypes::RenderUnit mBlurUnit = QgsUnitTypes::RenderMillimeters
 
QColor mColor
 
GlowColorType mColorType = SingleColor
 
double mOpacity = 0.5
 
QgsColorRampmRamp = nullptr
 
double mSpread = 2.0
 
QgsMapUnitScale mSpreadMapUnitScale
 
QgsUnitTypes::RenderUnit mSpreadUnit = QgsUnitTypes::RenderMillimeters
 
- Protected Attributes inherited from QgsPaintEffect
DrawMode mDrawMode = ModifyAndRender
 
bool mEnabled = true
 
bool requiresQPainterDpiFix = true
 

Detailed Description

Base class for paint effect which draw a glow inside or outside a picture.

Since
QGIS 2.9

Definition at line 38 of file qgsgloweffect.h.

Member Enumeration Documentation

◆ GlowColorType

Color sources for the glow.

Enumerator
SingleColor 

Use a single color and fade the color to totally transparent.

ColorRamp 

Use colors from a color ramp.

Definition at line 44 of file qgsgloweffect.h.

Constructor & Destructor Documentation

◆ QgsGlowEffect() [1/2]

QgsGlowEffect::QgsGlowEffect ( )

Definition at line 24 of file qgsgloweffect.cpp.

◆ QgsGlowEffect() [2/2]

QgsGlowEffect::QgsGlowEffect ( const QgsGlowEffect other)

Definition at line 30 of file qgsgloweffect.cpp.

◆ ~QgsGlowEffect()

QgsGlowEffect::~QgsGlowEffect ( )
override

Definition at line 36 of file qgsgloweffect.cpp.

Member Function Documentation

◆ blendMode()

QPainter::CompositionMode QgsGlowEffect::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 238 of file qgsgloweffect.h.

◆ blurLevel()

double QgsGlowEffect::blurLevel ( ) const
inline

Returns the blur level (radius) for the glow.

Returns
blur level.
See also
setBlurLevel
blurUnit
blurMapUnitScale

Definition at line 128 of file qgsgloweffect.h.

◆ blurMapUnitScale()

const QgsMapUnitScale& QgsGlowEffect::blurMapUnitScale ( ) const
inline

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

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

Definition at line 168 of file qgsgloweffect.h.

◆ blurUnit()

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

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

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

Definition at line 148 of file qgsgloweffect.h.

◆ boundingRect()

QRectF QgsGlowEffect::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 223 of file qgsgloweffect.cpp.

◆ color()

QColor QgsGlowEffect::color ( ) const
inline

Returns the color for the glow.

This only applies if the colorType() is set to SingleColor. The glow will fade between the specified color and a totally transparent version of the color.

Returns
glow color
See also
setColor
colorType

Definition at line 204 of file qgsgloweffect.h.

◆ colorType()

GlowColorType QgsGlowEffect::colorType ( ) const
inline

Returns the color mode used for the glow.

The glow can either be drawn using a QgsColorRamp color ramp or by specificing a single color.

Returns
current color mode used for the glow
See also
setColorType
color
ramp

Definition at line 259 of file qgsgloweffect.h.

◆ draw()

void QgsGlowEffect::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 41 of file qgsgloweffect.cpp.

◆ opacity()

double QgsGlowEffect::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 184 of file qgsgloweffect.h.

◆ operator=()

QgsGlowEffect & QgsGlowEffect::operator= ( const QgsGlowEffect rhs)

Definition at line 201 of file qgsgloweffect.cpp.

◆ properties()

QgsStringMap QgsGlowEffect::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 100 of file qgsgloweffect.cpp.

◆ ramp()

QgsColorRamp* QgsGlowEffect::ramp ( ) const
inline

Returns the color ramp used for the glow.

This only applies if the colorType() is set to ColorRamp. The glow will utilize colors from the ramp.

Returns
color ramp for glow
See also
setRamp
colorType

Definition at line 222 of file qgsgloweffect.h.

◆ readProperties()

void QgsGlowEffect::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 128 of file qgsgloweffect.cpp.

◆ setBlendMode()

void QgsGlowEffect::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 230 of file qgsgloweffect.h.

◆ setBlurLevel()

void QgsGlowEffect::setBlurLevel ( const double  level)
inline

Sets blur level (radius) for the glow.

This can be used to smooth the output from the glow effect.

Parameters
levelblur level.
See also
blurLevel
setBlurUnit
setBlurMapUnitScale

Definition at line 119 of file qgsgloweffect.h.

◆ setBlurMapUnitScale()

void QgsGlowEffect::setBlurMapUnitScale ( const QgsMapUnitScale scale)
inline

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

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

Definition at line 158 of file qgsgloweffect.h.

◆ setBlurUnit()

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

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

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

Definition at line 138 of file qgsgloweffect.h.

◆ setColor()

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

Sets the color for the glow.

This only applies if the colorType() is set to SingleColor. The glow will fade between the specified color and a totally transparent version of the color.

Parameters
colorglow color
See also
color
setColorType

Definition at line 194 of file qgsgloweffect.h.

◆ setColorType()

void QgsGlowEffect::setColorType ( GlowColorType  colorType)
inline

Sets the color mode to use for the glow.

The glow can either be drawn using a QgsColorRamp color ramp or by simply specificing a single color. setColorType is used to specify which mode to use for the glow.

Parameters
colorTypecolor type to use for glow
See also
colorType
setColor
setRamp

Definition at line 249 of file qgsgloweffect.h.

◆ setOpacity()

void QgsGlowEffect::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 176 of file qgsgloweffect.h.

◆ setRamp()

void QgsGlowEffect::setRamp ( QgsColorRamp ramp)

Sets the color ramp for the glow.

This only applies if the colorType() is set to ColorRamp. The glow will utilize colors from the ramp.

Parameters
rampcolor ramp for glow. Ownership of the ramp is transferred to the effect.
See also
ramp
setColorType

Definition at line 195 of file qgsgloweffect.cpp.

◆ setSpread()

void QgsGlowEffect::setSpread ( const double  spread)
inline

Sets the spread distance for drawing the glow effect.

Parameters
spreadspread distance. Units are specified via setSpreadUnit()
See also
spread
setSpreadUnit
setSpreadMapUnitScale

Definition at line 64 of file qgsgloweffect.h.

◆ setSpreadMapUnitScale()

void QgsGlowEffect::setSpreadMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the spread distance.

Parameters
scalemap unit scale for spread distance
See also
spreadMapUnitScale
setSpread
setSpreadUnit

Definition at line 100 of file qgsgloweffect.h.

◆ setSpreadUnit()

void QgsGlowEffect::setSpreadUnit ( const QgsUnitTypes::RenderUnit  unit)
inline

Sets the units used for the glow spread distance.

Parameters
unitunits for spread distance
See also
spreadUnit
setSpread
setSpreadMapUnitScale

Definition at line 82 of file qgsgloweffect.h.

◆ shadeExterior()

virtual bool QgsGlowEffect::shadeExterior ( ) const
protectedpure virtual

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

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

Implemented in QgsInnerGlowEffect, and QgsOuterGlowEffect.

◆ spread()

double QgsGlowEffect::spread ( ) const
inline

Returns the spread distance used for drawing the glow effect.

Returns
spread distance. Units are retrieved via spreadUnit()
See also
setSpread
spreadUnit
spreadMapUnitScale

Definition at line 73 of file qgsgloweffect.h.

◆ spreadMapUnitScale()

const QgsMapUnitScale& QgsGlowEffect::spreadMapUnitScale ( ) const
inline

Returns the map unit scale used for the spread distance.

Returns
map unit scale for spread distance
See also
setSpreadMapUnitScale
spread
spreadUnit

Definition at line 109 of file qgsgloweffect.h.

◆ spreadUnit()

QgsUnitTypes::RenderUnit QgsGlowEffect::spreadUnit ( ) const
inline

Returns the units used for the glow spread distance.

Returns
units for spread distance
See also
setSpreadUnit
spread
spreadMapUnitScale

Definition at line 91 of file qgsgloweffect.h.

Member Data Documentation

◆ mBlendMode

QPainter::CompositionMode QgsGlowEffect::mBlendMode = QPainter::CompositionMode_SourceOver
protected

Definition at line 285 of file qgsgloweffect.h.

◆ mBlurLevel

double QgsGlowEffect::mBlurLevel = 2.645
protected

Definition at line 280 of file qgsgloweffect.h.

◆ mBlurMapUnitScale

QgsMapUnitScale QgsGlowEffect::mBlurMapUnitScale
protected

Definition at line 282 of file qgsgloweffect.h.

◆ mBlurUnit

QgsUnitTypes::RenderUnit QgsGlowEffect::mBlurUnit = QgsUnitTypes::RenderMillimeters
protected

Definition at line 281 of file qgsgloweffect.h.

◆ mColor

QColor QgsGlowEffect::mColor
protected

Definition at line 284 of file qgsgloweffect.h.

◆ mColorType

GlowColorType QgsGlowEffect::mColorType = SingleColor
protected

Definition at line 286 of file qgsgloweffect.h.

◆ mOpacity

double QgsGlowEffect::mOpacity = 0.5
protected

Definition at line 283 of file qgsgloweffect.h.

◆ mRamp

QgsColorRamp* QgsGlowEffect::mRamp = nullptr
protected

Definition at line 279 of file qgsgloweffect.h.

◆ mSpread

double QgsGlowEffect::mSpread = 2.0
protected

Definition at line 276 of file qgsgloweffect.h.

◆ mSpreadMapUnitScale

QgsMapUnitScale QgsGlowEffect::mSpreadMapUnitScale
protected

Definition at line 278 of file qgsgloweffect.h.

◆ mSpreadUnit

QgsUnitTypes::RenderUnit QgsGlowEffect::mSpreadUnit = QgsUnitTypes::RenderMillimeters
protected

Definition at line 277 of file qgsgloweffect.h.


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