Opened 3 months ago

Closed 3 months ago

#5787 closed defect (fixed)

ST_ChangeEdgeGeom allows breaking side face labeling

Reported by: strk Owned by: strk
Priority: medium Milestone: PostGIS 3.3.8
Component: topology Version: 3.2.x
Keywords: Cc:

Description

Easy test:

SELECT NULL FROM DropTopology('tc');                                                                                                                                                           
SELECT NULL FROM CreateTopology('tc');                                                                                                                                                         
SELECT NULL FROM TopoGeo_addLinestring('tc', 'LINESTRING(0 0, 5 5, 10 0)');                                                                                                                    
SELECT NULL FROM TopoGeo_addLinestring('tc', 'LINESTRING(0 0, 10 0)');                                                                                                                         
SELECT * FROM ValidateTopology('tc');                                                                                                                                                          
SELECT NULL FROM ST_ChangeEdgeGeom('tc', 1, 'LINESTRING(0 0, 5 -5, 10 0)');                                                                                                                    
SELECT * FROM ValidateTopology('tc');            

Change History (6)

comment:1 by strk, 3 months ago

This bug is the probable cause of #5786

The code checking for consistent topology only verifies that the next CW and CCW edges are the same as before the move, but this is still the case when you have only 2 edges incident to the endpoints, so I guess the missing check is that the rings formed on both sides of the edge being moved are still having the original winding (CW or CCW)

comment:2 by strk, 3 months ago

Fix for this issue: https://git.osgeo.org/gitea/postgis/postgis/pulls/224

Unfortunately the fix doesn't help with #5786

comment:3 by Sandro Santilli <strk@…>, 3 months ago

In 45d2fc8/git:

Check that ST_ChangeEdgeGeom doesn't change winding of rings

References #5787 in master branch (3.6.0dev)

comment:4 by Sandro Santilli <strk@…>, 3 months ago

In 6e378cf/git:

Check that ST_ChangeEdgeGeom doesn't change winding of rings

References #5787 in 3.5 branch (3.5.1dev)

comment:5 by Sandro Santilli <strk@…>, 3 months ago

In 639f030/git:

Check that ST_ChangeEdgeGeom doesn't change winding of rings

References #5787 in 3.4 branch (3.4.4dev)

comment:6 by Sandro Santilli <strk@…>, 3 months ago

Resolution: fixed
Status: newclosed

In 8996cdd/git:

Check that ST_ChangeEdgeGeom doesn't change winding of rings

Closes #5787 in 3.3 branch (3.3.8dev)

Note: See TracTickets for help on using tickets.