i_overlay 4.5.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
{
  "fillRule": 1,
  "subjPaths": [
    [[-2, 2], [-2, -2], [2, -2], [2, 2]], [[-2, 12], [-2, 8], [2, 8], [2, 12]], [[-2, 22], [-2, 18], [2, 18], [2, 22]], [[-2, 32], [-2, 28], [2, 28], [2, 32]], [[-2, 42], [-2, 38], [2, 38], [2, 42]], [[-2, 52], [-2, 48], [2, 48], [2, 52]], [[-2, 62], [-2, 58], [2, 58], [2, 62]], [[-2, 72], [-2, 68], [2, 68], [2, 72]], [[-2, 82], [-2, 78], [2, 78], [2, 82]], [[-2, 92], [-2, 88], [2, 88], [2, 92]], [[8, 2], [8, -2], [12, -2], [12, 2]], [[8, 12], [8, 8], [12, 8], [12, 12]], [[8, 22], [8, 18], [12, 18], [12, 22]], [[8, 32], [8, 28], [12, 28], [12, 32]], [[8, 42], [8, 38], [12, 38], [12, 42]], [[8, 52], [8, 48], [12, 48], [12, 52]], [[8, 62], [8, 58], [12, 58], [12, 62]], [[8, 72], [8, 68], [12, 68], [12, 72]], [[8, 82], [8, 78], [12, 78], [12, 82]], [[8, 92], [8, 88], [12, 88], [12, 92]], [[18, 2], [18, -2], [22, -2], [22, 2]], [[18, 12], [18, 8], [22, 8], [22, 12]], [[18, 22], [18, 18], [22, 18], [22, 22]], [[18, 32], [18, 28], [22, 28], [22, 32]], [[18, 42], [18, 38], [22, 38], [22, 42]], [[18, 52], [18, 48], [22, 48], [22, 52]], [[18, 62], [18, 58], [22, 58], [22, 62]], [[18, 72], [18, 68], [22, 68], [22, 72]], [[18, 82], [18, 78], [22, 78], [22, 82]], [[18, 92], [18, 88], [22, 88], [22, 92]], [[28, 2], [28, -2], [32, -2], [32, 2]], [[28, 12], [28, 8], [32, 8], [32, 12]], [[28, 22], [28, 18], [32, 18], [32, 22]], [[28, 32], [28, 28], [32, 28], [32, 32]], [[28, 42], [28, 38], [32, 38], [32, 42]], [[28, 52], [28, 48], [32, 48], [32, 52]], [[28, 62], [28, 58], [32, 58], [32, 62]], [[28, 72], [28, 68], [32, 68], [32, 72]], [[28, 82], [28, 78], [32, 78], [32, 82]], [[28, 92], [28, 88], [32, 88], [32, 92]], [[38, 2], [38, -2], [42, -2], [42, 2]], [[38, 12], [38, 8], [42, 8], [42, 12]], [[38, 22], [38, 18], [42, 18], [42, 22]], [[38, 32], [38, 28], [42, 28], [42, 32]], [[38, 42], [38, 38], [42, 38], [42, 42]], [[38, 52], [38, 48], [42, 48], [42, 52]], [[38, 62], [38, 58], [42, 58], [42, 62]], [[38, 72], [38, 68], [42, 68], [42, 72]], [[38, 82], [38, 78], [42, 78], [42, 82]], [[38, 92], [38, 88], [42, 88], [42, 92]], [[48, 2], [48, -2], [52, -2], [52, 2]], [[48, 12], [48, 8], [52, 8], [52, 12]], [[48, 22], [48, 18], [52, 18], [52, 22]], [[48, 32], [48, 28], [52, 28], [52, 32]], [[48, 42], [48, 38], [52, 38], [52, 42]], [[48, 52], [48, 48], [52, 48], [52, 52]], [[48, 62], [48, 58], [52, 58], [52, 62]], [[48, 72], [48, 68], [52, 68], [52, 72]], [[48, 82], [48, 78], [52, 78], [52, 82]], [[48, 92], [48, 88], [52, 88], [52, 92]], [[58, 2], [58, -2], [62, -2], [62, 2]], [[58, 12], [58, 8], [62, 8], [62, 12]], [[58, 22], [58, 18], [62, 18], [62, 22]], [[58, 32], [58, 28], [62, 28], [62, 32]], [[58, 42], [58, 38], [62, 38], [62, 42]], [[58, 52], [58, 48], [62, 48], [62, 52]], [[58, 62], [58, 58], [62, 58], [62, 62]], [[58, 72], [58, 68], [62, 68], [62, 72]], [[58, 82], [58, 78], [62, 78], [62, 82]], [[58, 92], [58, 88], [62, 88], [62, 92]], [[68, 2], [68, -2], [72, -2], [72, 2]], [[68, 12], [68, 8], [72, 8], [72, 12]], [[68, 22], [68, 18], [72, 18], [72, 22]], [[68, 32], [68, 28], [72, 28], [72, 32]], [[68, 42], [68, 38], [72, 38], [72, 42]], [[68, 52], [68, 48], [72, 48], [72, 52]], [[68, 62], [68, 58], [72, 58], [72, 62]], [[68, 72], [68, 68], [72, 68], [72, 72]], [[68, 82], [68, 78], [72, 78], [72, 82]], [[68, 92], [68, 88], [72, 88], [72, 92]], [[78, 2], [78, -2], [82, -2], [82, 2]], [[78, 12], [78, 8], [82, 8], [82, 12]], [[78, 22], [78, 18], [82, 18], [82, 22]], [[78, 32], [78, 28], [82, 28], [82, 32]], [[78, 42], [78, 38], [82, 38], [82, 42]], [[78, 52], [78, 48], [82, 48], [82, 52]], [[78, 62], [78, 58], [82, 58], [82, 62]], [[78, 72], [78, 68], [82, 68], [82, 72]], [[78, 82], [78, 78], [82, 78], [82, 82]], [[78, 92], [78, 88], [82, 88], [82, 92]], [[88, 2], [88, -2], [92, -2], [92, 2]], [[88, 12], [88, 8], [92, 8], [92, 12]], [[88, 22], [88, 18], [92, 18], [92, 22]], [[88, 32], [88, 28], [92, 28], [92, 32]], [[88, 42], [88, 38], [92, 38], [92, 42]], [[88, 52], [88, 48], [92, 48], [92, 52]], [[88, 62], [88, 58], [92, 58], [92, 62]], [[88, 72], [88, 68], [92, 68], [92, 72]], [[88, 82], [88, 78], [92, 78], [92, 82]], [[88, 92], [88, 88], [92, 88], [92, 92]]
  ],
  "clipPaths": [
    [[1, 5], [5, 1], [9, 5], [5, 9]], [[1, 15], [5, 11], [9, 15], [5, 19]], [[1, 25], [5, 21], [9, 25], [5, 29]], [[1, 35], [5, 31], [9, 35], [5, 39]], [[1, 45], [5, 41], [9, 45], [5, 49]], [[1, 55], [5, 51], [9, 55], [5, 59]], [[1, 65], [5, 61], [9, 65], [5, 69]], [[1, 75], [5, 71], [9, 75], [5, 79]], [[1, 85], [5, 81], [9, 85], [5, 89]], [[11, 5], [15, 1], [19, 5], [15, 9]], [[11, 15], [15, 11], [19, 15], [15, 19]], [[11, 25], [15, 21], [19, 25], [15, 29]], [[11, 35], [15, 31], [19, 35], [15, 39]], [[11, 45], [15, 41], [19, 45], [15, 49]], [[11, 55], [15, 51], [19, 55], [15, 59]], [[11, 65], [15, 61], [19, 65], [15, 69]], [[11, 75], [15, 71], [19, 75], [15, 79]], [[11, 85], [15, 81], [19, 85], [15, 89]], [[21, 5], [25, 1], [29, 5], [25, 9]], [[21, 15], [25, 11], [29, 15], [25, 19]], [[21, 25], [25, 21], [29, 25], [25, 29]], [[21, 35], [25, 31], [29, 35], [25, 39]], [[21, 45], [25, 41], [29, 45], [25, 49]], [[21, 55], [25, 51], [29, 55], [25, 59]], [[21, 65], [25, 61], [29, 65], [25, 69]], [[21, 75], [25, 71], [29, 75], [25, 79]], [[21, 85], [25, 81], [29, 85], [25, 89]], [[31, 5], [35, 1], [39, 5], [35, 9]], [[31, 15], [35, 11], [39, 15], [35, 19]], [[31, 25], [35, 21], [39, 25], [35, 29]], [[31, 35], [35, 31], [39, 35], [35, 39]], [[31, 45], [35, 41], [39, 45], [35, 49]], [[31, 55], [35, 51], [39, 55], [35, 59]], [[31, 65], [35, 61], [39, 65], [35, 69]], [[31, 75], [35, 71], [39, 75], [35, 79]], [[31, 85], [35, 81], [39, 85], [35, 89]], [[41, 5], [45, 1], [49, 5], [45, 9]], [[41, 15], [45, 11], [49, 15], [45, 19]], [[41, 25], [45, 21], [49, 25], [45, 29]], [[41, 35], [45, 31], [49, 35], [45, 39]], [[41, 45], [45, 41], [49, 45], [45, 49]], [[41, 55], [45, 51], [49, 55], [45, 59]], [[41, 65], [45, 61], [49, 65], [45, 69]], [[41, 75], [45, 71], [49, 75], [45, 79]], [[41, 85], [45, 81], [49, 85], [45, 89]], [[51, 5], [55, 1], [59, 5], [55, 9]], [[51, 15], [55, 11], [59, 15], [55, 19]], [[51, 25], [55, 21], [59, 25], [55, 29]], [[51, 35], [55, 31], [59, 35], [55, 39]], [[51, 45], [55, 41], [59, 45], [55, 49]], [[51, 55], [55, 51], [59, 55], [55, 59]], [[51, 65], [55, 61], [59, 65], [55, 69]], [[51, 75], [55, 71], [59, 75], [55, 79]], [[51, 85], [55, 81], [59, 85], [55, 89]], [[61, 5], [65, 1], [69, 5], [65, 9]], [[61, 15], [65, 11], [69, 15], [65, 19]], [[61, 25], [65, 21], [69, 25], [65, 29]], [[61, 35], [65, 31], [69, 35], [65, 39]], [[61, 45], [65, 41], [69, 45], [65, 49]], [[61, 55], [65, 51], [69, 55], [65, 59]], [[61, 65], [65, 61], [69, 65], [65, 69]], [[61, 75], [65, 71], [69, 75], [65, 79]], [[61, 85], [65, 81], [69, 85], [65, 89]], [[71, 5], [75, 1], [79, 5], [75, 9]], [[71, 15], [75, 11], [79, 15], [75, 19]], [[71, 25], [75, 21], [79, 25], [75, 29]], [[71, 35], [75, 31], [79, 35], [75, 39]], [[71, 45], [75, 41], [79, 45], [75, 49]], [[71, 55], [75, 51], [79, 55], [75, 59]], [[71, 65], [75, 61], [79, 65], [75, 69]], [[71, 75], [75, 71], [79, 75], [75, 79]], [[71, 85], [75, 81], [79, 85], [75, 89]], [[81, 5], [85, 1], [89, 5], [85, 9]], [[81, 15], [85, 11], [89, 15], [85, 19]], [[81, 25], [85, 21], [89, 25], [85, 29]], [[81, 35], [85, 31], [89, 35], [85, 39]], [[81, 45], [85, 41], [89, 45], [85, 49]], [[81, 55], [85, 51], [89, 55], [85, 59]], [[81, 65], [85, 61], [89, 65], [85, 69]], [[81, 75], [85, 71], [89, 75], [85, 79]], [[81, 85], [85, 81], [89, 85], [85, 89]]
  ],
  "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]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]]]]],
  "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]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]]]]],
  "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]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]]]]],
  "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]], [[120, 240], [120, 230], [140, 230], [130, 240]], [[190, 20], [190, 10], [210, 20], [200, 40]], [[210, 110], [200, 100], [210, 80], [230, 80], [240, 110], [230, 150], [220, 150], [210, 140]]]]]
}