Add boolean operations to NSBezierPath like the pathfinder of Adobe Illustrator.
This is a rewrite of VectorBoolean written by Leslie Titze's.
BooleanPath is written by Swift for macOS.
pod 'BooleanPath'
github "Kyome22/BooleanPath"
The sample code is in the project.
import Cocoa
import BooleanPath
let rectPath = NSBezierPath(rect: NSRect(x: 10, y: 30, width: 60, height: 60))
let circlePath = NSBezierPath(ovalIn: NSRect(x: 25, y: 15, width: 50, height: 50))
// Union
let unionPath: NSBezierPath = rectPath.union(circlePath)
unionPath.fill()
// Intersection
let intersectionPath: NSBezierPath = rectPath.intersection(circlePath)
intersectionPath.fill()
// Subtraction
let subtractionPath: NSBezierPath = rectPath.subtraction(circlePath)
subtractionPath.fill()
// Difference
let differencePath: NSBezierPath = rectPath.difference(circlePath)
differencePath.fill()