GraphiteEditor / GraphiteEditor/Graphite

Add other boolean modes to the Boolean Operation node

Open
#4,103 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

On [discord](https://discord.com/channels/731730685944922173/731738914812854303/1499412005428396122) boldline suggested to implement the following feature:
Would you consider adding a "merge" option to the boolean tools? Specifically one that functions like in Illustrator and in Vectorstyler? Essentially, if the two objects are the same color, it will merge them together, if they are different colors, it will cookie-cutter them but leave both pieces there. And also @Keavon suggested to add the other boolean modes that can be constructed out of the existing boolean ops algorithm from the Linesweeper library that would be expected in other vector graphics apps.

So far Graphite implemented: Union, Subtract front, Subtract back, Intersect, Difference (this one is equivalent to Illustrator's Exclude, VectorStyler's Remove Overlaps, Inkscape's Exclusion. But maybe a better name can be used for this?)

My proposal is to add the following operators to the Boolean Operation Node:

- Merge: Apply union for all the objects that share the same fill property, removes strokes from all objects (Equivalent of Illustrator's Merge, VectorStyler's Merge functionality)
- Divide/Fracture: Calculates all the overlapping and non overlapping parts (Equivalent of Illustrator's Divide, VectorStyler's Divide, Inkscape's Fracture)
- Trim: Subtracts top objects from the objects below them and keeps the remainder of the operation and also the top objects, removes stroke from all objects (Equivalent of Illustrator's Trim, VectorStyler's Trim functionality)

Reference material:
How to Use the Pathfinder Panel in Adobe Illustrator (Full Overview)
https://www.youtube.com/watch?v=mkNnyDEVKUY
The Pathfinder Tool Explained // Adobe Illustrator Tutorial
https://www.youtube.com/watch?v=tJLMnaP3VyM
https://helpx.adobe.com/illustrator/desktop/manage-objects/reshape-transform-objects/pathfinder-panel-overview.html

Boolean Operations Reference Guide
https://vectorstyler.com/forum/topic/1758/boolean-operations-reference-guide/2

All Boolean Path Operations in Inkscape Explained (with Examples)
https://www.youtube.com/watch?v=Xr8HqSwqn2E
https://inkscape-manuals.readthedocs.io/en/latest/boolean-operations.html

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Boolean Operation node and the existing boolean operations algorithm from the Linesweeper library. Compare the proposed Merge, Divide/Fracture, and Trim semantics with the linked Illustrator, VectorStyler, and Inkscape references. Done means the node supports the proposed modes with the specified fill and stroke behavior and matches the expected vector results.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.