mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
205 lines
7.6 KiB
Plaintext
205 lines
7.6 KiB
Plaintext
class QgsRenderContext
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
#include <qgsrendercontext.h>
|
|
%End
|
|
|
|
public:
|
|
QgsRenderContext();
|
|
QgsRenderContext( const QgsRenderContext& rh );
|
|
~QgsRenderContext();
|
|
|
|
/** Enumeration of flags that affect rendering operations.
|
|
* @note added in QGIS 2.14
|
|
*/
|
|
enum Flag
|
|
{
|
|
DrawEditingInfo, //!< Enable drawing of vertex markers for layers in editing mode
|
|
ForceVectorOutput, //!< Vector graphics should not be cached and drawn as raster images
|
|
UseAdvancedEffects, //!< Enable layer transparency and blending effects
|
|
UseRenderingOptimization, //!< Enable vector simplification and other rendering optimizations
|
|
DrawSelection, //!< Whether vector selections should be shown in the rendered map
|
|
DrawSymbolBounds, //!< Draw bounds of symbols (for debugging/testing)
|
|
RenderMapTile, //!< Draw map such that there are no problems between adjacent tiles
|
|
Antialiasing, //!< Use antialiasing while drawing
|
|
RenderPartialOutput, //!< Whether to make extra effort to update map image with partially rendered layers (better for interactive map canvas). Added in QGIS 3.0
|
|
};
|
|
typedef QFlags<QgsRenderContext::Flag> Flags;
|
|
|
|
/** Set combination of flags that will be used for rendering.
|
|
* @note added in QGIS 2.14
|
|
*/
|
|
void setFlags( QgsRenderContext::Flags flags );
|
|
|
|
/** Enable or disable a particular flag (other flags are not affected)
|
|
* @note added in QGIS 2.14
|
|
*/
|
|
void setFlag( Flag flag, bool on = true );
|
|
|
|
/** Return combination of flags used for rendering.
|
|
* @note added in QGIS 2.14
|
|
*/
|
|
Flags flags() const;
|
|
|
|
/** Check whether a particular flag is enabled.
|
|
* @note added in QGIS 2.14
|
|
*/
|
|
bool testFlag( Flag flag ) const;
|
|
|
|
//! create initialized QgsRenderContext instance from given QgsMapSettings
|
|
//! @note added in 2.4
|
|
static QgsRenderContext fromMapSettings( const QgsMapSettings& mapSettings );
|
|
|
|
/**
|
|
* 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.
|
|
* @note added in QGIS 3.0
|
|
*/
|
|
static QgsRenderContext fromQPainter( QPainter* painter );
|
|
|
|
//getters
|
|
|
|
QPainter* painter();
|
|
|
|
/** Returns the current coordinate transform for the context, or an invalid
|
|
* transform is no coordinate transformation is required.
|
|
*/
|
|
QgsCoordinateTransform coordinateTransform() const;
|
|
|
|
const QgsRectangle& extent() const;
|
|
|
|
const QgsMapToPixel& mapToPixel() const;
|
|
|
|
double scaleFactor() const;
|
|
|
|
bool renderingStopped() const;
|
|
|
|
bool forceVectorOutput() const;
|
|
|
|
/** Returns true if advanced effects such as blend modes such be used
|
|
*/
|
|
bool useAdvancedEffects() const;
|
|
|
|
/** Used to enable or disable advanced effects such as blend modes
|
|
*/
|
|
void setUseAdvancedEffects( bool enabled );
|
|
|
|
bool drawEditingInformation() const;
|
|
|
|
double rendererScale() const;
|
|
|
|
//! Get access to new labeling engine (may be nullptr)
|
|
//! @note not available in Python bindings
|
|
// QgsLabelingEngine* labelingEngine() const;
|
|
|
|
QColor selectionColor() const;
|
|
|
|
/** Returns true if vector selections should be shown in the rendered map
|
|
* @returns true if selections should be shown
|
|
* @see setShowSelection
|
|
* @see selectionColor
|
|
* @note Added in QGIS v2.4
|
|
*/
|
|
bool showSelection() const;
|
|
|
|
//setters
|
|
|
|
/** Sets coordinate transformation.*/
|
|
void setCoordinateTransform( const QgsCoordinateTransform& t );
|
|
|
|
void setMapToPixel( const QgsMapToPixel& mtp );
|
|
void setExtent( const QgsRectangle& extent );
|
|
|
|
void setDrawEditingInformation( bool b );
|
|
|
|
void setRenderingStopped( bool stopped );
|
|
void setScaleFactor( double factor );
|
|
void setRendererScale( double scale );
|
|
void setPainter( QPainter* p );
|
|
|
|
void setForceVectorOutput( bool force );
|
|
|
|
//! Assign new labeling engine
|
|
//! @note not available in Python bindings
|
|
// void setLabelingEngine( QgsLabelingEngine* engine2 );
|
|
void setSelectionColor( const QColor& color );
|
|
|
|
/** Sets whether vector selections should be shown in the rendered map
|
|
* @param showSelection set to true if selections should be shown
|
|
* @see showSelection
|
|
* @see setSelectionColor
|
|
* @note Added in QGIS v2.4
|
|
*/
|
|
void setShowSelection( const bool showSelection );
|
|
|
|
/** Returns true if the rendering optimization (geometry simplification) can be executed
|
|
*/
|
|
bool useRenderingOptimization() const;
|
|
|
|
void setUseRenderingOptimization( bool enabled );
|
|
|
|
//! Added in QGIS v2.4
|
|
const QgsVectorSimplifyMethod& vectorSimplifyMethod() const;
|
|
void setVectorSimplifyMethod( const QgsVectorSimplifyMethod& simplifyMethod );
|
|
|
|
/** Sets the expression context. This context is used for all expression evaluation
|
|
* associated with this render context.
|
|
* @see expressionContext()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
void setExpressionContext( const QgsExpressionContext& context );
|
|
|
|
/** Gets the expression context. This context should be used for all expression evaluation
|
|
* associated with this render context.
|
|
* @see setExpressionContext()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
QgsExpressionContext& expressionContext();
|
|
|
|
/** Gets the expression context (const version). This context should be used for all expression evaluation
|
|
* associated with this render context.
|
|
* @see setExpressionContext()
|
|
* @note added in QGIS 2.12
|
|
* @note not available in Python bindings
|
|
*/
|
|
//const QgsExpressionContext& expressionContext() const;
|
|
|
|
/** Returns pointer to the unsegmentized geometry*/
|
|
const QgsAbstractGeometry* geometry() const;
|
|
/** Sets pointer to original (unsegmentized) geometry*/
|
|
void setGeometry( const QgsAbstractGeometry* geometry );
|
|
|
|
/** Set a filter feature provider used for additional filtering of rendered features.
|
|
* @param ffp the filter feature provider
|
|
* @note added in QGIS 2.14
|
|
* @see featureFilterProvider()
|
|
*/
|
|
void setFeatureFilterProvider( const QgsFeatureFilterProvider* ffp );
|
|
|
|
/** Get the filter feature provider used for additional filtering of rendered features.
|
|
* @return the filter feature provider
|
|
* @note added in QGIS 2.14
|
|
* @see setFeatureFilterProvider()
|
|
*/
|
|
const QgsFeatureFilterProvider* featureFilterProvider() const;
|
|
|
|
/** Sets the segmentation tolerance applied when rendering curved geometries
|
|
@param tolerance the segmentation tolerance*/
|
|
void setSegmentationTolerance( double tolerance );
|
|
/** Gets the segmentation tolerance applied when rendering curved geometries*/
|
|
double segmentationTolerance() const;
|
|
|
|
/** Sets segmentation tolerance type (maximum angle or maximum difference between curve and approximation)
|
|
@param type the segmentation tolerance typename*/
|
|
void setSegmentationToleranceType( QgsAbstractGeometry::SegmentationToleranceType type );
|
|
/** Gets segmentation tolerance type (maximum angle or maximum difference between curve and approximation)*/
|
|
QgsAbstractGeometry::SegmentationToleranceType segmentationToleranceType() const;
|
|
|
|
double convertToPainterUnits( double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale& scale = QgsMapUnitScale() ) const;
|
|
double convertToMapUnits( double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale& scale = QgsMapUnitScale() ) const;
|
|
double convertFromMapUnits( double sizeInMapUnits, QgsUnitTypes::RenderUnit outputUnit ) const;
|
|
|
|
};
|