@@ -48,7 +48,7 @@ inline static QgsRectangle calculateBoundingBox( QGis::WkbType wkbType, const un
48
48
r.setMinimal ();
49
49
50
50
int sizeOfDoubleX = sizeof ( double );
51
- int sizeOfDoubleY = QGis::wkbDimensions ( wkbType ) == 3 /* hasZValue */ ? 2 * sizeof ( double ) : sizeof ( double );
51
+ int sizeOfDoubleY = ( QGis::wkbDimensions ( wkbType ) - 1 ) * sizeof ( double );
52
52
53
53
for ( size_t i = 0 ; i < numPoints; ++i )
54
54
{
@@ -157,7 +157,6 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry(
157
157
bool writeHeader, bool isaLinearRing )
158
158
{
159
159
bool isGeneralizable = true ;
160
- bool hasZValue = QGis::wkbDimensions ( wkbType ) == 3 ;
161
160
bool result = false ;
162
161
163
162
// Save initial WKB settings to use when the simplification creates invalid geometries
@@ -206,7 +205,7 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry(
206
205
r.setMinimal ();
207
206
208
207
int sizeOfDoubleX = sizeof ( double );
209
- int sizeOfDoubleY = QGis::wkbDimensions ( wkbType ) == 3 /* hasZValue */ ? 2 * sizeof ( double ) : sizeof ( double );
208
+ int sizeOfDoubleY = ( QGis::wkbDimensions ( wkbType ) - 1 ) * sizeof ( double );
210
209
211
210
int numPoints;
212
211
memcpy ( &numPoints, sourceWkb, 4 );
@@ -329,7 +328,7 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry(
329
328
memcpy ( &numPoints_i, sourceWkb, 4 );
330
329
QgsRectangle envelope_i = numRings == 1 ? envelope : calculateBoundingBox ( wkbType, sourceWkb + 4 , numPoints_i );
331
330
332
- size_t sourceWkbSize_i = 4 + numPoints_i * ( hasZValue ? 3 : 2 ) * sizeof ( double );
331
+ size_t sourceWkbSize_i = 4 + numPoints_i * QGis::wkbDimensions ( wkbType ) * sizeof ( double );
333
332
size_t targetWkbSize_i = 0 ;
334
333
335
334
result |= simplifyWkbGeometry ( simplifyFlags, wkbType, sourceWkb, sourceWkbSize_i, targetWkb, targetWkbSize_i, envelope_i, map2pixelTol, false , true );
@@ -360,7 +359,7 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry(
360
359
{
361
360
int numPoints_i;
362
361
memcpy ( &numPoints_i, wkb1 + 5 , 4 );
363
- int wkbSize_i = 4 + numPoints_i * ( hasZValue ? 3 : 2 ) * sizeof ( double );
362
+ int wkbSize_i = 4 + numPoints_i * QGis::wkbDimensions ( wkbType ) * sizeof ( double );
364
363
365
364
sourceWkbSize_i += 5 + wkbSize_i;
366
365
wkb1 += 5 + wkbSize_i;
@@ -376,7 +375,7 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry(
376
375
{
377
376
int numPoints_i;
378
377
memcpy ( &numPoints_i, wkb1, 4 );
379
- int wkbSize_i = 4 + numPoints_i * ( hasZValue ? 3 : 2 ) * sizeof ( double );
378
+ int wkbSize_i = 4 + numPoints_i * QGis::wkbDimensions ( wkbType ) * sizeof ( double );
380
379
381
380
sourceWkbSize_i += wkbSize_i;
382
381
wkb1 += wkbSize_i;
0 commit comments