Skip to content

Extend Boolean Path operations to include grouped objects (wishlist)

Steps to reproduce:

  • open Inkscape
  • make three circles
  • group them together
  • draw a circle above the group
  • use one of the boolean path operations

What happened?

Inkscape currently gives an error instead of performing the boolean operation.

What should have happened?

  • For Union: Union the shape above the group with all the shapes in the group (preserving the group)
  • For Difference: Difference the shape above the group with each individual shape in the group (also preserving the group).
  • For Intersection: Intersect the shape above the group with each object in the group (also preserving the group)
  • For Exclusion: Exclude the shape above the group with each object in the group (also preserving the group)
  • For Division: Use shape above group to slice every object in the group (preserving the group)
  • For Cut Path: Use the shape above the group to cut every shape in the group, leaving open paths (also preserving the group.

In all the above cases, the top shape should disappear as it does when performing these boolean operations on two paths.

If the top shape is also a group of shapes:

  • Union: All objects in top group should be unioned before unioning with all shapes in bottom group (preserving the bottom group).
  • Difference: All objects in top group should be unioned before differencing with each shape in bottom group (preserving bottom group). Intersection: a copy of each group should be made and all objects in those two groups unioned. The union of the bottom group copy should then be used to intersect each object in the top group, while the top copy should be unioned and then intersected with each object in the bottom group (preserving both groups).
  • Exclusion: a copy of each group should be made and all objects in those two groups unioned. The union of the bottom group copy should then be used to exclude each object in the top group, while the top copy should be unioned and then excluded with each object in the bottom group (preserving both groups).

image

  • Division: All objects in the top group should be Combined (instead of Unioned), and used to slice every object in the bottom group. The top group should then disappear, and the group should be cut into two or more groups based on where the lines cut (all stacks of overlapping shapes each become new smaller groups, as if the group itself were cut into smaller groups to fit the newly cut geometry.
  • Cut Path: All objects in the top group should be Combined (instead of Unioned), and used to cut the paths of every object in the bottom group. The top group should then disappear, preserving the bottom group.

In the case that there is an image object in the group, Inkscape can either ignore it, or give an error message about the group containing an image (or both).

Edited by Adam Belis
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information