clipper2-ts 2.0.1-17 → 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;
@@ -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
@@ -234,18 +234,22 @@ export const ClipperEngine = {
234
234
  const path = paths[i];
235
235
  let v0 = null;
236
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;
237
240
  for (let j = 0, len2 = path.length; j < len2; j++) {
238
241
  const pt = path[j];
239
242
  if (v0 === null) {
240
243
  v0 = new Vertex(pt, VertexFlags.None, null);
241
244
  vertexList.push(v0);
242
245
  prevV = v0;
246
+ prevPt = pt;
243
247
  }
244
- 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
245
249
  const currV = new Vertex(pt, VertexFlags.None, prevV);
246
- vertexList.push(currV);
247
250
  prevV.next = currV;
248
251
  prevV = currV;
252
+ prevPt = pt;
249
253
  }
250
254
  }
251
255
  if (prevV?.prev == null)
@@ -481,6 +485,10 @@ export class ClipperBase {
481
485
  horzJoinList = [];
482
486
  currentLocMin = 0;
483
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;
484
492
  isSortedMinimaList = false;
485
493
  hasOpenPaths = false;
486
494
  usingPolytree = false;
@@ -598,7 +606,9 @@ export class ClipperBase {
598
606
  return InternalClipper.roundToEven(ae.bot.x + ae.dx * (currentY - ae.bot.y));
599
607
  }
600
608
  static isHorizontal(ae) {
601
- 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;
602
612
  }
603
613
  static isHeadingRightHorz(ae) {
604
614
  return ae.dx === Number.NEGATIVE_INFINITY;
@@ -639,15 +649,21 @@ export class ClipperBase {
639
649
  // optimization (not in C# reference): fast bounding box overlap check for segment intersection
640
650
  boundingBoxesOverlap(p1, p2, p3, p4) {
641
651
  // segment 1: p1-p2, segment 2: p3-p4
642
- const min1x = Math.min(p1.x, p2.x);
643
- const max1x = Math.max(p1.x, p2.x);
644
- const min1y = Math.min(p1.y, p2.y);
645
- const max1y = Math.max(p1.y, p2.y);
646
- const min2x = Math.min(p3.x, p4.x);
647
- const max2x = Math.max(p3.x, p4.x);
648
- const min2y = Math.min(p3.y, p4.y);
649
- const max2y = Math.max(p3.y, p4.y);
650
- 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;
651
667
  }
652
668
  clearSolutionOnly() {
653
669
  while (this.actives !== null)
@@ -686,6 +702,7 @@ export class ClipperBase {
686
702
  this.currentLocMin = 0;
687
703
  this.actives = null;
688
704
  this.sel = null;
705
+ this.curXValidAtTop = false;
689
706
  this.succeeded = true;
690
707
  }
691
708
  upgradeScanlineStructureFromArray() {
@@ -1173,13 +1190,17 @@ export class ClipperBase {
1173
1190
  this.updateEdgeIntoAEL(horz); // this is the end of an intermediate horiz.
1174
1191
  }
1175
1192
  convertHorzSegsToJoins() {
1193
+ // compact valid segments to [0, k) so the sort below only orders those
1194
+ const list = this.horzSegList;
1176
1195
  let k = 0;
1177
- for (const hs of this.horzSegList) {
1196
+ for (let i = 0, len = list.length; i < len; i++) {
1197
+ const hs = list[i];
1178
1198
  if (this.updateHorzSegment(hs))
1179
- k++;
1199
+ list[k++] = hs;
1180
1200
  }
1181
1201
  if (k < 2)
1182
1202
  return;
1203
+ list.length = k;
1183
1204
  this.horzSegList.sort(compareHorzSegments);
1184
1205
  for (let i = 0; i < k - 1; i++) {
1185
1206
  const hs1 = this.horzSegList[i];
@@ -1288,6 +1309,11 @@ export class ClipperBase {
1288
1309
  }
1289
1310
  }
1290
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;
1291
1317
  this.sel = null; // sel is reused to flag horizontals (see PushHorz below)
1292
1318
  let ae = this.actives;
1293
1319
  while (ae !== null) {
@@ -1308,7 +1334,7 @@ export class ClipperBase {
1308
1334
  }
1309
1335
  }
1310
1336
  }
1311
- else { // i.e. not the top of the edge
1337
+ else if (!curXValid) { // i.e. not the top of the edge
1312
1338
  ae.curX = ClipperBase.topX(ae, y); // TopX already returns correctly rounded integer
1313
1339
  }
1314
1340
  ae = ae.nextInAEL;
@@ -1502,7 +1528,13 @@ export class ClipperBase {
1502
1528
  return false;
1503
1529
  // Calculate edge positions at the top of the current scanbeam, and from this
1504
1530
  // we will determine the intersections required to reach these new positions.
1505
- 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
+ }
1506
1538
  // Find all edge intersections in the current scanbeam using a stable merge
1507
1539
  // sort that ensures only adjacent edges are intersecting. Intersect info is
1508
1540
  // stored in intersectList ready to be processed in ProcessIntersectList.
@@ -1581,19 +1613,28 @@ export class ClipperBase {
1581
1613
  edgesAdjacentInAEL(inode) {
1582
1614
  return (inode.edge1.nextInAEL === inode.edge2) || (inode.edge1.prevInAEL === inode.edge2);
1583
1615
  }
1616
+ // Returns true if any adjacent pair is inverted at topY (i.e. at least one
1617
+ // intersection exists within this scanbeam).
1584
1618
  adjustCurrXAndCopyToSEL(topY) {
1585
1619
  let ae = this.actives;
1586
1620
  this.sel = ae;
1621
+ let prevX = Number.NEGATIVE_INFINITY;
1622
+ let inverted = false;
1587
1623
  while (ae !== null) {
1588
1624
  ae.prevInSEL = ae.prevInAEL;
1589
1625
  ae.nextInSEL = ae.nextInAEL;
1590
1626
  ae.jump = ae.nextInSEL;
1591
1627
  // it is safe to ignore 'joined' edges here because
1592
1628
  // if necessary they will be split in IntersectEdges()
1593
- ae.curX = ClipperBase.topX(ae, topY);
1629
+ const x = ClipperBase.topX(ae, topY);
1630
+ ae.curX = x;
1594
1631
  // NB don't update ae.curr.Y yet (see AddNewIntersectNode)
1632
+ if (x < prevX)
1633
+ inverted = true;
1634
+ prevX = x;
1595
1635
  ae = ae.nextInAEL;
1596
1636
  }
1637
+ return inverted;
1597
1638
  }
1598
1639
  doMaxima(ae) {
1599
1640
  const prevE = ae.prevInAEL;
@@ -2123,8 +2164,11 @@ export class ClipperBase {
2123
2164
  }
2124
2165
  checkJoinLeft(ae, pt, checkCurrX = false) {
2125
2166
  const prev = ae.prevInAEL;
2126
- if (prev === null ||
2127
- !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) ||
2128
2172
  ClipperBase.isHorizontal(ae) || ClipperBase.isHorizontal(prev) ||
2129
2173
  ClipperBase.isOpen(ae) || ClipperBase.isOpen(prev))
2130
2174
  return;
@@ -2135,8 +2179,6 @@ export class ClipperBase {
2135
2179
  if (this.perpendicDistFromLineSqrdGreaterThanQuarter(pt, prev.bot, prev.top))
2136
2180
  return;
2137
2181
  }
2138
- else if (ae.curX !== prev.curX)
2139
- return;
2140
2182
  if (!InternalClipper.isCollinear(ae.top, pt, prev.top))
2141
2183
  return;
2142
2184
  if (ae.outrec.idx === prev.outrec.idx) {
@@ -2153,8 +2195,11 @@ export class ClipperBase {
2153
2195
  }
2154
2196
  checkJoinRight(ae, pt, checkCurrX = false) {
2155
2197
  const next = ae.nextInAEL;
2156
- if (next === null ||
2157
- !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) ||
2158
2203
  ClipperBase.isHorizontal(ae) || ClipperBase.isHorizontal(next) ||
2159
2204
  ClipperBase.isOpen(ae) || ClipperBase.isOpen(next))
2160
2205
  return;
@@ -2165,8 +2210,6 @@ export class ClipperBase {
2165
2210
  if (this.perpendicDistFromLineSqrdGreaterThanQuarter(pt, next.bot, next.top))
2166
2211
  return;
2167
2212
  }
2168
- else if (ae.curX !== next.curX)
2169
- return;
2170
2213
  if (!InternalClipper.isCollinear(ae.top, pt, next.top))
2171
2214
  return;
2172
2215
  if (ae.outrec.idx === next.outrec.idx) {