QGIS API Documentation  3.11.0-Master (68611307d7)
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
QgsTransformEffect Class Reference

A paint effect which applies transformations (such as move, scale and rotate) to a picture. More...

#include <qgstransformeffect.h>

Inheritance diagram for QgsTransformEffect:
Inheritance graph
[legend]

Public Member Functions

 QgsTransformEffect ()=default
 Constructor for QgsTransformEffect. More...
 
QgsTransformEffectclone () const override
 Duplicates an effect by creating a deep copy of 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...
 
bool reflectX () const
 Returns whether transform will be reflected along the x-axis. More...
 
bool reflectY () const
 Returns whether transform will be reflected along the y-axis. More...
 
double rotation () const
 Returns the transform rotation, in degrees clockwise. More...
 
double scaleX () const
 Returns the x axis scaling factor. More...
 
double scaleY () const
 Returns the y axis scaling factor. More...
 
void setReflectX (const bool reflectX)
 Sets whether to reflect along the x-axis. More...
 
void setReflectY (const bool reflectY)
 Sets whether to reflect along the y-axis. More...
 
void setRotation (const double rotation)
 Sets the transform rotation, in degrees clockwise. More...
 
void setScaleX (const double scaleX)
 Sets the x axis scaling factor. More...
 
void setScaleY (const double scaleY)
 Sets the y axis scaling factor. More...
 
void setShearX (const double shearX)
 Sets the x axis shearing factor. More...
 
void setShearY (const double shearY)
 Sets the y axis shearing factor. More...
 
void setTranslateMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the transform translation. More...
 
void setTranslateUnit (const QgsUnitTypes::RenderUnit unit)
 Sets the units used for the transform translation. More...
 
void setTranslateX (const double translateX)
 Sets the transform x translation. More...
 
void setTranslateY (const double translateY)
 Sets the transform y translation. More...
 
double shearX () const
 Returns the x axis shearing factor. More...
 
double shearY () const
 Returns the y axis shearing factor. More...
 
const QgsMapUnitScaletranslateMapUnitScale () const
 Returns the map unit scale used for the transform translation. More...
 
QgsUnitTypes::RenderUnit translateUnit () const
 Returns the units used for the transform translation. More...
 
double translateX () const
 Returns the transform x translation. More...
 
double translateY () const
 Returns the transform y translation. More...
 
QString type () const override
 Returns the effect type. 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...
 
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...
 

Static Public Member Functions

static QgsPaintEffectcreate (const QgsStringMap &map)
 Creates a new QgsTransformEffect effect from a properties string map. 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...
 
- 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...
 

Additional Inherited Members

- Public Types inherited from QgsPaintEffect
enum  DrawMode { Modifier, Render, ModifyAndRender }
 Drawing modes for effects. More...
 
- Protected Attributes inherited from QgsPaintEffect
DrawMode mDrawMode = ModifyAndRender
 
bool mEnabled = true
 
bool requiresQPainterDpiFix = true
 

Detailed Description

A paint effect which applies transformations (such as move, scale and rotate) to a picture.

Since
QGIS 2.9

Definition at line 36 of file qgstransformeffect.h.

Constructor & Destructor Documentation

◆ QgsTransformEffect()

QgsTransformEffect::QgsTransformEffect ( )
default

Constructor for QgsTransformEffect.

Member Function Documentation

◆ boundingRect()

QRectF QgsTransformEffect::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 90 of file qgstransformeffect.cpp.

◆ clone()

QgsTransformEffect * QgsTransformEffect::clone ( ) const
overridevirtual

Duplicates an effect by creating a deep copy of the effect.

Returns
clone of paint effect

Implements QgsPaintEffect.

Definition at line 84 of file qgstransformeffect.cpp.

◆ create()

QgsPaintEffect * QgsTransformEffect::create ( const QgsStringMap map)
static

Creates a new QgsTransformEffect effect from a properties string map.

Parameters
mapencoded properties string map
Returns
new QgsTransformEffect

Definition at line 24 of file qgstransformeffect.cpp.

◆ draw()

void QgsTransformEffect::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 31 of file qgstransformeffect.cpp.

◆ properties()

QgsStringMap QgsTransformEffect::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 48 of file qgstransformeffect.cpp.

◆ readProperties()

void QgsTransformEffect::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 67 of file qgstransformeffect.cpp.

◆ reflectX()

bool QgsTransformEffect::reflectX ( ) const
inline

Returns whether transform will be reflected along the x-axis.

Returns
true if transform will reflect horizontally
See also
setReflectX
reflectY

Definition at line 227 of file qgstransformeffect.h.

◆ reflectY()

bool QgsTransformEffect::reflectY ( ) const
inline

Returns whether transform will be reflected along the y-axis.

Returns
true if transform will reflect horizontally
See also
setReflectY
reflectX

Definition at line 243 of file qgstransformeffect.h.

◆ rotation()

double QgsTransformEffect::rotation ( ) const
inline

Returns the transform rotation, in degrees clockwise.

See also
setRotation()

Definition at line 179 of file qgstransformeffect.h.

◆ scaleX()

double QgsTransformEffect::scaleX ( ) const
inline

Returns the x axis scaling factor.

Returns
x axis scaling factor, where 1.0 = no scaling
See also
setScaleX
scaleY

Definition at line 152 of file qgstransformeffect.h.

◆ scaleY()

double QgsTransformEffect::scaleY ( ) const
inline

Returns the y axis scaling factor.

Returns
y axis scaling factor, where 1.0 = no scaling
See also
setScaleY
scaleX

Definition at line 167 of file qgstransformeffect.h.

◆ setReflectX()

void QgsTransformEffect::setReflectX ( const bool  reflectX)
inline

Sets whether to reflect along the x-axis.

Parameters
reflectXtrue to reflect horizontally
See also
reflectX
setReflectY

Definition at line 219 of file qgstransformeffect.h.

◆ setReflectY()

void QgsTransformEffect::setReflectY ( const bool  reflectY)
inline

Sets whether to reflect along the y-axis.

Parameters
reflectYtrue to reflect horizontally
See also
reflectY
setReflectX

Definition at line 235 of file qgstransformeffect.h.

◆ setRotation()

void QgsTransformEffect::setRotation ( const double  rotation)
inline

Sets the transform rotation, in degrees clockwise.

See also
rotation()

Definition at line 173 of file qgstransformeffect.h.

◆ setScaleX()

void QgsTransformEffect::setScaleX ( const double  scaleX)
inline

Sets the x axis scaling factor.

Parameters
scaleXfactor to scale x axis by, where 1.0 = no scaling
See also
scaleX
setScaleY

Definition at line 144 of file qgstransformeffect.h.

◆ setScaleY()

void QgsTransformEffect::setScaleY ( const double  scaleY)
inline

Sets the y axis scaling factor.

Parameters
scaleYfactor to scale y axis by, where 1.0 = no scaling
See also
scaleX

Definition at line 159 of file qgstransformeffect.h.

◆ setShearX()

void QgsTransformEffect::setShearX ( const double  shearX)
inline

Sets the x axis shearing factor.

Parameters
shearXx axis shearing
See also
shearX
setShearY

Definition at line 187 of file qgstransformeffect.h.

◆ setShearY()

void QgsTransformEffect::setShearY ( const double  shearY)
inline

Sets the y axis shearing factor.

Parameters
shearYy axis shearing
See also
shearY
setShearX

Definition at line 203 of file qgstransformeffect.h.

◆ setTranslateMapUnitScale()

void QgsTransformEffect::setTranslateMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the transform translation.

Parameters
scalemap unit scale for translation
See also
translateMapUnitScale
setTranslateX
setTranslateY
setTranslateUnit

Definition at line 126 of file qgstransformeffect.h.

◆ setTranslateUnit()

void QgsTransformEffect::setTranslateUnit ( const QgsUnitTypes::RenderUnit  unit)
inline

Sets the units used for the transform translation.

Parameters
unitunits for translation
See also
translateUnit
setTranslateX
setTranslateY
setTranslateMapUnitScale

Definition at line 106 of file qgstransformeffect.h.

◆ setTranslateX()

void QgsTransformEffect::setTranslateX ( const double  translateX)
inline

Sets the transform x translation.

Parameters
translateXdistance to translate along the x axis
See also
translateX
setTranslateY
setTranslateUnit
setTranslateMapUnitScale

Definition at line 66 of file qgstransformeffect.h.

◆ setTranslateY()

void QgsTransformEffect::setTranslateY ( const double  translateY)
inline

Sets the transform y translation.

Parameters
translateYdistance to translate along the y axis
See also
translateY
setTranslateX
setTranslateUnit
setTranslateMapUnitScale

Definition at line 86 of file qgstransformeffect.h.

◆ shearX()

double QgsTransformEffect::shearX ( ) const
inline

Returns the x axis shearing factor.

Returns
x axis shearing
See also
setShearX
shearY

Definition at line 195 of file qgstransformeffect.h.

◆ shearY()

double QgsTransformEffect::shearY ( ) const
inline

Returns the y axis shearing factor.

Returns
y axis shearing
See also
setShearY
shearX

Definition at line 211 of file qgstransformeffect.h.

◆ translateMapUnitScale()

const QgsMapUnitScale& QgsTransformEffect::translateMapUnitScale ( ) const
inline

Returns the map unit scale used for the transform translation.

Returns
map unit scale for translation
See also
setTranslateMapUnitScale
translateX
translateY
translateUnit

Definition at line 136 of file qgstransformeffect.h.

◆ translateUnit()

QgsUnitTypes::RenderUnit QgsTransformEffect::translateUnit ( ) const
inline

Returns the units used for the transform translation.

Returns
units for translation
See also
setTranslateUnit
translateX
translateY
translateMapUnitScale

Definition at line 116 of file qgstransformeffect.h.

◆ translateX()

double QgsTransformEffect::translateX ( ) const
inline

Returns the transform x translation.

Returns
X distance translated along the x axis
See also
setTranslateX
translateY
translateUnit
translateMapUnitScale

Definition at line 76 of file qgstransformeffect.h.

◆ translateY()

double QgsTransformEffect::translateY ( ) const
inline

Returns the transform y translation.

Returns
Y distance translated along the y axis
See also
setTranslateY
translateX
translateUnit
translateMapUnitScale

Definition at line 96 of file qgstransformeffect.h.

◆ type()

QString QgsTransformEffect::type ( ) const
inlineoverridevirtual

Returns the effect type.

Returns
unique string representation of the effect type

Implements QgsPaintEffect.

Definition at line 53 of file qgstransformeffect.h.


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