[geos-commits] [SCM] GEOS branch 3.8 updated. e4a0126ab5b3eabafb8d805544a3f3af299acfbe

git at osgeo.org git at osgeo.org
Fri Nov 6 12:36:54 PST 2020


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, 3.8 has been updated
       via  e4a0126ab5b3eabafb8d805544a3f3af299acfbe (commit)
      from  dfceb3487c2edcba75dac8a47c0153c6ee585305 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e4a0126ab5b3eabafb8d805544a3f3af299acfbe
Author: Martin Davis <mtnclimb at gmail.com>
Date:   Thu Nov 5 15:13:35 2020 -0800

    Remove incorrect isoceles heuristic in QuadEdgeSubdivision::TriangleCircumcentreVisitor
    
    Fix related unit test
    
    Closes #976 in 3.8 branch (3.8.2dev)
    
    The heuristic was added with 56417ce55

diff --git a/NEWS b/NEWS
index b31aaf3..70abeed 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,9 @@
-Changes in 3.8.2
+Changes in 3.8.2dev
 2020-xx-xx
 
 - Bug fixes / improvements
 
+  - Fix Voronoi polygons robustness issue (#976)
   - Fix segfault in SimplePointInAreaLocator caused by casting
     MultiPolygon to Polygon (#1047, Oliver Tan)
   - DistanceOp against geometry with empty components
diff --git a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
index 6c57f47..33caa9c 100644
--- a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
+++ b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
@@ -422,10 +422,9 @@ public:
         Triangle triangle(triEdges[0]->orig().getCoordinate(),
                           triEdges[1]->orig().getCoordinate(), triEdges[2]->orig().getCoordinate());
         Coordinate cc;
-        if (triangle.isIsoceles())
-            triangle.circumcentreDD(cc);
-        else
-            triangle.circumcentre(cc);
+
+        //TODO: identify heuristic to allow calling faster circumcentre() when possible
+        triangle.circumcentreDD(cc);
 
         Vertex ccVertex(cc);
 
diff --git a/tests/unit/triangulate/VoronoiTest.cpp b/tests/unit/triangulate/VoronoiTest.cpp
index 3a6948e..d036697 100644
--- a/tests/unit/triangulate/VoronoiTest.cpp
+++ b/tests/unit/triangulate/VoronoiTest.cpp
@@ -228,10 +228,9 @@ void object::test<10>
     const char* wkt = "0104000080170000000101000080EC51B81E11A20741EC51B81E85A51C415C8FC2F528DC354001010000801F85EB5114A207415C8FC2F585A51C417B14AE47E1BA3540010100008085EB51B818A20741A8C64B3786A51C413E0AD7A3709D35400101000080000000001BA20741FED478E984A51C413E0AD7A3709D3540010100008085EB51B818A20741FED478E984A51C413E0AD7A3709D354001010000800AD7A37016A20741FED478E984A51C413E0AD7A3709D35400101000080000000001BA2074154E3A59B83A51C413E0AD7A3709D3540010100008085EB51B818A2074154E3A59B83A51C413E0AD7A3709D354001010000800AD7A37016A2074154E3A59B83A51C413E0AD7A3709D35400101000080000000001BA20741AAF1D24D82A51C413E0AD7A3709D3540010100008085EB51B818A20741AAF1D24D82A51C413E0AD7A3709D35400101000080F6285C8F12A20741EC51B81E88A51C414160E5D022DB354001010000802222222210A2074152B81EC586A51C414160E5D022DB354001010000804F1BE8B40DA2074152B81EC586A51C414160E5D022DB354001010000807B14AE470BA2074152B81EC586A51C414160E5D022DB354001010000802222222210A20741B81E856B85A51C414160E5D022DB354001010000804F1BE8B40DA20741B8
 1E856B85A51C414160E5D022DB354001010000807B14AE470BA20741B81E856B85A51C414160E5D022DB35400101000080A70D74DA08A20741B81E856B85A51C414160E5D022DB35400101000080D4063A6D06A20741B81E856B85A51C414160E5D022DB354001010000807B14AE470BA207411F85EB1184A51C414160E5D022DB35400101000080A70D74DA08A207411F85EB1184A51C414160E5D022DB35400101000080D4063A6D06A207411F85EB1184A51C414160E5D022DB3540";
 
     const char* expected =
-        "GEOMETRYCOLLECTION EMPTY";
+        "GEOMETRYCOLLECTION (POLYGON ((193602.7711332133 469345.898980198, 193604.4418848486 469348.6016666667, 193605.9466666667 469348.6016666667, 193605.9466666667 469347.7638144172, 193603.2325 469345.391, 193602.9475 469345.391, 193602.8169643859 469345.5051185583, 193602.7711332133 469345.898980198)), POLYGON ((193601.8569454336 469344.9208636514, 193601.865 469344.9666851849, 193602.2037556305 469345.52375, 193602.2585544897 469345.5401343054, 193602.4642389841 469345.148354316, 193602.4577210526 469345.065, 193602.0579897448 469344.3617689955, 193601.8569454336 469344.9208636514)), POLYGON ((193601.2583333333 469342.0043333333, 193601.2583333333 469345.18625, 193601.5616666667 469345.18625, 193601.8569454336 469344.9208636514, 193602.0579897448 469344.3617689955, 193602.0222507725 469343.9301164729, 193601.5161595486 469342.0043333333, 193601.2583333333 469342.0043333333)), POLYGON ((193600.8486366758 469348.6016666667, 193604.4418848486 469348.6016666667, 193602.7711332133 
 469345.898980198, 193602.3274661311 469345.7182269423, 193601.865 469346.1338755144, 193601.5616666667 469346.6791265432, 193600.8486366758 469348.6016666667)), POLYGON ((193599.3943641253 469348.6016666667, 193600.8486366758 469348.6016666667, 193601.5616666667 469346.6791265432, 193601.5616666667 469345.52375, 193601.2583333333 469345.52375, 193600.955 469345.7963755144, 193599.3943641253 469348.6016666667)), POLYGON ((193602.4577210526 469345.065, 193602.4642389841 469345.148354316, 193602.8169643859 469345.5051185583, 193602.9475 469345.391, 193602.9475 469345.065, 193602.4577210526 469345.065)), POLYGON ((193602.2585544897 469345.5401343054, 193602.3274661311 469345.7182269423, 193602.7711332133 469345.898980198, 193602.8169643859 469345.5051185583, 193602.4642389841 469345.148354316, 193602.2585544897 469345.5401343054)), POLYGON ((193602.0222507725 469343.9301164729, 193602.0579897448 469344.3617689955, 193602.4577210526 469345.065, 193602.9475 469345.065, 193602.9475 469344.
 739, 193602.0222507725 469343.9301164729)), POLYGON ((193601.865 469345.52375, 193601.865 469346.1338755144, 193602.3274661311 469345.7182269423, 193602.2585544897 469345.5401343054, 193602.2037556305 469345.52375, 193601.865 469345.52375)), POLYGON ((193601.5616666667 469345.18625, 193601.5616666667 469345.52375, 193601.865 469345.52375, 193601.865 469344.9666851849, 193601.8569454336 469344.9208636514, 193601.5616666667 469345.18625)), POLYGON ((193601.5161595486 469342.0043333333, 193602.0222507725 469343.9301164729, 193602.9475 469344.739, 193603.2325 469344.739, 193603.2325 469342.0043333333, 193601.5161595486 469342.0043333333)), POLYGON ((193598.2316666667 469345.18625, 193598.2316666667 469348.6016666667, 193599.3943641253 469348.6016666667, 193600.955 469345.7963755144, 193600.955 469345.18625, 193598.2316666667 469345.18625)), POLYGON ((193603.2325 469345.065, 193603.2325 469345.391, 193605.9466666667 469347.7638144172, 193605.9466666667 469345.065, 193603.2325 469345.065)
 ), POLYGON ((193603.2325 469344.739, 193603.2325 469345.065, 193605.9466666667 469345.065, 193605.9466666667 469344.739, 193603.2325 469344.739)), POLYGON ((193603.2325 469342.0043333333, 193603.2325 469344.739, 193605.9466666667 469344.739, 193605.9466666667 469342.0043333333, 193603.2325 469342.0043333333)), POLYGON ((193602.9475 469345.065, 193602.9475 469345.391, 193603.2325 469345.391, 193603.2325 469345.065, 193602.9475 469345.065)), POLYGON ((193602.9475 469344.739, 193602.9475 469345.065, 193603.2325 469345.065, 193603.2325 469344.739, 193602.9475 469344.739)), POLYGON ((193601.5616666667 469345.52375, 193601.5616666667 469346.6791265432, 193601.865 469346.1338755144, 193601.865 469345.52375, 193601.5616666667 469345.52375)), POLYGON ((193601.2583333333 469345.18625, 193601.2583333333 469345.52375, 193601.5616666667 469345.52375, 193601.5616666667 469345.18625, 193601.2583333333 469345.18625)), POLYGON ((193600.955 469345.18625, 193600.955 469345.7963755144, 193601.258333333
 3 469345.52375, 193601.2583333333 469345.18625, 193600.955 469345.18625)), POLYGON ((193600.955 469342.0043333333, 193600.955 469345.18625, 193601.2583333333 469345.18625, 193601.2583333333 469342.0043333333, 193600.955 469342.0043333333)), POLYGON ((193598.2316666667 469342.0043333333, 193598.2316666667 469345.18625, 193600.955 469345.18625, 193600.955 469342.0043333333, 193598.2316666667 469342.0043333333)), POLYGON ((193601.865 469344.9666851849, 193601.865 469345.52375, 193602.2037556305 469345.52375, 193601.865 469344.9666851849)))";
 
-    runVoronoi(wkt, expected, 100);
+    runVoronoi(wkt, expected, 0);
 }
 
 } // namespace tut
-

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                             | 3 ++-
 src/triangulate/quadedge/QuadEdgeSubdivision.cpp | 7 +++----
 tests/unit/triangulate/VoronoiTest.cpp           | 5 ++---
 3 files changed, 7 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list