Skip to content

Commit 12b17b3

Browse files
henriknyalldawson
henrik
authored andcommitted
Changed QList to QVector for faster access.
1 parent 969fe29 commit 12b17b3

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/core/symbology/qgspointdisplacementrenderer.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -61,22 +61,24 @@ void QgsPointDisplacementRenderer::drawGroup( QPointF centerPoint, QgsRenderCont
6161

6262
//calculate max diagonal size from all symbols in group
6363
double diagonal = 0;
64-
QList<double> diagonals;
64+
QVector<double> diagonals(group.size());
6565
double currentDiagonal;
6666

67+
int groupPosition = 0;
6768
for ( const GroupedFeature &feature : group )
6869
{
6970
if ( QgsMarkerSymbol *symbol = feature.symbol() )
7071
{
7172
currentDiagonal = M_SQRT2 * symbol->size( context );
72-
diagonals.append( currentDiagonal );
73+
diagonals[groupPosition] = currentDiagonal;
7374
diagonal = std::max( diagonal, currentDiagonal );
7475

7576
}
7677
else
7778
{
78-
diagonals.append( 0.0 );
79+
diagonals[groupPosition] = 0.0;
7980
}
81+
groupPosition++;
8082
}
8183

8284
QgsSymbolRenderContext symbolContext( context, QgsUnitTypes::RenderMillimeters, 1.0, false );
@@ -244,7 +246,7 @@ void QgsPointDisplacementRenderer::setCenterSymbol( QgsMarkerSymbol *symbol )
244246

245247
void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRenderContext &symbolContext, QPointF centerPoint, int nPosition,
246248
double symbolDiagonal, QList<QPointF> &symbolPositions, QList<QPointF> &labelShifts, double &circleRadius, double &gridRadius,
247-
int &gridSize, QList<double> &diagonals ) const
249+
int &gridSize, QVector<double> &diagonals ) const
248250
{
249251
symbolPositions.clear();
250252
labelShifts.clear();

src/core/symbology/qgspointdisplacementrenderer.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ class CORE_EXPORT QgsPointDisplacementRenderer: public QgsPointDistanceRenderer
172172

173173
//helper functions
174174
void calculateSymbolAndLabelPositions( QgsSymbolRenderContext &symbolContext, QPointF centerPoint, int nPosition, double symbolDiagonal, QList<QPointF> &symbolPositions, QList<QPointF> &labelShifts, double &circleRadius,
175-
double &gridRadius, int &gridSize, QList<double> &diagonals ) const;
175+
double &gridRadius, int &gridSize, QVector<double> &diagonals ) const;
176176
void drawCircle( double radiusPainterUnits, QgsSymbolRenderContext &context, QPointF centerPoint, int nSymbols );
177177
void drawSymbols( const ClusteredGroup &group, QgsRenderContext &context, const QList<QPointF> &symbolPositions );
178178
void drawGrid( int gridSizeUnits, QgsSymbolRenderContext &context,

0 commit comments

Comments
 (0)