Best way to find intersection II

Here is another script that finds self intersections:

from GlyphsApp import GSPathFinder
master = Font.masters[Font.masterIndex]

def findOverlaps(layer):
	segments = []
	#for component in layer.components:
	#	AllPaths.append(component.bezierPath)
	for path in layer.paths:
		segments.extend(path.pathSegments())

	if len(segments) == 0:
		return
	operator = GSPathFinder.new()
	origCount = len(segments)
	operator.addIntersections_(segments)
	resultCount = len(segments)
	if origCount != resultCount:
		print "Intersection", layer.parent.name
		layer.color = 2
		return

for glyph in Font.glyphs:
	layer = glyph.layers[master.id]
	findOverlaps(layer)
1 Like