void QgsLineSymbolV2::renderPolylineUsingLayer( QgsLineSymbolLayerV2 *layer, const QPolygonF &points, QgsSymbolV2RenderContext &context ) { QgsPaintEffect* effect = layer->paintEffect(); if ( effect && effect->enabled() ) { QPainter* p = context.renderContext().painter(); p->save(); p->translate( points.boundingRect().topLeft() ); effect->begin( context.renderContext() ); layer->renderPolyline( points.translated( -points.boundingRect().topLeft() ), context ); effect->end( context.renderContext() ); p->restore(); } else { layer->renderPolyline( points, context ); } }
void QgsFillSymbolV2::renderPolygonUsingLayer( QgsSymbolLayerV2* layer, const QPolygonF& points, QList<QPolygonF>* rings, QgsSymbolV2RenderContext& context ) { QgsSymbolV2::SymbolType layertype = layer->type(); QgsPaintEffect* effect = layer->paintEffect(); if ( effect && effect->enabled() ) { QRectF bounds = polygonBounds( points, rings ); QList<QPolygonF>* translatedRings = translateRings( rings, -bounds.left(), -bounds.top() ); QPainter* p = context.renderContext().painter(); p->save(); p->translate( bounds.topLeft() ); effect->begin( context.renderContext() ); if ( layertype == QgsSymbolV2::Fill ) { (( QgsFillSymbolLayerV2* )layer )->renderPolygon( points.translated( -bounds.topLeft() ), translatedRings, context ); } else if ( layertype == QgsSymbolV2::Line ) { (( QgsLineSymbolLayerV2* )layer )->renderPolygonOutline( points.translated( -bounds.topLeft() ), translatedRings, context ); } delete translatedRings; effect->end( context.renderContext() ); p->restore(); } else { if ( layertype == QgsSymbolV2::Fill ) { (( QgsFillSymbolLayerV2* )layer )->renderPolygon( points, rings, context ); } else if ( layertype == QgsSymbolV2::Line ) { (( QgsLineSymbolLayerV2* )layer )->renderPolygonOutline( points, rings, context ); } } }
void QgsMarkerSymbolV2::renderPointUsingLayer( QgsMarkerSymbolLayerV2* layer, const QPointF& point, QgsSymbolV2RenderContext& context ) { static QPointF nullPoint( 0, 0 ); QgsPaintEffect* effect = layer->paintEffect(); if ( effect && effect->enabled() ) { QPainter* p = context.renderContext().painter(); p->save(); p->translate( point ); effect->begin( context.renderContext() ); layer->renderPoint( nullPoint, context ); effect->end( context.renderContext() ); p->restore(); } else { layer->renderPoint( point, context ); } }