i_overlay 6.0.0

Boolean Operations for 2D Polygons: Supports intersection, union, difference, xor, and self-intersections for all polygon varieties.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "fillRule": 1,
  "subjPaths": [
    [[0, 0], [0, 200], [400, 200], [20, 0]],
    [[10, 100], [20, 100], [40, 140]],
    [[100, 0], [140, 20], [140, 0]],
    [[20, 40], [40, 60], [60, 40]]
  ],
  "clipPaths": [],
  "subject": [[[[[0, 20], [0, 200], [10, 220], [20, 250], [70, 250], [90, 260], [110, 240], [130, 250], [170, 250], [180, 240], [240, 240], [240, 220], [230, 200], [230, 170], [250, 130], [250, 90], [220, 40], [230, 20], [210, 0], [180, 0], [160, 10], [160, 20], [170, 20], [180, 30], [130, 30], [100, 0], [20, 0]], [[30, 80], [10, 40], [30, 20], [50, 20], [60, 10], [90, 10], [90, 30], [60, 30], [60, 40], [80, 40], [80, 50], [60, 50], [50, 60], [50, 70], [70, 60], [90, 60], [100, 50], [140, 50], [140, 60], [120, 60], [130, 70], [140, 70], [150, 80], [180, 80], [160, 70], [180, 50], [200, 50], [200, 80], [180, 100], [180, 110], [200, 110], [200, 150], [220, 170], [220, 200], [200, 220], [180, 220], [160, 240], [140, 220], [120, 220], [100, 230], [60, 230], [20, 190], [20, 160], [50, 160], [40, 150], [30, 150], [40, 130], [40, 110], [20, 110], [10, 90], [70, 90], [70, 80]], [[10, 70], [10, 60], [20, 70]], [[10, 140], [10, 110], [20, 120], [30, 120], [30, 140], [20, 130]], [[30, 240], [20, 230], [50, 230]], [[90, 250], [80, 240], [90, 240]], [[100, 40], [100, 20], [110, 20], [120, 30], [120, 40]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[150, 60], [140, 40], [150, 40], [160, 50]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]], [[230, 230], [210, 230], [220, 220], [220, 210]]], [[[20, 40], [20, 50], [30, 60], [40, 50], [50, 50], [50, 40], [30, 30], [30, 40]]], [[[40, 170], [50, 190], [40, 200], [70, 210], [80, 200], [70, 180], [60, 170]], [[60, 200], [50, 180], [70, 190]]], [[[50, 150], [70, 170], [90, 160], [80, 130], [70, 120], [60, 130]], [[70, 140], [60, 140], [70, 130]], [[70, 160], [60, 150], [70, 150], [80, 140], [80, 150]]], [[[80, 80], [80, 100], [100, 110], [110, 120], [90, 130], [110, 140], [130, 140], [150, 160], [170, 160], [190, 140], [190, 130], [180, 130], [160, 150], [150, 140], [160, 130], [160, 110], [170, 100], [170, 90], [150, 90], [140, 110], [120, 110], [100, 100], [110, 90], [120, 90], [130, 100], [130, 80], [110, 80], [90, 70]], [[90, 90], [90, 80], [100, 80], [100, 90]], [[120, 130], [120, 120], [140, 120], [150, 110], [150, 120], [140, 130]]], [[[80, 180], [100, 190], [100, 200], [130, 200], [110, 190], [120, 180], [130, 160], [100, 150], [100, 170]], [[110, 170], [110, 160], [120, 170]]], [[[120, 10], [130, 20], [140, 20], [150, 10]]], [[[130, 180], [140, 190], [140, 210], [180, 210], [190, 190], [170, 190], [190, 170], [160, 170], [150, 180], [140, 160]], [[150, 200], [150, 190], [160, 180], [160, 190], [170, 200]]], [[[210, 100], [220, 110], [220, 130], [230, 120], [230, 100], [220, 90]]]]],
  "clip": [[]],
  "union": [[[[[0, 20], [0, 200], [10, 220], [20, 250], [70, 250], [90, 260], [110, 240], [130, 250], [170, 250], [180, 240], [240, 240], [240, 220], [230, 200], [230, 170], [250, 130], [250, 90], [220, 40], [230, 20], [210, 0], [180, 0], [160, 10], [160, 20], [170, 20], [180, 30], [130, 30], [100, 0], [20, 0]], [[30, 80], [10, 40], [30, 20], [50, 20], [60, 10], [90, 10], [90, 30], [60, 30], [60, 40], [80, 40], [80, 50], [60, 50], [50, 60], [50, 70], [70, 60], [90, 60], [100, 50], [140, 50], [140, 60], [120, 60], [130, 70], [140, 70], [150, 80], [180, 80], [160, 70], [180, 50], [200, 50], [200, 80], [180, 100], [180, 110], [200, 110], [200, 150], [220, 170], [220, 200], [200, 220], [180, 220], [160, 240], [140, 220], [120, 220], [100, 230], [60, 230], [20, 190], [20, 160], [50, 160], [40, 150], [30, 150], [40, 130], [40, 110], [20, 110], [10, 90], [70, 90], [70, 80]], [[10, 70], [10, 60], [20, 70]], [[10, 140], [10, 110], [20, 120], [30, 120], [30, 140], [20, 130]], [[30, 240], [20, 230], [50, 230]], [[90, 250], [80, 240], [90, 240]], [[100, 40], [100, 20], [110, 20], [120, 30], [120, 40]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[150, 60], [140, 40], [150, 40], [160, 50]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]], [[230, 230], [210, 230], [220, 220], [220, 210]]], [[[20, 40], [20, 50], [30, 60], [40, 50], [50, 50], [50, 40], [30, 30], [30, 40]]], [[[40, 170], [50, 190], [40, 200], [70, 210], [80, 200], [70, 180], [60, 170]], [[60, 200], [50, 180], [70, 190]]], [[[50, 150], [70, 170], [90, 160], [80, 130], [70, 120], [60, 130]], [[70, 140], [60, 140], [70, 130]], [[70, 160], [60, 150], [70, 150], [80, 140], [80, 150]]], [[[80, 80], [80, 100], [100, 110], [110, 120], [90, 130], [110, 140], [130, 140], [150, 160], [170, 160], [190, 140], [190, 130], [180, 130], [160, 150], [150, 140], [160, 130], [160, 110], [170, 100], [170, 90], [150, 90], [140, 110], [120, 110], [100, 100], [110, 90], [120, 90], [130, 100], [130, 80], [110, 80], [90, 70]], [[90, 90], [90, 80], [100, 80], [100, 90]], [[120, 130], [120, 120], [140, 120], [150, 110], [150, 120], [140, 130]]], [[[80, 180], [100, 190], [100, 200], [130, 200], [110, 190], [120, 180], [130, 160], [100, 150], [100, 170]], [[110, 170], [110, 160], [120, 170]]], [[[120, 10], [130, 20], [140, 20], [150, 10]]], [[[130, 180], [140, 190], [140, 210], [180, 210], [190, 190], [170, 190], [190, 170], [160, 170], [150, 180], [140, 160]], [[150, 200], [150, 190], [160, 180], [160, 190], [170, 200]]], [[[210, 100], [220, 110], [220, 130], [230, 120], [230, 100], [220, 90]]]]],
  "intersect": [[]],
  "difference": [[[[[0, 20], [0, 200], [10, 220], [20, 250], [70, 250], [90, 260], [110, 240], [130, 250], [170, 250], [180, 240], [240, 240], [240, 220], [230, 200], [230, 170], [250, 130], [250, 90], [220, 40], [230, 20], [210, 0], [180, 0], [160, 10], [160, 20], [170, 20], [180, 30], [130, 30], [100, 0], [20, 0]], [[30, 80], [10, 40], [30, 20], [50, 20], [60, 10], [90, 10], [90, 30], [60, 30], [60, 40], [80, 40], [80, 50], [60, 50], [50, 60], [50, 70], [70, 60], [90, 60], [100, 50], [140, 50], [140, 60], [120, 60], [130, 70], [140, 70], [150, 80], [180, 80], [160, 70], [180, 50], [200, 50], [200, 80], [180, 100], [180, 110], [200, 110], [200, 150], [220, 170], [220, 200], [200, 220], [180, 220], [160, 240], [140, 220], [120, 220], [100, 230], [60, 230], [20, 190], [20, 160], [50, 160], [40, 150], [30, 150], [40, 130], [40, 110], [20, 110], [10, 90], [70, 90], [70, 80]], [[10, 70], [10, 60], [20, 70]], [[10, 140], [10, 110], [20, 120], [30, 120], [30, 140], [20, 130]], [[30, 240], [20, 230], [50, 230]], [[90, 250], [80, 240], [90, 240]], [[100, 40], [100, 20], [110, 20], [120, 30], [120, 40]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[150, 60], [140, 40], [150, 40], [160, 50]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]], [[230, 230], [210, 230], [220, 220], [220, 210]]], [[[20, 40], [20, 50], [30, 60], [40, 50], [50, 50], [50, 40], [30, 30], [30, 40]]], [[[40, 170], [50, 190], [40, 200], [70, 210], [80, 200], [70, 180], [60, 170]], [[60, 200], [50, 180], [70, 190]]], [[[50, 150], [70, 170], [90, 160], [80, 130], [70, 120], [60, 130]], [[70, 140], [60, 140], [70, 130]], [[70, 160], [60, 150], [70, 150], [80, 140], [80, 150]]], [[[80, 80], [80, 100], [100, 110], [110, 120], [90, 130], [110, 140], [130, 140], [150, 160], [170, 160], [190, 140], [190, 130], [180, 130], [160, 150], [150, 140], [160, 130], [160, 110], [170, 100], [170, 90], [150, 90], [140, 110], [120, 110], [100, 100], [110, 90], [120, 90], [130, 100], [130, 80], [110, 80], [90, 70]], [[90, 90], [90, 80], [100, 80], [100, 90]], [[120, 130], [120, 120], [140, 120], [150, 110], [150, 120], [140, 130]]], [[[80, 180], [100, 190], [100, 200], [130, 200], [110, 190], [120, 180], [130, 160], [100, 150], [100, 170]], [[110, 170], [110, 160], [120, 170]]], [[[120, 10], [130, 20], [140, 20], [150, 10]]], [[[130, 180], [140, 190], [140, 210], [180, 210], [190, 190], [170, 190], [190, 170], [160, 170], [150, 180], [140, 160]], [[150, 200], [150, 190], [160, 180], [160, 190], [170, 200]]], [[[210, 100], [220, 110], [220, 130], [230, 120], [230, 100], [220, 90]]]]],
  "inverseDifference": [[]],
  "xor": [[[[[0, 20], [0, 200], [10, 220], [20, 250], [70, 250], [90, 260], [110, 240], [130, 250], [170, 250], [180, 240], [240, 240], [240, 220], [230, 200], [230, 170], [250, 130], [250, 90], [220, 40], [230, 20], [210, 0], [180, 0], [160, 10], [160, 20], [170, 20], [180, 30], [130, 30], [100, 0], [20, 0]], [[30, 80], [10, 40], [30, 20], [50, 20], [60, 10], [90, 10], [90, 30], [60, 30], [60, 40], [80, 40], [80, 50], [60, 50], [50, 60], [50, 70], [70, 60], [90, 60], [100, 50], [140, 50], [140, 60], [120, 60], [130, 70], [140, 70], [150, 80], [180, 80], [160, 70], [180, 50], [200, 50], [200, 80], [180, 100], [180, 110], [200, 110], [200, 150], [220, 170], [220, 200], [200, 220], [180, 220], [160, 240], [140, 220], [120, 220], [100, 230], [60, 230], [20, 190], [20, 160], [50, 160], [40, 150], [30, 150], [40, 130], [40, 110], [20, 110], [10, 90], [70, 90], [70, 80]], [[10, 70], [10, 60], [20, 70]], [[10, 140], [10, 110], [20, 120], [30, 120], [30, 140], [20, 130]], [[30, 240], [20, 230], [50, 230]], [[90, 250], [80, 240], [90, 240]], [[100, 40], [100, 20], [110, 20], [120, 30], [120, 40]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[150, 60], [140, 40], [150, 40], [160, 50]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]], [[230, 230], [210, 230], [220, 220], [220, 210]]], [[[20, 40], [20, 50], [30, 60], [40, 50], [50, 50], [50, 40], [30, 30], [30, 40]]], [[[40, 170], [50, 190], [40, 200], [70, 210], [80, 200], [70, 180], [60, 170]], [[60, 200], [50, 180], [70, 190]]], [[[50, 150], [70, 170], [90, 160], [80, 130], [70, 120], [60, 130]], [[70, 140], [60, 140], [70, 130]], [[70, 160], [60, 150], [70, 150], [80, 140], [80, 150]]], [[[80, 80], [80, 100], [100, 110], [110, 120], [90, 130], [110, 140], [130, 140], [150, 160], [170, 160], [190, 140], [190, 130], [180, 130], [160, 150], [150, 140], [160, 130], [160, 110], [170, 100], [170, 90], [150, 90], [140, 110], [120, 110], [100, 100], [110, 90], [120, 90], [130, 100], [130, 80], [110, 80], [90, 70]], [[90, 90], [90, 80], [100, 80], [100, 90]], [[120, 130], [120, 120], [140, 120], [150, 110], [150, 120], [140, 130]]], [[[80, 180], [100, 190], [100, 200], [130, 200], [110, 190], [120, 180], [130, 160], [100, 150], [100, 170]], [[110, 170], [110, 160], [120, 170]]], [[[120, 10], [130, 20], [140, 20], [150, 10]]], [[[130, 180], [140, 190], [140, 210], [180, 210], [190, 190], [170, 190], [190, 170], [160, 170], [150, 180], [140, 160]], [[150, 200], [150, 190], [160, 180], [160, 190], [170, 200]]], [[[210, 100], [220, 110], [220, 130], [230, 120], [230, 100], [220, 90]]]]]
}