Boolean operations on paths.
Project description
[![Build Status](https://api.travis-ci.org/typemytype/booleanOperations.svg)](https://travis-ci.org/typemytype/booleanOperations) [![PyPI](https://img.shields.io/pypi/v/booleanOperations.svg)](https://pypi.org/project/booleanOperations/) ![Python Versions](https://img.shields.io/badge/python-2.7%2C%203.4%2C%203.5-blue.svg)
BooleanOperations
Boolean operations on paths based on a super fast [polygon clipper library by Angus Johnson](http://www.angusj.com/delphi/clipper.php).
You can download the latest version from PyPI:
<https://pypi.org/project/booleanOperations>.
Install
[Pip](https://pip.pypa.io/en/stable/) is the recommended tool to install booleanOperations.
To install the latest version:
` pip install booleanOperations `
BooleanOperations depends on the following packages: - [pyclipper](https://pypi.org/project/pyclipper/): Cython wrapper for the C++ Clipper library - [fonttools](github.com/behdad/fonttools) - [ufoLib](https://github.com/unified-font-object/ufoLib)
All dependencies are available on PyPI, so they will be resolved automatically upon installing booleanOperations.
BooleanOperationManager
Containing a BooleanOperationManager handling all boolean operations on paths. Paths must be similar to defcon, robofab contours. A manager draws the result in a pointPen.
from booleanOperations import BooleanOperationManager
manager = BooleanOperationManager()
### BooleanOperationManager()
Create a BooleanOperationManager.
#### manager.union(contours, pointPen)
Performs a union on all contours and draw it in the pointPen. (this is a what a remove overlaps does)
#### manager.difference(contours, clipContours, pointPen)
Knock out the clipContours from the contours and draw it in the pointPen.
#### manager.intersection(contours, clipContours, pointPen)
Draw only the overlaps from the contours with the clipContours`and draw it in the `pointPen.
#### manager.xor(contours, clipContours, pointPen)
Draw only the parts that not overlaps from the contours with the clipContours`and draw it in the `pointPen.
#### manager.getIntersections(contours)
Returning all intersection for the given contours
BooleanGlyph
A glyph like object with boolean powers.
from booleanOperations.booleanGlyph import BooleanGlyph
booleanGlyph = BooleanGlyph(sourceGlyph)
### BooleanGlyph(sourceGlyph)
Create a BooleanGlyph object from sourceGlyph. This is a very shallow glyph object with basic support.
#### booleanGlyph.union(other)
Perform a union with the other. Other must be a glyph or BooleanGlyph object.
result = BooleanGlyph(glyph).union(BooleanGlyph(glyph2)) result = BooleanGlyph(glyph) | BooleanGlyph(glyph2)
#### booleanGlyph.difference(other)
Perform a difference with the other. Other must be a glyph or BooleanGlyph object.
result = BooleanGlyph(glyph).difference(BooleanGlyph(glyph2)) result = BooleanGlyph(glyph) % BooleanGlyph(glyph2)
#### booleanGlyph.intersection(other)
Perform a intersection with the other. Other must be a glyph or BooleanGlyph object.
result = BooleanGlyph(glyph).intersection(BooleanGlyph(glyph2)) result = BooleanGlyph(glyph) & BooleanGlyph(glyph2)
#### booleanGlyph.xor(other)
Perform a xor with the other. Other must be a glyph or BooleanGlyph object.
result = BooleanGlyph(glyph).xor(BooleanGlyph(glyph2)) result = BooleanGlyph(glyph) ^ BooleanGlyph(glyph2)
#### booleanGlyph.removeOverlap()
Perform a union on it self. This will remove all overlapping contours and self intersecting contours.
result = BooleanGlyph(glyph).removeOverlap()
#### booleanGlyph.name
The name of the sourceGlyph.
#### booleanGlyph.unicodes
The unicodes of the sourceGlyph.
#### booleanGlyph.width
The width of the sourceGlyph.
#### booleanGlyph.lib
The lib of the sourceGlyph.
#### booleanGlyph.note
The note of the sourceGlyph.
#### booleanGlyph.contours
List the contours of the glyph.
#### booleanGlyph.components
List the components of the glyph.
#### booleanGlyph.anchors
List the anchors of the glyph.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for booleanOperations-0.6.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da2654471d8f748b7743a4a10f5e07706a470f1f4dff1ffd76b4c859bcfc6ac5 |
|
MD5 | 1c511d105c53968561dd148852e879bd |
|
BLAKE2b-256 | 716dfb99f65d2df776922535683b0d87a5b31cbff8904a359933e1710dec6fcf |