65 void QgsHighlight::init()
    96   mPen.setColor( color );
    97   QColor 
fillColor( color.red(), color.green(), color.blue(), 63 );
    99   mBrush.setStyle( Qt::SolidPattern );
   105   mBrush.setColor( fillColor );
   106   mBrush.setStyle( Qt::SolidPattern );
   111   std::unique_ptr<QgsFeatureRenderer> renderer;
   119     Q_FOREACH ( 
QgsSymbol *symbol, renderer->symbols( context ) )
   121       if ( !symbol ) 
continue;
   122       setSymbol( symbol, context, 
color, fillColor );
   130   if ( !symbol ) 
return;
   136     if ( !symbolLayer ) 
continue;
   178   width = std::max( 
width + 2 * mBuffer * scale, mMinWidth * scale );
   185   mPen.setWidth( width );
   188 void QgsHighlight::paintPoint( QPainter *p, 
const QgsPointXY &point )
   202 void QgsHighlight::paintLine( QPainter *p, 
QgsPolylineXY line )
   204   QPolygonF polygon( line.size() );
   206   for ( 
int i = 0; i < line.size(); i++ )
   211   p->drawPolyline( polygon );
   214 void QgsHighlight::paintPolygon( QPainter *p, 
const QgsPolygonXY &polygon )
   220   p->setBrush( mBrush );
   222   for ( 
const auto &sourceRing : polygon )
   224     if ( sourceRing.empty() )
   228     ring.reserve( sourceRing.size() + 1 );
   231     for ( 
const auto &sourceVertex : sourceRing )
   235       if ( ring.isEmpty() || std::abs( ring.back().x() - curVertex.x() ) > 1 || std::abs( ring.back().y() - curVertex.y() ) > 1 )
   237         ring.push_back( curVertex );
   239       lastVertex = curVertex;
   242     ring.push_back( ring.at( 0 ) );
   244     path.addPolygon( ring );
   260     p->setBrush( mBrush );
   262     switch ( mGeometry->
type() )
   268           paintPoint( p, mGeometry->
asPoint() );
   273           for ( 
int i = 0; i < m.size(); i++ )
   275             paintPoint( p, m[i] );
   291           for ( 
int i = 0; i < m.size(); i++ )
   293             paintLine( p, m[i] );
   303           paintPolygon( p, mGeometry->
asPolygon() );
   308           for ( 
int i = 0; i < m.size(); i++ )
   310             paintPolygon( p, m[i] );
   334     QColor tmpColor( 255, 0, 0, 255 );
   335     QColor tmpFillColor( 0, 255, 0, 255 );
   337     std::unique_ptr< QgsFeatureRenderer > renderer = createRenderer( context, tmpColor, tmpFillColor );
   338     if ( layer && renderer )
   342       QImage image = QImage( imageSize.width(), imageSize.height(), QImage::Format_ARGB32 );
   344       QPainter imagePainter( &image );
   345       imagePainter.setRenderHint( QPainter::Antialiasing, 
true );
   349       renderer->startRender( context, layer->
fields() );
   351       renderer->renderFeature( mFeature, context );
   352       renderer->stopRender( context );
   357       int penRed = mPen.color().red();
   358       int penGreen = mPen.color().green();
   359       int penBlue = mPen.color().blue();
   361       double k = ( 255. - mBrush.color().alpha() ) / 255.;
   362       QRgb *line = 
nullptr;
   363       for ( 
int r = 0; r < image.height(); r++ )
   365         line = 
reinterpret_cast<QRgb *
>( image.scanLine( r ) );
   366         for ( 
int c = 0; 
c < image.width(); 
c++ )
   368           int alpha = qAlpha( line[
c] );
   371             int green = qGreen( line[c] );
   372             line[
c] = qRgba( penRed, penGreen, penBlue, qBound<int>( 0, alpha - ( green * k ), 255 ) );
   377       p->drawImage( 0, 0, image );
   398     setVisible( mGeometry );
   413     QgsRectangle rect( topLeft.
x(), topLeft.
y(), topLeft.
x() + imageSize.width()*res, topLeft.
y() - imageSize.height()*res );
 
QgsUnitTypes::RenderUnit widthUnit() const 
Returns the units for the line's width. 
 
A rectangle specified with double values. 
 
Base class for all map layer types. 
 
QgsHighlight(QgsMapCanvas *mapCanvas, const QgsGeometry &geom, QgsMapLayer *layer)
Constructor for QgsHighlight. 
 
bool isEmpty() const 
Returns true if the rectangle is empty. 
 
void updatePosition() override
called on changed extent or resize event to update position of the item 
 
bool isNull() const 
Returns true if the geometry is null (ie, contains no underlying geometry accessible via geometry() )...
 
Abstract base class for all rendered symbols. 
 
OperationResult transform(const QgsCoordinateTransform &ct, QgsCoordinateTransform::TransformDirection direction=QgsCoordinateTransform::ForwardTransform, bool transformZ=false) SIP_THROW(QgsCsException)
Transforms this geometry as described by the coordinate transform ct. 
 
virtual QgsSymbol * subSymbol()
Returns the symbol's sub symbol, if present. 
 
void setXMaximum(double x)
Set the maximum x value. 
 
Simple marker symbol layer, consisting of a rendered shape with solid fill color and an stroke...
 
virtual void setWidth(double width)
 
double yMaximum() const 
Returns the y maximum value (top side of rectangle). 
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context. 
 
int symbolLayerCount() const 
Returns the total number of symbol layers contained in the symbol. 
 
double convertToPainterUnits(double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const 
Converts a size from the specified units to painter units (pixels). 
 
A class to represent a 2D point. 
 
void setFillColor(const QColor &fillColor)
Fill color for the highlight. 
 
QVector< QgsPolylineXY > QgsPolygonXY
Polygon: first item of the list is outer ring, inner rings (if any) start from second item...
 
An abstract class for items that can be placed on the map canvas. 
 
QgsRectangle boundingBox() const 
Returns the bounding box of the geometry. 
 
void setStrokeWidth(double w)
Sets the width of the marker's stroke. 
 
const QgsMapSettings & mapSettings() const 
Gets access to properties used for map rendering. 
 
A geometry is the spatial representation of a feature. 
 
const QgsMapToPixel & mapToPixel() const 
 
QVector< QgsPointXY > QgsMultiPointXY
A collection of QgsPoints that share a common collection of attributes. 
 
QgsPointXY asPoint() const 
Returns the contents of the geometry as a 2-dimensional point. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
QgsCoordinateTransform layerTransform(const QgsMapLayer *layer) const 
Returns the coordinate transform from layer's CRS to destination CRS. 
 
QgsRectangle rect() const 
returns canvas item rectangle in map units 
 
double strokeWidth() const 
 
Map canvas is a class for displaying all GIS data types on a canvas. 
 
QVector< QgsPolygonXY > QgsMultiPolygonXY
A collection of QgsPolygons that share a common collection of attributes. 
 
void setStrokeWidth(double strokeWidth)
 
The QgsMapSettings class contains configuration for rendering of the map. 
 
QgsMultiPolygonXY asMultiPolygon() const 
Returns contents of the geometry as a multi polygon if wkbType is WKBMultiPolygon, otherwise an empty list. 
 
virtual void setColor(const QColor &color)
The fill color. 
 
QVector< QgsPolylineXY > QgsMultiPolylineXY
A collection of QgsPolylines that share a common collection of attributes. 
 
QColor color() const 
Returns the line/stroke color. 
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
 
Perform transforms between map coordinates and device coordinates. 
 
QgsFields fields() const FINAL
Returns the list of fields of this layer. 
 
double yMinimum() const 
Returns the y minimum value (bottom side of rectangle). 
 
QSize outputSize() const 
Returns the size of the resulting map image. 
 
double xMaximum() const 
Returns the x maximum value (right side of rectangle). 
 
QgsUnitTypes::RenderUnit strokeWidthUnit() const 
Returns the unit for the width of the marker's stroke. 
 
void setYMinimum(double y)
Set the minimum y value. 
 
void updateRect()
recalculates needed rectangle 
 
QgsPolylineXY asPolyline() const 
Returns the contents of the geometry as a polyline. 
 
void setRect(const QgsRectangle &r, bool resetRotation=true)
sets canvas item rectangle in map units 
 
void setPainter(QPainter *p)
Sets the destination QPainter for the render operation. 
 
double mapUnitsPerPixel() const 
Returns current map units per pixel. 
 
QgsFeatureRenderer * renderer()
Returns renderer. 
 
QgsMultiPolylineXY asMultiPolyline() const 
Returns contents of the geometry as a multi linestring if wkbType is WKBMultiLineString, otherwise an empty list. 
 
QgsPointXY toMapCoordinates(int x, int y) const 
Transform device coordinates to map (world) coordinates. 
 
A store for object properties. 
 
QgsSymbolLayer * symbolLayer(int layer)
Returns a specific symbol layer contained in the symbol. 
 
double strokeWidth() const 
Returns the width of the marker's stroke. 
 
virtual void setStrokeColor(const QColor &color)
Set stroke color. 
 
A class to represent a vector. 
 
QgsExpressionContext & expressionContext()
Gets the expression context. 
 
int width() const 
Returns the stroke width. 
 
virtual double width() const 
Returns the estimated width for the line symbol layer. 
 
QgsUnitTypes::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer. 
 
QVector< QgsPointXY > QgsPolylineXY
Polyline as represented as a vector of two-dimensional points. 
 
Contains information about the context of a rendering operation. 
 
virtual void setFillColor(const QColor &color)
Set fill color. 
 
void setColor(const QColor &color)
Set line/stroke to color, polygon fill to color with alpha = 63. 
 
void setYMaximum(double y)
Set the maximum y value. 
 
static QgsRenderContext fromMapSettings(const QgsMapSettings &mapSettings)
create initialized QgsRenderContext instance from given QgsMapSettings 
 
QgsMapCanvas * mMapCanvas
pointer to map canvas 
 
bool isMultipart() const 
Returns true if WKB of the geometry is of WKBMulti* type. 
 
void paint(QPainter *p) override
function to be implemented by derived classes 
 
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry. 
 
bool hasGeometry() const 
Returns true if the feature has an associated geometry. 
 
QgsMultiPointXY asMultiPoint() const 
Returns contents of the geometry as a multi point if wkbType is WKBMultiPoint, otherwise an empty lis...
 
QgsMapLayer * layer() const 
Returns the layer for which this highlight has been created. 
 
QgsRectangle extent() const 
Returns the current zoom extent of the map canvas. 
 
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer. 
 
double width() const 
Returns the width of the rectangle. 
 
QColor fillColor() const 
Returns the fill color. 
 
QPointF toCanvasCoordinates(const QgsPointXY &point) const 
transformation from map coordinates to screen coordinates 
 
Represents a vector layer which manages a vector based data sets. 
 
QgsWkbTypes::GeometryType type() const 
Returns type of the geometry as a QgsWkbTypes::GeometryType. 
 
double xMinimum() const 
Returns the x minimum value (left side of rectangle). 
 
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer. 
 
void setXMinimum(double x)
Set the minimum x value. 
 
RenderUnit
Rendering size units. 
 
virtual void setDataDefinedProperty(Property key, const QgsProperty &property)
Sets a data defined property for the layer. 
 
void setWidth(int width)
Set stroke width. 
 
QgsPolygonXY asPolygon() const 
Returns the contents of the geometry as a polygon.