RoboFont makes it possible to perform common boolean path operations (difference, union, intersection and exclusive or) with glyph objects directly, using special characters as operators.
| operation | operator |
|---|---|
| difference | % |
| union | | |
| interesection | & |
| exclusive or | ^ |
Example
Here are the four boolean path operations in action. Note that, for the difference operation, the order of the operands matters.
f = CurrentFont()
g1 = f['A']
g2 = f['B']
# difference 1
r = g1 % g2
g = f.newGlyph('difference_1')
g.appendGlyph(r)
# difference 2
r = g2 % g1
g = f.newGlyph('difference_2')
g.appendGlyph(r)
# union
r = g2 | g1
g = f.newGlyph('union')
g.appendGlyph(r)
# intersection
r = g2 & g1
g = f.newGlyph('intersection')
g.appendGlyph(r)
# xor
r = g2 ^ g1
g = f.newGlyph('xor')
g.appendGlyph(r)
