clipper2-ts 2.0.1-16 → 2.0.1-18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Engine.d.ts CHANGED
@@ -170,6 +170,7 @@ export declare class ClipperBase {
170
170
  protected readonly horzJoinList: HorzJoin[];
171
171
  protected currentLocMin: number;
172
172
  protected currentBotY: number;
173
+ private curXValidAtTop;
173
174
  protected isSortedMinimaList: boolean;
174
175
  protected hasOpenPaths: boolean;
175
176
  protected usingPolytree: boolean;
@@ -198,13 +199,13 @@ export declare class ClipperBase {
198
199
  private static isHorizontal;
199
200
  private static isHeadingRightHorz;
200
201
  private static isHeadingLeftHorz;
201
- private static swapActives;
202
202
  private static getPolyType;
203
203
  private static isSamePolyType;
204
204
  private static setDx;
205
205
  private static nextVertex;
206
206
  private static prevPrevVertex;
207
- private static isMaxima;
207
+ private static isMaximaVertex;
208
+ private static isMaximaEdge;
208
209
  private static getMaximaPair;
209
210
  private boundingBoxesOverlap;
210
211
  protected clearSolutionOnly(): void;
@@ -229,7 +230,6 @@ export declare class ClipperBase {
229
230
  private convertHorzSegsToJoins;
230
231
  private updateHorzSegment;
231
232
  private setHorzSegHeadingForward;
232
- private horzSegSort;
233
233
  protected duplicateOp(op: OutPt, insertAfter: boolean): OutPt;
234
234
  protected getRealOutRec(outRec: OutRec | null): OutRec | null;
235
235
  private doIntersections;
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../src/Engine.ts"],"names":[],"mappings":"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"}
package/dist/Engine.js CHANGED
@@ -172,6 +172,23 @@ export class HorzJoin {
172
172
  this.op2 = rtol;
173
173
  }
174
174
  }
175
+ function compareHorzSegments(hs1, hs2) {
176
+ if (hs1.rightOp === null) {
177
+ return hs2.rightOp === null ? 0 : 1;
178
+ }
179
+ if (hs2.rightOp === null)
180
+ return -1;
181
+ return hs1.leftOp.pt.x - hs2.leftOp.pt.x;
182
+ }
183
+ function compareIntersectNodes(a, b) {
184
+ if (a.pt.y !== b.pt.y)
185
+ return (a.pt.y > b.pt.y) ? -1 : 1;
186
+ if (a.pt.x !== b.pt.x)
187
+ return (a.pt.x < b.pt.x) ? -1 : 1;
188
+ if (a.edge1.curX !== b.edge1.curX)
189
+ return (a.edge1.curX < b.edge1.curX) ? -1 : 1;
190
+ return (a.edge2.curX < b.edge2.curX) ? -1 : (a.edge2.curX > b.edge2.curX) ? 1 : 0;
191
+ }
175
192
  ///////////////////////////////////////////////////////////////////
176
193
  // Important: UP and DOWN here are premised on Y-axis positive down
177
194
  // displays, which is the orientation used in Clipper's development.
@@ -217,18 +234,22 @@ export const ClipperEngine = {
217
234
  const path = paths[i];
218
235
  let v0 = null;
219
236
  let prevV = null;
237
+ // nb: vertexList holds only each path's head vertex; the rest of the
238
+ // chain stays reachable through the next/prev links
239
+ let prevPt = null;
220
240
  for (let j = 0, len2 = path.length; j < len2; j++) {
221
241
  const pt = path[j];
222
242
  if (v0 === null) {
223
243
  v0 = new Vertex(pt, VertexFlags.None, null);
224
244
  vertexList.push(v0);
225
245
  prevV = v0;
246
+ prevPt = pt;
226
247
  }
227
- else if (!(prevV.pt.x === pt.x && prevV.pt.y === pt.y)) { // ie skips duplicates
248
+ else if (!(prevPt.x === pt.x && prevPt.y === pt.y)) { // ie skips duplicates
228
249
  const currV = new Vertex(pt, VertexFlags.None, prevV);
229
- vertexList.push(currV);
230
250
  prevV.next = currV;
231
251
  prevV = currV;
252
+ prevPt = pt;
232
253
  }
233
254
  }
234
255
  if (prevV?.prev == null)
@@ -464,6 +485,10 @@ export class ClipperBase {
464
485
  horzJoinList = [];
465
486
  currentLocMin = 0;
466
487
  currentBotY = 0;
488
+ // True when every active edge's curX already equals topX(edge, topY) for the
489
+ // scanbeam top being processed (set by buildIntersectList when the SEL scan
490
+ // finds no inversions, i.e. no intersections; consumed by doTopOfScanbeam).
491
+ curXValidAtTop = false;
467
492
  isSortedMinimaList = false;
468
493
  hasOpenPaths = false;
469
494
  usingPolytree = false;
@@ -581,7 +606,9 @@ export class ClipperBase {
581
606
  return InternalClipper.roundToEven(ae.bot.x + ae.dx * (currentY - ae.bot.y));
582
607
  }
583
608
  static isHorizontal(ae) {
584
- return ae.top.y === ae.bot.y;
609
+ // dx is ±Infinity iff top.y === bot.y (see getDx); every mutation of
610
+ // bot/top must be followed by setDx() for this to hold.
611
+ return ae.dx === Number.NEGATIVE_INFINITY || ae.dx === Number.POSITIVE_INFINITY;
585
612
  }
586
613
  static isHeadingRightHorz(ae) {
587
614
  return ae.dx === Number.NEGATIVE_INFINITY;
@@ -589,9 +616,6 @@ export class ClipperBase {
589
616
  static isHeadingLeftHorz(ae) {
590
617
  return ae.dx === Number.POSITIVE_INFINITY;
591
618
  }
592
- static swapActives(ae1, ae2) {
593
- return [ae2, ae1];
594
- }
595
619
  static getPolyType(ae) {
596
620
  return ae.localMin.polytype;
597
621
  }
@@ -607,15 +631,11 @@ export class ClipperBase {
607
631
  static prevPrevVertex(ae) {
608
632
  return ae.windDx > 0 ? ae.vertexTop.prev.prev : ae.vertexTop.next.next;
609
633
  }
610
- static isMaxima(vertexOrAe) {
611
- if ('flags' in vertexOrAe) {
612
- // It's a Vertex
613
- return (vertexOrAe.flags & VertexFlags.LocalMax) !== VertexFlags.None;
614
- }
615
- else {
616
- // It's an Active
617
- return ClipperBase.isMaxima(vertexOrAe.vertexTop);
618
- }
634
+ static isMaximaVertex(v) {
635
+ return (v.flags & VertexFlags.LocalMax) !== VertexFlags.None;
636
+ }
637
+ static isMaximaEdge(ae) {
638
+ return (ae.vertexTop.flags & VertexFlags.LocalMax) !== VertexFlags.None;
619
639
  }
620
640
  static getMaximaPair(ae) {
621
641
  let ae2 = ae.nextInAEL;
@@ -629,15 +649,21 @@ export class ClipperBase {
629
649
  // optimization (not in C# reference): fast bounding box overlap check for segment intersection
630
650
  boundingBoxesOverlap(p1, p2, p3, p4) {
631
651
  // segment 1: p1-p2, segment 2: p3-p4
632
- const min1x = Math.min(p1.x, p2.x);
633
- const max1x = Math.max(p1.x, p2.x);
634
- const min1y = Math.min(p1.y, p2.y);
635
- const max1y = Math.max(p1.y, p2.y);
636
- const min2x = Math.min(p3.x, p4.x);
637
- const max2x = Math.max(p3.x, p4.x);
638
- const min2y = Math.min(p3.y, p4.y);
639
- const max2y = Math.max(p3.y, p4.y);
640
- return !(max1x < min2x || max2x < min1x || max1y < min2y || max2y < min1y);
652
+ const min1x = p1.x < p2.x ? p1.x : p2.x;
653
+ const max2x = p3.x > p4.x ? p3.x : p4.x;
654
+ if (max2x < min1x)
655
+ return false;
656
+ const max1x = p1.x > p2.x ? p1.x : p2.x;
657
+ const min2x = p3.x < p4.x ? p3.x : p4.x;
658
+ if (max1x < min2x)
659
+ return false;
660
+ const min1y = p1.y < p2.y ? p1.y : p2.y;
661
+ const max2y = p3.y > p4.y ? p3.y : p4.y;
662
+ if (max2y < min1y)
663
+ return false;
664
+ const max1y = p1.y > p2.y ? p1.y : p2.y;
665
+ const min2y = p3.y < p4.y ? p3.y : p4.y;
666
+ return max1y >= min2y;
641
667
  }
642
668
  clearSolutionOnly() {
643
669
  while (this.actives !== null)
@@ -676,6 +702,7 @@ export class ClipperBase {
676
702
  this.currentLocMin = 0;
677
703
  this.actives = null;
678
704
  this.sel = null;
705
+ this.curXValidAtTop = false;
679
706
  this.succeeded = true;
680
707
  }
681
708
  upgradeScanlineStructureFromArray() {
@@ -878,15 +905,23 @@ export class ClipperBase {
878
905
  // Now if the LeftB isn't on the left of RightB then we need swap them.
879
906
  if (leftBound !== null && rightBound !== null) {
880
907
  if (ClipperBase.isHorizontal(leftBound)) {
881
- if (ClipperBase.isHeadingRightHorz(leftBound))
882
- [leftBound, rightBound] = ClipperBase.swapActives(leftBound, rightBound);
908
+ if (ClipperBase.isHeadingRightHorz(leftBound)) {
909
+ const tmp = leftBound;
910
+ leftBound = rightBound;
911
+ rightBound = tmp;
912
+ }
883
913
  }
884
914
  else if (ClipperBase.isHorizontal(rightBound)) {
885
- if (ClipperBase.isHeadingLeftHorz(rightBound))
886
- [leftBound, rightBound] = ClipperBase.swapActives(leftBound, rightBound);
915
+ if (ClipperBase.isHeadingLeftHorz(rightBound)) {
916
+ const tmp = leftBound;
917
+ leftBound = rightBound;
918
+ rightBound = tmp;
919
+ }
887
920
  }
888
921
  else if (leftBound.dx < rightBound.dx) {
889
- [leftBound, rightBound] = ClipperBase.swapActives(leftBound, rightBound);
922
+ const tmp = leftBound;
923
+ leftBound = rightBound;
924
+ rightBound = tmp;
890
925
  }
891
926
  }
892
927
  else if (leftBound === null) {
@@ -1155,14 +1190,18 @@ export class ClipperBase {
1155
1190
  this.updateEdgeIntoAEL(horz); // this is the end of an intermediate horiz.
1156
1191
  }
1157
1192
  convertHorzSegsToJoins() {
1193
+ // compact valid segments to [0, k) so the sort below only orders those
1194
+ const list = this.horzSegList;
1158
1195
  let k = 0;
1159
- for (const hs of this.horzSegList) {
1196
+ for (let i = 0, len = list.length; i < len; i++) {
1197
+ const hs = list[i];
1160
1198
  if (this.updateHorzSegment(hs))
1161
- k++;
1199
+ list[k++] = hs;
1162
1200
  }
1163
1201
  if (k < 2)
1164
1202
  return;
1165
- this.horzSegList.sort((a, b) => this.horzSegSort(a, b));
1203
+ list.length = k;
1204
+ this.horzSegList.sort(compareHorzSegments);
1166
1205
  for (let i = 0; i < k - 1; i++) {
1167
1206
  const hs1 = this.horzSegList[i];
1168
1207
  // for each HorzSegment, find others that overlap
@@ -1241,14 +1280,6 @@ export class ClipperBase {
1241
1280
  }
1242
1281
  return true;
1243
1282
  }
1244
- horzSegSort(hs1, hs2) {
1245
- if (hs1.rightOp === null) {
1246
- return hs2.rightOp === null ? 0 : 1;
1247
- }
1248
- if (hs2.rightOp === null)
1249
- return -1;
1250
- return hs1.leftOp.pt.x - hs2.leftOp.pt.x;
1251
- }
1252
1283
  duplicateOp(op, insertAfter) {
1253
1284
  const result = new OutPt(op.pt, op.outrec);
1254
1285
  if (insertAfter) {
@@ -1278,13 +1309,18 @@ export class ClipperBase {
1278
1309
  }
1279
1310
  }
1280
1311
  doTopOfScanbeam(y) {
1312
+ // When the preceding buildIntersectList found no inversions, every edge's
1313
+ // curX already equals topX(ae, y), so skip recomputing it (topX is pure in
1314
+ // ae.bot/ae.dx/y, none of which change below for edges not at their top).
1315
+ const curXValid = this.curXValidAtTop;
1316
+ this.curXValidAtTop = false;
1281
1317
  this.sel = null; // sel is reused to flag horizontals (see PushHorz below)
1282
1318
  let ae = this.actives;
1283
1319
  while (ae !== null) {
1284
1320
  // NB 'ae' will never be horizontal here
1285
1321
  if (ae.top.y === y) {
1286
1322
  ae.curX = ae.top.x;
1287
- if (ClipperBase.isMaxima(ae)) {
1323
+ if (ClipperBase.isMaximaEdge(ae)) {
1288
1324
  ae = this.doMaxima(ae); // TOP OF BOUND (MAXIMA)
1289
1325
  continue;
1290
1326
  }
@@ -1298,7 +1334,7 @@ export class ClipperBase {
1298
1334
  }
1299
1335
  }
1300
1336
  }
1301
- else { // i.e. not the top of the edge
1337
+ else if (!curXValid) { // i.e. not the top of the edge
1302
1338
  ae.curX = ClipperBase.topX(ae, y); // TopX already returns correctly rounded integer
1303
1339
  }
1304
1340
  ae = ae.nextInAEL;
@@ -1492,7 +1528,13 @@ export class ClipperBase {
1492
1528
  return false;
1493
1529
  // Calculate edge positions at the top of the current scanbeam, and from this
1494
1530
  // we will determine the intersections required to reach these new positions.
1495
- this.adjustCurrXAndCopyToSEL(topY);
1531
+ // If the AEL is already sorted by the new curX values (no adjacent
1532
+ // inversions), no edges intersect within this scanbeam, so skip the merge
1533
+ // sort; every edge's curX is then already correct for topY.
1534
+ if (!this.adjustCurrXAndCopyToSEL(topY)) {
1535
+ this.curXValidAtTop = true;
1536
+ return false;
1537
+ }
1496
1538
  // Find all edge intersections in the current scanbeam using a stable merge
1497
1539
  // sort that ensures only adjacent edges are intersecting. Intersect info is
1498
1540
  // stored in intersectList ready to be processed in ProcessIntersectList.
@@ -1548,18 +1590,7 @@ export class ClipperBase {
1548
1590
  // that edge intersections are processed from the bottom up, but it's also
1549
1591
  // crucial that intersections only occur between adjacent edges.
1550
1592
  // First we do a quicksort so intersections proceed in a bottom up order ...
1551
- this.intersectList.sort((a, b) => {
1552
- if (a.pt.y !== b.pt.y)
1553
- return (a.pt.y > b.pt.y) ? -1 : 1;
1554
- if (a.pt.x !== b.pt.x)
1555
- return (a.pt.x < b.pt.x) ? -1 : 1;
1556
- // Tiebreaker: when points are identical, sort by edge1's curX position
1557
- // This provides deterministic ordering matching C# IntroSort behavior
1558
- if (a.edge1.curX !== b.edge1.curX)
1559
- return (a.edge1.curX < b.edge1.curX) ? -1 : 1;
1560
- // Final tiebreaker: edge2's curX
1561
- return (a.edge2.curX < b.edge2.curX) ? -1 : (a.edge2.curX > b.edge2.curX) ? 1 : 0;
1562
- });
1593
+ this.intersectList.sort(compareIntersectNodes);
1563
1594
  // Now as we process these intersections, we must sometimes adjust the order
1564
1595
  // to ensure that intersecting edges are always adjacent ...
1565
1596
  for (let i = 0; i < this.intersectList.length; ++i) {
@@ -1582,19 +1613,28 @@ export class ClipperBase {
1582
1613
  edgesAdjacentInAEL(inode) {
1583
1614
  return (inode.edge1.nextInAEL === inode.edge2) || (inode.edge1.prevInAEL === inode.edge2);
1584
1615
  }
1616
+ // Returns true if any adjacent pair is inverted at topY (i.e. at least one
1617
+ // intersection exists within this scanbeam).
1585
1618
  adjustCurrXAndCopyToSEL(topY) {
1586
1619
  let ae = this.actives;
1587
1620
  this.sel = ae;
1621
+ let prevX = Number.NEGATIVE_INFINITY;
1622
+ let inverted = false;
1588
1623
  while (ae !== null) {
1589
1624
  ae.prevInSEL = ae.prevInAEL;
1590
1625
  ae.nextInSEL = ae.nextInAEL;
1591
1626
  ae.jump = ae.nextInSEL;
1592
1627
  // it is safe to ignore 'joined' edges here because
1593
1628
  // if necessary they will be split in IntersectEdges()
1594
- ae.curX = ClipperBase.topX(ae, topY);
1629
+ const x = ClipperBase.topX(ae, topY);
1630
+ ae.curX = x;
1595
1631
  // NB don't update ae.curr.Y yet (see AddNewIntersectNode)
1632
+ if (x < prevX)
1633
+ inverted = true;
1634
+ prevX = x;
1596
1635
  ae = ae.nextInAEL;
1597
1636
  }
1637
+ return inverted;
1598
1638
  }
1599
1639
  doMaxima(ae) {
1600
1640
  const prevE = ae.prevInAEL;
@@ -1682,7 +1722,7 @@ export class ClipperBase {
1682
1722
  horzEdge.vertexTop = ClipperBase.nextVertex(horzEdge);
1683
1723
  horzEdge.top = pt;
1684
1724
  wasTrimmed = true;
1685
- if (ClipperBase.isMaxima(horzEdge))
1725
+ if (ClipperBase.isMaximaVertex(horzEdge.vertexTop))
1686
1726
  break;
1687
1727
  pt = ClipperBase.nextVertex(horzEdge).pt;
1688
1728
  }
@@ -1758,7 +1798,7 @@ export class ClipperBase {
1758
1798
  ((result.flags & (VertexFlags.OpenEnd | VertexFlags.LocalMax)) === VertexFlags.None))
1759
1799
  result = result.prev;
1760
1800
  }
1761
- if (!ClipperBase.isMaxima(result))
1801
+ if (!ClipperBase.isMaximaVertex(result))
1762
1802
  result = null; // not a maxima
1763
1803
  return result;
1764
1804
  }
@@ -1772,7 +1812,7 @@ export class ClipperBase {
1772
1812
  while (result.prev.pt.y === result.pt.y)
1773
1813
  result = result.prev;
1774
1814
  }
1775
- if (!ClipperBase.isMaxima(result))
1815
+ if (!ClipperBase.isMaximaVertex(result))
1776
1816
  result = null; // not a maxima
1777
1817
  return result;
1778
1818
  }
@@ -2124,8 +2164,11 @@ export class ClipperBase {
2124
2164
  }
2125
2165
  checkJoinLeft(ae, pt, checkCurrX = false) {
2126
2166
  const prev = ae.prevInAEL;
2127
- if (prev === null ||
2128
- !ClipperBase.isHotEdge(ae) || !ClipperBase.isHotEdge(prev) ||
2167
+ if (prev === null)
2168
+ return;
2169
+ if (!checkCurrX && ae.curX !== prev.curX)
2170
+ return;
2171
+ if (!ClipperBase.isHotEdge(ae) || !ClipperBase.isHotEdge(prev) ||
2129
2172
  ClipperBase.isHorizontal(ae) || ClipperBase.isHorizontal(prev) ||
2130
2173
  ClipperBase.isOpen(ae) || ClipperBase.isOpen(prev))
2131
2174
  return;
@@ -2136,8 +2179,6 @@ export class ClipperBase {
2136
2179
  if (this.perpendicDistFromLineSqrdGreaterThanQuarter(pt, prev.bot, prev.top))
2137
2180
  return;
2138
2181
  }
2139
- else if (ae.curX !== prev.curX)
2140
- return;
2141
2182
  if (!InternalClipper.isCollinear(ae.top, pt, prev.top))
2142
2183
  return;
2143
2184
  if (ae.outrec.idx === prev.outrec.idx) {
@@ -2154,8 +2195,11 @@ export class ClipperBase {
2154
2195
  }
2155
2196
  checkJoinRight(ae, pt, checkCurrX = false) {
2156
2197
  const next = ae.nextInAEL;
2157
- if (next === null ||
2158
- !ClipperBase.isHotEdge(ae) || !ClipperBase.isHotEdge(next) ||
2198
+ if (next === null)
2199
+ return;
2200
+ if (!checkCurrX && ae.curX !== next.curX)
2201
+ return;
2202
+ if (!ClipperBase.isHotEdge(ae) || !ClipperBase.isHotEdge(next) ||
2159
2203
  ClipperBase.isHorizontal(ae) || ClipperBase.isHorizontal(next) ||
2160
2204
  ClipperBase.isOpen(ae) || ClipperBase.isOpen(next))
2161
2205
  return;
@@ -2166,8 +2210,6 @@ export class ClipperBase {
2166
2210
  if (this.perpendicDistFromLineSqrdGreaterThanQuarter(pt, next.bot, next.top))
2167
2211
  return;
2168
2212
  }
2169
- else if (ae.curX !== next.curX)
2170
- return;
2171
2213
  if (!InternalClipper.isCollinear(ae.top, pt, next.top))
2172
2214
  return;
2173
2215
  if (ae.outrec.idx === next.outrec.idx) {
@@ -2215,8 +2257,11 @@ export class ClipperBase {
2215
2257
  if (ClipperBase.isOpen(ae1) && ClipperBase.isOpen(ae2))
2216
2258
  return;
2217
2259
  // the following line avoids duplicating quite a bit of code
2218
- if (ClipperBase.isOpen(ae2))
2219
- [ae1, ae2] = ClipperBase.swapActives(ae1, ae2);
2260
+ if (ClipperBase.isOpen(ae2)) {
2261
+ const tmp = ae1;
2262
+ ae1 = ae2;
2263
+ ae2 = tmp;
2264
+ }
2220
2265
  if (this.isJoined(ae2))
2221
2266
  this.split(ae2, pt); // needed for safety
2222
2267
  if (this.cliptype === ClipType.Union) {
@@ -2450,10 +2495,10 @@ export class ClipperBase {
2450
2495
  // edges must be collinear to get here
2451
2496
  // for starting open paths, place them according to
2452
2497
  // the direction they're about to turn
2453
- if (!ClipperBase.isMaxima(resident) && (resident.top.y > newcomer.top.y)) {
2498
+ if (!ClipperBase.isMaximaEdge(resident) && (resident.top.y > newcomer.top.y)) {
2454
2499
  return InternalClipper.crossProductSign(newcomer.bot, resident.top, ClipperBase.nextVertex(resident).pt) <= 0;
2455
2500
  }
2456
- if (!ClipperBase.isMaxima(newcomer) && (newcomer.top.y > resident.top.y)) {
2501
+ if (!ClipperBase.isMaximaEdge(newcomer) && (newcomer.top.y > resident.top.y)) {
2457
2502
  return InternalClipper.crossProductSign(newcomer.bot, newcomer.top, ClipperBase.nextVertex(newcomer).pt) >= 0;
2458
2503
  }
2459
2504
  const y = newcomer.bot.y;