intersections in path shapes processed incorrectly
When drawing path shapes darktable wants to skip intersecting regions in the border line. These intersections are identified in function path.c:_path_find_self_intersection().
In certain circumstances this fails. There are two consequences:
- the shape can no longer be edited as darktable is not able to tell if the mouse is in or close to the shape
- the mask of the shape is not rendered correctly in terms of the feathering area
Attached is an example. See the path shape in the monochrome module.
I get the following intersections identified by the a.m. function (total number of points is 33696 in this case):
intersection: 25544 25617 intersection: 23256 27945 intersection: 23219 27972 intersection: 16 33692
The intersections give the point segments that are to be skipped. I believe that the last intersection is incorrect as it skips almost the whole shape. Most likely the two arguments would need to be swapped (16 <-> 33692).
@Aldric: Could you please have a look? As I made some recent changes to the code in terms of sentinel handling in git master, you might prefer to check out the release-2.0 tag. Both, git master and release-2.0 behave the same.
#2 Updated by Aldric Renaudin about 4 years ago
- % Done changed from 0 to 100
- Status changed from New to Fixed
Applied in changeset darktable|e696cc9c95d2bdf6cbe8210e232da230beb0d7f2.