From 8f76a6a092e54cbf92771a0cca13808cc825280d Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Thu, 23 Feb 2023 11:03:17 +1000 Subject: [PATCH] Nan z values should not be clipped from rendered geometries Fixes #51796 --- src/core/qgsclipper.h | 4 +- tests/src/core/testqgsclipper.cpp | 45 ++++++++++++++++++ .../test_qgsgeometrygeneratorsymbollayer.py | 34 +++++++++++++ .../expected_geometrygenerator_z_clipping.png | Bin 0 -> 3570075 bytes 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 tests/testdata/control_images/expected_geometrygenerator_z_clipping/expected_geometrygenerator_z_clipping.png diff --git a/src/core/qgsclipper.h b/src/core/qgsclipper.h index d3a7d7a820e..4a0f7522449 100644 --- a/src/core/qgsclipper.h +++ b/src/core/qgsclipper.h @@ -566,9 +566,9 @@ inline bool QgsClipper::inside( double x, double y, double z, Boundary boundary, case YMin: // y > MIN_Y is inside return ( y > boundaryValue ); case ZMax: // z < MAX_Z is inside - return ( z < boundaryValue ); + return z < boundaryValue || std::isnan( z ) ; case ZMin: // z > MIN_Z is inside - return ( z > boundaryValue ); + return z > boundaryValue || std::isnan( z ); } return false; } diff --git a/tests/src/core/testqgsclipper.cpp b/tests/src/core/testqgsclipper.cpp index 31b5a0d0c23..9f752528923 100644 --- a/tests/src/core/testqgsclipper.cpp +++ b/tests/src/core/testqgsclipper.cpp @@ -42,6 +42,7 @@ class TestQgsClipper: public QgsTest void basicWithZ(); void basicWithZInf(); void epsg4978LineRendering(); + void clipGeometryWithNaNZValues(); private: @@ -202,6 +203,50 @@ void TestQgsClipper::epsg4978LineRendering() QVERIFY( render2dCheck( "4978_2D_line_rendering", layerLines.get(), QgsRectangle( -2.5e7, -2.5e7, 2.5e7, 2.5e7 ) ) ); } +void TestQgsClipper::clipGeometryWithNaNZValues() +{ + // nan z values should not result in clipping + QgsGeometry geom = QgsGeometry::fromWkt( QStringLiteral( "PolygonZ ((704425.82266869 7060014.33574043 19.51, 704439.59844559 7060023.73007711 19.69, 704441.6748229 7060020.65665367 19.63, 704428.333268 7060011.65915509 19.42, 704428.15434668 7060011.92446088 0, 704441.23037799 7060020.74289127 0, 704439.51320673 7060023.28462315 0, 704426.00295955 7060014.07136342 0, 704425.82266869 7060014.33574043 19.51))" ) ); + QgsLineString *exteriorRing = qgsgeometry_cast< QgsLineString * >( qgsgeometry_cast< QgsPolygon *>( geom.get() )->exteriorRing() ); + exteriorRing->setZAt( 4, std::numeric_limits::quiet_NaN() ); + exteriorRing->setZAt( 5, std::numeric_limits::quiet_NaN() ); + exteriorRing->setZAt( 6, std::numeric_limits::quiet_NaN() ); + exteriorRing->setZAt( 7, std::numeric_limits::quiet_NaN() ); + + QPolygonF polygon; + polygon << QPointF( 10.4, 20.5 ) << QPointF( 20.2, 30.2 ); + + QVector< double > pointsX = exteriorRing->xVector(); + QVector< double > pointsY = exteriorRing->yVector(); + QVector< double > pointsZ = exteriorRing->zVector(); + QCOMPARE( pointsX.size(), 9 ); + + // 2d trim + QgsRectangle clipRect( 704430.30, 7060007.72, 704456.51, 7060029.03 ); + QgsClipper::trimPolygon( pointsX, pointsY, pointsZ, clipRect ); + // one vertex should be clipped + QCOMPARE( pointsX.size(), 8 ); + QCOMPARE( pointsY.size(), 8 ); + QCOMPARE( pointsZ.size(), 8 ); + QGSCOMPARENEAR( pointsX.at( 0 ), 704430.30, 0.01 ); + QGSCOMPARENEAR( pointsY.at( 0 ), 7060017.389, 0.01 ); + QGSCOMPARENEAR( pointsZ.at( 0 ), 19.568, 0.01 ); + + // 3d trim, clip box contains whole geometry + pointsX = exteriorRing->xVector(); + pointsY = exteriorRing->yVector(); + pointsZ = exteriorRing->zVector(); + QgsBox3d clipRect3D( 704430.30, 7060007.72, 0, 704456.51, 7060029.03, 100 ); + QgsClipper::trimPolygon( pointsX, pointsY, pointsZ, clipRect3D ); + // still only one vertex should be clipped, the nan z values must remain + QCOMPARE( pointsX.size(), 8 ); + QCOMPARE( pointsY.size(), 8 ); + QCOMPARE( pointsZ.size(), 8 ); + QGSCOMPARENEAR( pointsX.at( 0 ), 704430.30, 0.01 ); + QGSCOMPARENEAR( pointsY.at( 0 ), 7060017.389, 0.01 ); + QGSCOMPARENEAR( pointsZ.at( 0 ), 19.568, 0.01 ); +} + bool TestQgsClipper::render2dCheck( const QString &testName, QgsVectorLayer *layer, QgsRectangle extent ) { const QString myTmpDir = QDir::tempPath() + '/'; diff --git a/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py b/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py index c82ce0b3ef6..1a46b00814a 100644 --- a/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py +++ b/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py @@ -483,6 +483,40 @@ class TestQgsGeometryGeneratorSymbolLayerV2(unittest.TestCase): self.report += renderchecker.report() self.assertTrue(res) + def test_clipped_results_with_z(self): + """ + See https://github.com/qgis/QGIS/issues/51796 + """ + lines = QgsVectorLayer('LineString?crs=epsg:2154', 'Lines', 'memory') + self.assertTrue(lines.isValid()) + f = QgsFeature() + f.setGeometry(QgsGeometry.fromWkt('LineStringZ (704425.82266868802253157 7060014.33574043028056622 19.51000000000000156, 704439.59844558802433312 7060023.7300771102309227 19.69000000000000128, 704441.67482289997860789 7060020.65665366966277361 19.62999999999999901, 704428.333267995971255 7060011.65915509033948183 19.42000000000000171)')) + lines.dataProvider().addFeature(f) + + subsymbol = QgsFillSymbol.createSimple({'color': '#0000ff', 'line_style': 'no'}) + + parent_generator = QgsGeometryGeneratorSymbolLayer.create( + {'geometryModifier': 'single_sided_buffer($geometry,-0.32, 1, 2)'}) + parent_generator.setSymbolType(QgsSymbol.Fill) + + parent_generator.setSubSymbol(subsymbol) + + geom_symbol = QgsLineSymbol() + geom_symbol.changeSymbolLayer(0, parent_generator) + lines.renderer().setSymbol(geom_symbol) + + mapsettings = QgsMapSettings(self.mapsettings) + mapsettings.setDestinationCrs(lines.crs()) + mapsettings.setExtent(QgsRectangle(704433.77, 7060006.64, 704454.78, 7060027.95)) + mapsettings.setLayers([lines]) + + renderchecker = QgsMultiRenderChecker() + renderchecker.setMapSettings(mapsettings) + renderchecker.setControlName('expected_geometrygenerator_z_clipping') + res = renderchecker.runTest('geometrygenerator_z_clipping') + self.report += renderchecker.report() + self.assertTrue(res) + def imageCheck(self, name, reference_image, image): self.report += f"

Render {name}

\n" temp_dir = QDir.tempPath() + '/' diff --git a/tests/testdata/control_images/expected_geometrygenerator_z_clipping/expected_geometrygenerator_z_clipping.png b/tests/testdata/control_images/expected_geometrygenerator_z_clipping/expected_geometrygenerator_z_clipping.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ba77a26c248c99ec8d4e3433f52180cc51975c GIT binary patch literal 3570075 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

rNyf<#N7y$$jKmY** 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 vFlM)%4{X8doss|n0!