QGIS API Documentation
3.6.0-Noosa (5873452)
|
Contains information about the context of a rendering operation. More...
#include <qgsrendercontext.h>
Public Types | |
enum | Flag { DrawEditingInfo = 0x01, ForceVectorOutput = 0x02, UseAdvancedEffects = 0x04, UseRenderingOptimization = 0x08, DrawSelection = 0x10, DrawSymbolBounds = 0x20, RenderMapTile = 0x40, Antialiasing = 0x80, RenderPartialOutput = 0x100, RenderPreviewJob = 0x200 } |
Enumeration of flags that affect rendering operations. More... | |
enum | TextRenderFormat { TextFormatAlwaysOutlines, TextFormatAlwaysText } |
Options for rendering text. More... | |
Public Member Functions | |
QgsRenderContext () | |
QgsRenderContext (const QgsRenderContext &rh) | |
double | convertFromMapUnits (double sizeInMapUnits, QgsUnitTypes::RenderUnit outputUnit) const |
Converts a size from map units to the specified units. More... | |
double | convertMetersToMapUnits (double meters) const |
Convert meter distances to active MapUnit values for QgsUnitTypes::RenderMetersInMapUnits. More... | |
double | convertToMapUnits (double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const |
Converts a size from the specified units to map units. More... | |
double | convertToPainterUnits (double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const |
Converts a size from the specified units to painter units (pixels). More... | |
QgsCoordinateTransform | coordinateTransform () const |
Returns the current coordinate transform for the context. More... | |
const QgsDistanceArea & | distanceArea () const |
A general purpose distance and area calculator, capable of performing ellipsoid based calculations. More... | |
bool | drawEditingInformation () const |
QgsExpressionContext & | expressionContext () |
Gets the expression context. More... | |
const QgsExpressionContext & | expressionContext () const |
Gets the expression context (const version). More... | |
const QgsRectangle & | extent () const |
When rendering a map layer, calling this method returns the "clipping" extent for the layer (in the layer's CRS). More... | |
const QgsFeatureFilterProvider * | featureFilterProvider () const |
Gets the filter feature provider used for additional filtering of rendered features. More... | |
Flags | flags () const |
Returns combination of flags used for rendering. More... | |
bool | forceVectorOutput () const |
const QgsAbstractGeometry * | geometry () const |
Returns pointer to the unsegmentized geometry. More... | |
QgsLabelingEngine * | labelingEngine () const |
Gets access to new labeling engine (may be nullptr) More... | |
const QgsMapToPixel & | mapToPixel () const |
QgsRenderContext & | operator= (const QgsRenderContext &rh) |
QPainter * | painter () |
Returns the destination QPainter for the render operation. More... | |
const QgsPathResolver & | pathResolver () const |
Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g. More... | |
double | rendererScale () const |
Returns the renderer map scale. More... | |
bool | renderingStopped () const |
double | scaleFactor () const |
Returns the scaling factor for the render to convert painter units to physical sizes. More... | |
double | segmentationTolerance () const |
Gets the segmentation tolerance applied when rendering curved geometries. More... | |
QgsAbstractGeometry::SegmentationToleranceType | segmentationToleranceType () const |
Gets segmentation tolerance type (maximum angle or maximum difference between curve and approximation) More... | |
QColor | selectionColor () const |
void | setCoordinateTransform (const QgsCoordinateTransform &t) |
Sets the current coordinate transform for the context. More... | |
void | setDistanceArea (const QgsDistanceArea &distanceArea) |
A general purpose distance and area calculator, capable of performing ellipsoid based calculations. More... | |
void | setDrawEditingInformation (bool b) |
void | setExpressionContext (const QgsExpressionContext &context) |
Sets the expression context. More... | |
void | setExtent (const QgsRectangle &extent) |
When rendering a map layer, calling this method sets the "clipping" extent for the layer (in the layer's CRS). More... | |
void | setFeatureFilterProvider (const QgsFeatureFilterProvider *ffp) |
Set a filter feature provider used for additional filtering of rendered features. More... | |
void | setFlag (Flag flag, bool on=true) |
Enable or disable a particular flag (other flags are not affected) More... | |
void | setFlags (QgsRenderContext::Flags flags) |
Set combination of flags that will be used for rendering. More... | |
void | setForceVectorOutput (bool force) |
void | setGeometry (const QgsAbstractGeometry *geometry) |
Sets pointer to original (unsegmentized) geometry. More... | |
void | setLabelingEngine (QgsLabelingEngine *engine2) |
Assign new labeling engine. More... | |
void | setMapToPixel (const QgsMapToPixel &mtp) |
void | setPainter (QPainter *p) |
Sets the destination QPainter for the render operation. More... | |
void | setPathResolver (const QgsPathResolver &resolver) |
Sets the path resolver for conversion between relative and absolute paths during rendering operations, e.g. More... | |
void | setRendererScale (double scale) |
Sets the renderer map scale. More... | |
void | setRenderingStopped (bool stopped) |
void | setScaleFactor (double factor) |
Sets the scaling factor for the render to convert painter units to physical sizes. More... | |
void | setSegmentationTolerance (double tolerance) |
Sets the segmentation tolerance applied when rendering curved geometries. More... | |
void | setSegmentationToleranceType (QgsAbstractGeometry::SegmentationToleranceType type) |
Sets segmentation tolerance type (maximum angle or maximum difference between curve and approximation) More... | |
void | setSelectionColor (const QColor &color) |
void | setShowSelection (bool showSelection) |
Sets whether vector selections should be shown in the rendered map. More... | |
void | setTextRenderFormat (TextRenderFormat format) |
Sets the text render format, which dictates how text is rendered (e.g. More... | |
void | setTransformContext (const QgsCoordinateTransformContext &context) |
Sets the context's coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system. More... | |
void | setUseAdvancedEffects (bool enabled) |
Used to enable or disable advanced effects such as blend modes. More... | |
void | setUseRenderingOptimization (bool enabled) |
void | setVectorSimplifyMethod (const QgsVectorSimplifyMethod &simplifyMethod) |
bool | showSelection () const |
Returns true if vector selections should be shown in the rendered map. More... | |
bool | testFlag (Flag flag) const |
Check whether a particular flag is enabled. More... | |
TextRenderFormat | textRenderFormat () const |
Returns the text render format, which dictates how text is rendered (e.g. More... | |
QgsCoordinateTransformContext | transformContext () const |
Returns the context's coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system. More... | |
bool | useAdvancedEffects () const |
Returns true if advanced effects such as blend modes such be used. More... | |
bool | useRenderingOptimization () const |
Returns true if the rendering optimization (geometry simplification) can be executed. More... | |
const QgsVectorSimplifyMethod & | vectorSimplifyMethod () const |
Added in QGIS v2.4. More... | |
Static Public Member Functions | |
static QgsRenderContext | fromMapSettings (const QgsMapSettings &mapSettings) |
create initialized QgsRenderContext instance from given QgsMapSettings More... | |
static QgsRenderContext | fromQPainter (QPainter *painter) |
Creates a default render context given a pixel based QPainter destination. More... | |
Contains information about the context of a rendering operation.
The context of a rendering operation defines properties such as the conversion ratio between screen and map units, the extents to be rendered etc.
Definition at line 50 of file qgsrendercontext.h.
Enumeration of flags that affect rendering operations.
Definition at line 62 of file qgsrendercontext.h.
Options for rendering text.
Enumerator | |
---|---|
TextFormatAlwaysOutlines | Always render text using path objects (AKA outlines/curves). This setting guarantees the best quality rendering, even when using a raster paint surface (where sub-pixel path based text rendering is superior to sub-pixel text-based rendering). The downside is that text is converted to paths only, so users cannot open created vector outputs for post-processing in other applications and retain text editability. This setting also guarantees complete compatibility with the full range of formatting options available through QgsTextRenderer and QgsTextFormat, some of which may not be possible to reproduce when using a vector-based paint surface and TextFormatAlwaysText mode. A final benefit to this setting is that vector exports created using text as outlines do not require all users to have the original fonts installed in order to display the text in its original style. |
TextFormatAlwaysText | Always render text as text objects. While this mode preserves text objects as text for post-processing in external vector editing applications, it can result in rendering artifacts or poor quality rendering, depending on the text format settings. Even with raster based paint devices, TextFormatAlwaysText can result in inferior rendering quality to TextFormatAlwaysOutlines. When rendering using TextFormatAlwaysText to a vector based device (e.g. PDF or SVG), care must be taken to ensure that the required fonts are available to users when opening the created files, or default fallback fonts will be used to display the output instead. (Although PDF exports MAY automatically embed some fonts when possible, depending on the user's platform). |
Definition at line 81 of file qgsrendercontext.h.
QgsRenderContext::QgsRenderContext | ( | ) |
Definition at line 31 of file qgsrendercontext.cpp.
QgsRenderContext::QgsRenderContext | ( | const QgsRenderContext & | rh | ) |
Definition at line 40 of file qgsrendercontext.cpp.
double QgsRenderContext::convertFromMapUnits | ( | double | sizeInMapUnits, |
QgsUnitTypes::RenderUnit | outputUnit | ||
) | const |
Converts a size from map units to the specified units.
Definition at line 383 of file qgsrendercontext.cpp.
double QgsRenderContext::convertMetersToMapUnits | ( | double | meters | ) | const |
Convert meter distances to active MapUnit values for QgsUnitTypes::RenderMetersInMapUnits.
Definition at line 422 of file qgsrendercontext.cpp.
double QgsRenderContext::convertToMapUnits | ( | double | size, |
QgsUnitTypes::RenderUnit | unit, | ||
const QgsMapUnitScale & | scale = QgsMapUnitScale() |
||
) | const |
Converts a size from the specified units to map units.
The conversion respects the limits specified by the optional scale parameter.
Definition at line 319 of file qgsrendercontext.cpp.
double QgsRenderContext::convertToPainterUnits | ( | double | size, |
QgsUnitTypes::RenderUnit | unit, | ||
const QgsMapUnitScale & | scale = QgsMapUnitScale() |
||
) | const |
Converts a size from the specified units to painter units (pixels).
The conversion respects the limits specified by the optional scale parameter.
Definition at line 257 of file qgsrendercontext.cpp.
|
inline |
Returns the current coordinate transform for the context.
This represents the coordinate transform required to transform a layer which is being rendered back to the CRS of the rendered map. If no coordinate transformation is required, or the render context is not associated with a map layer render, then an invalid coordinate transformation is returned.
Definition at line 177 of file qgsrendercontext.h.
|
inline |
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
Definition at line 183 of file qgsrendercontext.h.
bool QgsRenderContext::drawEditingInformation | ( | ) | const |
Definition at line 200 of file qgsrendercontext.cpp.
|
inline |
Gets the expression context.
This context should be used for all expression evaluation associated with this render context.
Definition at line 395 of file qgsrendercontext.h.
|
inline |
Gets the expression context (const version).
This context should be used for all expression evaluation associated with this render context.
Definition at line 404 of file qgsrendercontext.h.
|
inline |
When rendering a map layer, calling this method returns the "clipping" extent for the layer (in the layer's CRS).
This extent is a "worst-case" scenario, which is guaranteed to cover the complete visible portion of the layer when it is rendered to a map. It is often larger than the actual visible portion of that layer.
Definition at line 237 of file qgsrendercontext.h.
const QgsFeatureFilterProvider * QgsRenderContext::featureFilterProvider | ( | ) | const |
Gets the filter feature provider used for additional filtering of rendered features.
Definition at line 252 of file qgsrendercontext.cpp.
QgsRenderContext::Flags QgsRenderContext::flags | ( | ) | const |
Returns combination of flags used for rendering.
Definition at line 141 of file qgsrendercontext.cpp.
bool QgsRenderContext::forceVectorOutput | ( | ) | const |
Definition at line 185 of file qgsrendercontext.cpp.
|
static |
create initialized QgsRenderContext instance from given QgsMapSettings
Definition at line 151 of file qgsrendercontext.cpp.
|
static |
Creates a default render context given a pixel based QPainter destination.
If no painter is specified or the painter has no device, then a default DPI of 88 will be assumed.
Definition at line 96 of file qgsrendercontext.cpp.
|
inline |
Returns pointer to the unsegmentized geometry.
Definition at line 407 of file qgsrendercontext.h.
|
inline |
Gets access to new labeling engine (may be nullptr)
Definition at line 276 of file qgsrendercontext.h.
|
inline |
Definition at line 239 of file qgsrendercontext.h.
QgsRenderContext & QgsRenderContext::operator= | ( | const QgsRenderContext & | rh | ) |
Definition at line 67 of file qgsrendercontext.cpp.
|
inline |
Returns the destination QPainter for the render operation.
Definition at line 165 of file qgsrendercontext.h.
|
inline |
Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g.
for resolving relative symbol paths.
Definition at line 212 of file qgsrendercontext.h.
|
inline |
Returns the renderer map scale.
This will match the desired scale denominator for the rendered map, eg 1000.0 for a 1:1000 map render.
Definition at line 270 of file qgsrendercontext.h.
|
inline |
Definition at line 249 of file qgsrendercontext.h.
|
inline |
Returns the scaling factor for the render to convert painter units to physical sizes.
This is usually equal to the number of pixels per millimeter.
Definition at line 247 of file qgsrendercontext.h.
|
inline |
Gets the segmentation tolerance applied when rendering curved geometries.
Definition at line 432 of file qgsrendercontext.h.
|
inline |
Gets segmentation tolerance type (maximum angle or maximum difference between curve and approximation)
Definition at line 439 of file qgsrendercontext.h.
|
inline |
Definition at line 278 of file qgsrendercontext.h.
void QgsRenderContext::setCoordinateTransform | ( | const QgsCoordinateTransform & | t | ) |
Sets the current coordinate transform for the context.
This represents the coordinate transform required to transform the layer which is being rendered back to the CRS of the rendered map.
Set to an invalid QgsCoordinateTransform to indicate that no transformation is required.
Definition at line 210 of file qgsrendercontext.cpp.
|
inline |
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
Will be used to convert meter distances to active MapUnit values for QgsUnitTypes::RenderMetersInMapUnits
Definition at line 327 of file qgsrendercontext.h.
void QgsRenderContext::setDrawEditingInformation | ( | bool | b | ) |
Definition at line 215 of file qgsrendercontext.cpp.
|
inline |
Sets the expression context.
This context is used for all expression evaluation associated with this render context.
Definition at line 387 of file qgsrendercontext.h.
|
inline |
When rendering a map layer, calling this method sets the "clipping" extent for the layer (in the layer's CRS).
This extent should be a "worst-case" scenario, which is guaranteed to completely cover the entire visible portion of the layer when it is rendered to the map. It may be larger than the actual visible area, but MUST contain at least the entire visible area.
Definition at line 316 of file qgsrendercontext.h.
void QgsRenderContext::setFeatureFilterProvider | ( | const QgsFeatureFilterProvider * | ffp | ) |
Set a filter feature provider used for additional filtering of rendered features.
ffp | the filter feature provider |
Definition at line 240 of file qgsrendercontext.cpp.
void QgsRenderContext::setFlag | ( | QgsRenderContext::Flag | flag, |
bool | on = true |
||
) |
Enable or disable a particular flag (other flags are not affected)
Definition at line 133 of file qgsrendercontext.cpp.
void QgsRenderContext::setFlags | ( | QgsRenderContext::Flags | flags | ) |
Set combination of flags that will be used for rendering.
Definition at line 128 of file qgsrendercontext.cpp.
void QgsRenderContext::setForceVectorOutput | ( | bool | force | ) |
Definition at line 220 of file qgsrendercontext.cpp.
|
inline |
Sets pointer to original (unsegmentized) geometry.
Definition at line 409 of file qgsrendercontext.h.
|
inline |
Assign new labeling engine.
Definition at line 358 of file qgsrendercontext.h.
|
inline |
Definition at line 303 of file qgsrendercontext.h.
|
inline |
Sets the destination QPainter for the render operation.
Ownership of the painter is not transferred and the QPainter destination must stay alive for the duration of any rendering operations.
Definition at line 350 of file qgsrendercontext.h.
|
inline |
Sets the path resolver for conversion between relative and absolute paths during rendering operations, e.g.
for resolving relative symbol paths.
Definition at line 221 of file qgsrendercontext.h.
|
inline |
Sets the renderer map scale.
This should match the desired scale denominator for the rendered map, eg 1000.0 for a 1:1000 map render.
Definition at line 342 of file qgsrendercontext.h.
|
inline |
Definition at line 320 of file qgsrendercontext.h.
|
inline |
Sets the scaling factor for the render to convert painter units to physical sizes.
This should usually be equal to the number of pixels per millimeter.
Definition at line 335 of file qgsrendercontext.h.
|
inline |
Sets the segmentation tolerance applied when rendering curved geometries.
tolerance | the segmentation tolerance |
Definition at line 430 of file qgsrendercontext.h.
|
inline |
Sets segmentation tolerance type (maximum angle or maximum difference between curve and approximation)
type | the segmentation tolerance typename |
Definition at line 437 of file qgsrendercontext.h.
|
inline |
Definition at line 359 of file qgsrendercontext.h.
void QgsRenderContext::setShowSelection | ( | bool | showSelection | ) |
Sets whether vector selections should be shown in the rendered map.
showSelection | set to true if selections should be shown |
Definition at line 225 of file qgsrendercontext.cpp.
|
inline |
Sets the text render format, which dictates how text is rendered (e.g.
as paths or real text objects).
Definition at line 491 of file qgsrendercontext.h.
void QgsRenderContext::setTransformContext | ( | const QgsCoordinateTransformContext & | context | ) |
Sets the context's coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
Definition at line 120 of file qgsrendercontext.cpp.
void QgsRenderContext::setUseAdvancedEffects | ( | bool | enabled | ) |
Used to enable or disable advanced effects such as blend modes.
Definition at line 195 of file qgsrendercontext.cpp.
void QgsRenderContext::setUseRenderingOptimization | ( | bool | enabled | ) |
Definition at line 235 of file qgsrendercontext.cpp.
|
inline |
Definition at line 379 of file qgsrendercontext.h.
bool QgsRenderContext::showSelection | ( | ) | const |
Returns true if vector selections should be shown in the rendered map.
Definition at line 205 of file qgsrendercontext.cpp.
bool QgsRenderContext::testFlag | ( | QgsRenderContext::Flag | flag | ) | const |
Check whether a particular flag is enabled.
Definition at line 146 of file qgsrendercontext.cpp.
|
inline |
Returns the text render format, which dictates how text is rendered (e.g.
as paths or real text objects).
Definition at line 480 of file qgsrendercontext.h.
QgsCoordinateTransformContext QgsRenderContext::transformContext | ( | ) | const |
Returns the context's coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
Definition at line 111 of file qgsrendercontext.cpp.
bool QgsRenderContext::useAdvancedEffects | ( | ) | const |
Returns true if advanced effects such as blend modes such be used.
Definition at line 190 of file qgsrendercontext.cpp.
bool QgsRenderContext::useRenderingOptimization | ( | ) | const |
Returns true if the rendering optimization (geometry simplification) can be executed.
Definition at line 230 of file qgsrendercontext.cpp.
|
inline |
Added in QGIS v2.4.
Definition at line 378 of file qgsrendercontext.h.