-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skip processing of child paths in mergeEraser #921
Skip processing of child paths in mergeEraser #921
Conversation
c773a65
to
1952b90
Compare
1952b90
to
41e0765
Compare
Wow, that looks great! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is so good!! Thanks for wading through the blob code to find this!
// If a path is part of a compound path, that parent path will later be processed. | ||
// Skip processing the child path so as not to double-process it. | ||
if (isCompoundPathChild(items[i])) continue; | ||
|
||
// TODO handle compound paths |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe that's what this comment was referring to? =_=;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering about that... is it okay to remove those comments then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're handling them now, so I guess so!
Resolves
Resolves #621
Resolves #120
Resolves #119
Proposed Changes
This PR modifies the shape Boolean processing loop in
Blobbiness.mergeEraser
to skip processing paths that are children of compound paths.Reason for Changes
Both child paths and their parents are included in the list of items that
mergeEraser
will attempt to merge with. If child paths are not specifically excluded,mergeEraser
will attempt to operate on them twice: once with their parent path, and one with them on their own.Fixing this greatly improves the reliability of eraser operations: