@@ -211,7 +211,7 @@ void QgsMapToolOffsetCurve::canvasMoveEvent( QMouseEvent * e )
211
211
int beforeVertex;
212
212
double leftOf;
213
213
double offset = sqrt ( mOriginalGeometry ->closestSegmentWithContext ( layerCoords, minDistPoint, beforeVertex, &leftOf ) );
214
- if ( ! offset > 0 )
214
+ if ( offset == 0. 0 )
215
215
{
216
216
return ;
217
217
}
@@ -332,6 +332,9 @@ void QgsMapToolOffsetCurve::deleteRubberBandAndGeometry()
332
332
333
333
void QgsMapToolOffsetCurve::setOffsetForRubberBand ( double offset, bool leftSide )
334
334
{
335
+ // need at least geos 3.3 for OffsetCurve tool
336
+ #if defined(GEOS_VERSION_MAJOR) && defined(GEOS_VERSION_MINOR) && \
337
+ ((GEOS_VERSION_MAJOR>3 ) || ((GEOS_VERSION_MAJOR==3 ) && (GEOS_VERSION_MINOR>=3 )))
335
338
if ( !mRubberBand || !mOriginalGeometry )
336
339
{
337
340
return ;
@@ -343,7 +346,6 @@ void QgsMapToolOffsetCurve::setOffsetForRubberBand( double offset, bool leftSide
343
346
return ;
344
347
}
345
348
346
-
347
349
QgsGeometry geomCopy ( *mOriginalGeometry );
348
350
GEOSGeometry* geosGeom = geomCopy.asGeos ();
349
351
if ( geosGeom )
@@ -353,15 +355,7 @@ void QgsMapToolOffsetCurve::setOffsetForRubberBand( double offset, bool leftSide
353
355
int quadSegments = s.value ( " /qgis/digitizing/offset_quad_seg" , 8 ).toInt ();
354
356
double mitreLimit = s.value ( " /qgis/digitizine/offset_miter_limit" , 5.0 ).toDouble ();
355
357
356
- GEOSGeometry* offsetGeom = 0 ;
357
- // need at least geos 3.3 for OffsetCurve tool
358
- #if defined(GEOS_VERSION_MAJOR) && defined(GEOS_VERSION_MINOR) && \
359
- ((GEOS_VERSION_MAJOR>3 ) || ((GEOS_VERSION_MAJOR==3 ) && (GEOS_VERSION_MINOR>=3 )))
360
- offsetGeom = GEOSOffsetCurve ( geosGeom, ( leftSide > 0 ) ? offset : -offset, quadSegments, joinStyle, mitreLimit );
361
- #else
362
- return ;
363
- #endif // GEOS_VERSION
364
-
358
+ GEOSGeometry* offsetGeom = GEOSOffsetCurve ( geosGeom, ( leftSide > 0 ) ? offset : -offset, quadSegments, joinStyle, mitreLimit );
365
359
if ( !offsetGeom )
366
360
{
367
361
deleteRubberBandAndGeometry ();
@@ -380,6 +374,7 @@ void QgsMapToolOffsetCurve::setOffsetForRubberBand( double offset, bool leftSide
380
374
mRubberBand ->setToGeometry ( &mModifiedGeometry , sourceLayer );
381
375
}
382
376
}
377
+ #endif // GEOS_VERSION>=3.3
383
378
}
384
379
385
380
QgsGeometry* QgsMapToolOffsetCurve::linestringFromPolygon ( QgsGeometry* featureGeom, int vertex )
0 commit comments