motiejus/stud

study spacejunk
git clone https://git.jakstys.lt/motiejus/stud.git
Log | Tree | Refs | LICENSE

commit 72806560512d80cad986644f670ba018bfb62790 (tree)
parent eda24cb6bc206e860d83443987e5eceaa0199b43
Author: Motiejus Jakštys <motiejus@uber.com>
Date:   Thu, 13 May 2021 19:52:18 +0300

bugfix when exaggerating bends

Diffstat:
MIV/wm.sql | 16++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/IV/wm.sql b/IV/wm.sql @@ -518,8 +518,7 @@ begin for i in 1..array_length(attrs, 1) loop if attrs[i].isolated and attrs[i].adjsize < desired_size then bend = wm_exaggerate_bend2(bends[i], attrs[i].adjsize, desired_size); - - -- does bend intersect with the previous or next + -- Does bend intersect with the previous or next -- intersect_patience bends? If they do, abort exaggeration for this one. -- Do close-by bends intersect with this one? Special @@ -564,8 +563,17 @@ begin -- bend, because bends always share a line segment together this is -- duplicated in a few places, because PostGIS does not allow (?) -- mutating an array when passed to a function. - bends[i-1] = st_removepoint(bends[i-1], st_npoints(bends[i-1])-1); - bends[i+1] = st_removepoint(bends[i+1], 0); + bends[i-1] = st_addpoint( + st_removepoint(bends[i-1], st_npoints(bends[i-1])-1), + st_pointn(bends[i], 1), + -1 + ); + + bends[i+1] = st_addpoint( + st_removepoint(bends[i+1], 0), + st_pointn(bends[i], st_npoints(bends[i])-1), + 0 + ); if dbgname is not null then insert into wm_debug (stage, name, gen, nbend, way) values(