From 56efc3cc706aa49052258de6eb42f791070b8e3f Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 19 Jun 2017 16:07:08 +0000 Subject: [PATCH] Add test for multi-arch curve It shows how MaxError configuration for ST_CurveToLine is useful as it results in different number of segments per quadrant based on radius of each arc... git-svn-id: http://svn.osgeo.org/postgis/trunk@15431 b70326c6-7e19-0410-871a-916f4a2858ee --- regress/curvetoline.sql | 12 ++++++++++++ regress/curvetoline_expected | 2 ++ 2 files changed, 14 insertions(+) diff --git a/regress/curvetoline.sql b/regress/curvetoline.sql index 110269a93..8cf575b0a 100644 --- a/regress/curvetoline.sql +++ b/regress/curvetoline.sql @@ -48,5 +48,17 @@ SELECT 'semicircle3.sym.ret', ST_AsText(ST_SnapToGrid(ST_CurveToLine( 2, -- Above is max angle between generating radii 3 -- Symmetric and RetainAngle flags ), 2)); +SELECT 'multiarch1', ST_AsText(ST_SnapToGrid(ST_CurveToLine( + 'CIRCULARSTRING(0 0,100 -100,200 0,400 200,600 0)'::geometry, + radians(45), -- Tolerance + 2, -- Above is max angle between generating radii + 3 -- Symmetric and RetainAngle flags +), 2)); +SELECT 'multiarch1.maxerr20.sym', ST_AsText(ST_SnapToGrid(ST_CurveToLine( + 'CIRCULARSTRING(0 0,100 -100,200 0,400 200,600 0)'::geometry, + 20, -- Tolerance + 1, -- Above is max distance between curve and line + 1 -- Symmetric +), 2)); diff --git a/regress/curvetoline_expected b/regress/curvetoline_expected index 99612720a..fb93668c5 100644 --- a/regress/curvetoline_expected +++ b/regress/curvetoline_expected @@ -4,3 +4,5 @@ semicircle2.sym|LINESTRING(0 0,50 -86,150 -86,200 0) semicircle3|LINESTRING(0 0,24 -64,82 -98,150 -86,194 -34,200 0) semicircle3.sym|LINESTRING(0 0,20 -58,70 -96,130 -96,180 -58,200 0) semicircle3.sym.ret|LINESTRING(0 0,14 -50,66 -94,134 -94,186 -50,200 0) +multiarch1|LINESTRING(0 0,30 -70,100 -100,170 -70,200 0,258 142,400 200,542 142,600 0) +multiarch1.maxerr20.sym|LINESTRING(0 0,50 -86,150 -86,200 0,258 142,400 200,542 142,600 0) -- 2.40.0