Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikolalysenko/poly-bool

Exact polygon boolean operations
https://github.com/mikolalysenko/poly-bool

Last synced: about 2 months ago
JSON representation

Exact polygon boolean operations

Awesome Lists containing this project

README

        

poly-bool
=========
A robust polygon Boolean library in under 20 lines of code! (Excluding dependencies) Work with *any* kind of polygon, results are accurate to *machine precision*, and under no circumstances will valid input ever crash or produce incorrect output.

# Example

```javascript
var polybool = require('poly-bool')

var a = [[[-1,-1], [-1,1], [1,1], [1,-1]]]
var b = [[[0, 0], [0,2], [2,2], [2,0]]]

console.log(polybool(a, b, 'sub'))
```

#### Output

```javascript
[ [ [ 1, 1 ], [ 1, 0 ], [ 2, 0 ], [ 2, 2 ], [ 0, 2 ], [ 0, 1 ] ] ]
```

# Install

```
npm i poly-bool
```

# API

#### `require('poly-bool')(a, b, op)`
Computes a Boolean set operation between `a` and `b`

* `a,b` are polygons represented by lists of loops of points
* `op` is the operation to apply. Possible values include `'and', 'or', 'xor', 'sub', 'rsub'`

**Returns** A polygon encoding some boolean combination of the components of `a` and `b`

# License
(c) 2015 Mikola Lysenko. MIT License