Andrii Doroshenko (Xrayez) 883ef8570a Expose 2D polygon boolean operations in Geometry singleton
Clipper 6.4.2 is used internally to perform polypaths clipping, as well
as inflating/deflating polypaths. The following methods were added:

```
Geometry.merge_polygons_2d(poly_a, poly_b) # union
Geometry.clip_polygons_2d(poly_a, poly_b) # difference
Geometry.intersect_polygons_2d(poly_a, poly_b) # intersection
Geometry.exclude_polygons_2d(poly_a, poly_b) # xor

Geometry.clip_polyline_with_polygon_2d(poly_a, poly_b)
Geometry.intersect_polyline_with_polygon_2d(poly_a, poly_b)

Geometry.offset_polygon_2d(polygon, delta) # inflate/deflate
Geometry.offset_polyline_2d(polyline, delta) # returns polygons

// This one helps to implement CSG-like behaviour:
Geometry.transform_points_2d(points, transform)
```

All the methods return an array of polygons/polylines. The resulting
polygons could possibly be holes which could be checked with
`Geometry.is_polygon_clockwise()` which was exposed to scripting as well.
2019-05-22 17:12:39 +03:00
..
2019-04-20 02:01:55 +02:00
2019-04-20 02:01:55 +02:00
2019-01-01 12:58:10 +01:00
2019-01-01 12:58:10 +01:00
2019-01-07 17:34:44 +00:00
2019-01-01 12:58:10 +01:00
2019-05-19 13:10:35 +02:00
2019-01-01 12:58:10 +01:00
2019-05-05 14:03:56 +02:00
2019-05-05 14:03:56 +02:00
2019-01-01 12:58:10 +01:00
2019-05-09 06:25:32 -04:00
2019-01-30 06:43:56 +01:00
2019-01-01 12:58:10 +01:00
2019-01-01 12:58:10 +01:00
2019-01-01 12:58:10 +01:00
2019-01-01 12:58:10 +01:00
2019-05-19 13:10:35 +02:00
2019-05-19 13:10:35 +02:00
2019-04-20 02:01:55 +02:00