Project

General

Profile

Bug #10808

intersections in path shapes processed incorrectly

Added by Ulrich Pegelow about 4 years ago. Updated over 3 years ago.

Status:
Fixed
Priority:
Low
Category:
Masks
Target version:
Start date:
12/23/2015
Due date:
% Done:

100%

Estimated time:
Affected Version:
2.0.0
System:
all
bitness:
64-bit
hardware architecture:
amd64/x86

Description

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.

IMG_4158_0019.jpg (4.78 MB) IMG_4158_0019.jpg Ulrich Pegelow, 12/23/2015 11:09 PM
IMG_4158_0019_01.jpg.xmp (3.29 KB) IMG_4158_0019_01.jpg.xmp Ulrich Pegelow, 12/23/2015 11:10 PM

Associated revisions

Revision e696cc9c
Added by Aldric Renaudin about 4 years ago

Merge pull request #1097 from AlicVB/bug_10808

masks path : fix a bug in border self intersections. Fixes #10808

History

#1 Updated by Aldric Renaudin about 4 years ago

Hi,

I'll try to figure out what happen here.
A good occasion to be back in dt dev, now that I have more free time...

#2 Updated by Aldric Renaudin about 4 years ago

  • % Done changed from 0 to 100
  • Status changed from New to Fixed

#3 Updated by Roman Lebedev over 3 years ago

  • Target version set to 2.2.0

Also available in: Atom PDF

Go to top