@itwin/ecschema-rpcinterface-tests 5.13.0-dev.4 → 5.13.0-dev.6

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.
@@ -207368,7 +207368,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_14__.CurvePrimitive
207368
207368
  }
207369
207369
  /**
207370
207370
  * Returns a (high accuracy) range of the curve between fractional positions.
207371
- * * Default implementation returns teh range of the curve from clonePartialCurve.
207371
+ * * Default implementation returns the range of the curve from clonePartialCurve.
207372
207372
  */
207373
207373
  rangeBetweenFractions(fraction0, fraction1, transform) {
207374
207374
  const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
@@ -210283,6 +210283,7 @@ class CurveFactory {
210283
210283
  const closureTolerance = haveBoolean ? _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance : allowCuspOrOptions.closureTolerance ?? _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance;
210284
210284
  const cuspTolerance = haveBoolean ? _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance : allowCuspOrOptions.cuspTolerance ?? _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance;
210285
210285
  const cuspSegments = haveBoolean ? true : allowCuspOrOptions.cuspSegments ?? true;
210286
+ const simplifyPath = haveBoolean ? false : allowCuspOrOptions.simplifyPath ?? false;
210286
210287
  let n = points.length;
210287
210288
  if (filletClosure && points.almostEqualIndexIndex(0, n - 1, closureTolerance))
210288
210289
  n--; // ignore closure point
@@ -210356,7 +210357,16 @@ class CurveFactory {
210356
210357
  this.addPartialSegment(path, cuspSegments, b0.point, b1.point, b0.fraction12, 1 - b1.fraction10);
210357
210358
  }
210358
210359
  }
210359
- return path;
210360
+ if (!simplifyPath)
210361
+ return path;
210362
+ // remove tiny children, merge adjacent arcs
210363
+ const distTol2 = closureTolerance * closureTolerance;
210364
+ const sufficientlyLargeChildren = path.children.filter((c) => c.range().diagonalLengthSquared(true) >= distTol2);
210365
+ if (sufficientlyLargeChildren.length === 0)
210366
+ return undefined;
210367
+ const simplerPath = _Path__WEBPACK_IMPORTED_MODULE_24__.Path.create(...sufficientlyLargeChildren);
210368
+ _RegionOps__WEBPACK_IMPORTED_MODULE_25__.RegionOps.consolidateAdjacentPrimitives(simplerPath, { consolidateLoopSeam: true, duplicatePointTolerance: closureTolerance, colinearPointTolerance: closureTolerance });
210369
+ return simplerPath;
210360
210370
  }
210361
210371
  /** If an open filletedLineString starts/ends with an arc, add a zero-length line segment to its start/end. */
210362
210372
  static validateOpenPathStartEnd(filletedLineString) {
@@ -213180,6 +213190,13 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_11__.CurveP
213180
213190
  }
213181
213191
  return this._point1.clone();
213182
213192
  }
213193
+ /**
213194
+ * Whether the start and end points are defined and within tolerance.
213195
+ * * Always `false` for `LineSegment3d`.
213196
+ */
213197
+ isPhysicallyClosedCurve(_tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallMetricDistance, _xyOnly = false) {
213198
+ return false;
213199
+ }
213183
213200
  /** Return the point and derivative vector at fractional position along the line segment. */
213184
213201
  fractionToPointAndDerivative(fraction, result) {
213185
213202
  result = result ? result : _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_6__.Ray3d.createZero();
@@ -213536,7 +213553,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_11__.CurveP
213536
213553
  }
213537
213554
  /**
213538
213555
  * Returns a (high accuracy) range of the curve between fractional positions
213539
- * * Default implementation returns teh range of the curve from clonePartialCurve
213556
+ * * Default implementation returns the range of the curve from clonePartialCurve
213540
213557
  */
213541
213558
  rangeBetweenFractions(fraction0, fraction1, transform) {
213542
213559
  // (This is cheap -- don't bother testing for fraction0===fraction1)
@@ -216079,7 +216096,6 @@ __webpack_require__.r(__webpack_exports__);
216079
216096
  /* harmony import */ var _CurveFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
216080
216097
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
216081
216098
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
216082
- /* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
216083
216099
  /*---------------------------------------------------------------------------------------------
216084
216100
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
216085
216101
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -216095,17 +216111,26 @@ __webpack_require__.r(__webpack_exports__);
216095
216111
 
216096
216112
 
216097
216113
 
216098
-
216099
216114
  /**
216100
- * * Implementation class for ConsolidateAdjacentCurvePrimitives.
216115
+ * Implementation class for ConsolidateAdjacentCurvePrimitives.
216101
216116
  *
216102
216117
  * @internal
216103
216118
  */
216104
216119
  class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.NullGeometryHandler {
216105
- _options;
216120
+ _consolidateLinearGeometry;
216121
+ _consolidateCompatibleArcs;
216122
+ _consolidateLoopSeam;
216123
+ _disableLinearCompression;
216124
+ _duplicatePointTolerance;
216125
+ _colinearPointTolerance;
216106
216126
  constructor(options) {
216107
216127
  super();
216108
- this._options = options ? options : new _RegionOps__WEBPACK_IMPORTED_MODULE_8__.ConsolidateAdjacentCurvePrimitivesOptions();
216128
+ this._consolidateLinearGeometry = options?.consolidateLinearGeometry ?? true;
216129
+ this._consolidateCompatibleArcs = options?.consolidateCompatibleArcs ?? true;
216130
+ this._consolidateLoopSeam = options?.consolidateLoopSeam ?? false;
216131
+ this._disableLinearCompression = options?.disableLinearCompression ?? false;
216132
+ this._duplicatePointTolerance = options?.duplicatePointTolerance ?? _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance;
216133
+ this._colinearPointTolerance = options?.colinearPointTolerance ?? _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance;
216109
216134
  }
216110
216135
  /** look for adjacent compatible primitives in a path or loop. */
216111
216136
  handleCurveChain(g) {
@@ -216117,7 +216142,7 @@ class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHand
216117
216142
  // numAccept is the number of children accepted (contiguously at front of children)
216118
216143
  for (let i0 = 0; i0 < numOriginal;) {
216119
216144
  const basePrimitive = g.children[i0];
216120
- if (this._options.consolidateLinearGeometry && (basePrimitive instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d || basePrimitive instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d)) {
216145
+ if (this._consolidateLinearGeometry && (basePrimitive instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d || basePrimitive instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d)) {
216121
216146
  points.length = 0;
216122
216147
  let i1 = i0;
216123
216148
  // on exit, i1 is beyond the block of linear primitives . ..
@@ -216140,16 +216165,16 @@ class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHand
216140
216165
  if (points.length <= 1) {
216141
216166
  g.children[numAccept++] = basePrimitive;
216142
216167
  }
216143
- else if (this._options.disableLinearCompression) {
216168
+ else if (this._disableLinearCompression) {
216144
216169
  const pointsDeduped = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_3__.PolylineOps.compressShortEdges(points, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFloatingPoint); // remove only exact duplicate interior points
216145
216170
  g.children[numAccept++] = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.createPoints(pointsDeduped);
216146
216171
  }
216147
216172
  else { // compress points
216148
- const compressedPointsA = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_3__.PolylineOps.compressShortEdges(points, this._options.duplicatePointTolerance);
216149
- const compressedPointsB = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_3__.PolylineOps.compressByChordError(compressedPointsA, this._options.colinearPointTolerance, true);
216150
- if (i0 === 0 && i1 === numOriginal && this._options.consolidateLoopSeam) {
216173
+ const compressedPointsA = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_3__.PolylineOps.compressShortEdges(points, this._duplicatePointTolerance);
216174
+ const compressedPointsB = _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_3__.PolylineOps.compressByChordError(compressedPointsA, this._colinearPointTolerance, true);
216175
+ if (i0 === 0 && i1 === numOriginal && this._consolidateLoopSeam) {
216151
216176
  // points is the entire curve: if the curve is physically closed and end segments are colinear, re/move the seam
216152
- _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_2__.PolylineCompressionContext.compressColinearWrapInPlace(compressedPointsB, this._options.duplicatePointTolerance, this._options.colinearPointTolerance);
216177
+ _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_2__.PolylineCompressionContext.compressColinearWrapInPlace(compressedPointsB, this._duplicatePointTolerance, this._colinearPointTolerance);
216153
216178
  }
216154
216179
  if (compressedPointsB.length < 2) {
216155
216180
  // Collapsed to a point? Make a single point linestring
@@ -216164,14 +216189,14 @@ class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHand
216164
216189
  }
216165
216190
  i0 = i1;
216166
216191
  }
216167
- else if (this._options.consolidateCompatibleArcs && basePrimitive instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
216192
+ else if (this._consolidateCompatibleArcs && basePrimitive instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
216168
216193
  // subsume subsequent arcs into basePrimitive.
216169
216194
  // always accept base primitive.
216170
216195
  for (; ++i0 < g.children.length;) {
216171
216196
  const nextPrimitive = g.children[i0];
216172
216197
  if (!(nextPrimitive instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d))
216173
216198
  break;
216174
- if (!_CurveFactory__WEBPACK_IMPORTED_MODULE_5__.CurveFactory.appendToArcInPlace(basePrimitive, nextPrimitive, false, this._options.duplicatePointTolerance))
216199
+ if (!_CurveFactory__WEBPACK_IMPORTED_MODULE_5__.CurveFactory.appendToArcInPlace(basePrimitive, nextPrimitive, false, this._duplicatePointTolerance))
216175
216200
  break;
216176
216201
  }
216177
216202
  // i0 has already advanced
@@ -216189,11 +216214,11 @@ class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHand
216189
216214
  }
216190
216215
  handleLoop(g) {
216191
216216
  this.handleCurveChain(g);
216192
- if (g.children.length > 1 && this._options.consolidateLoopSeam) {
216217
+ if (g.children.length > 1 && this._consolidateLoopSeam) {
216193
216218
  const lastChild = g.children[g.children.length - 1];
216194
216219
  const firstChild = g.children[0];
216195
216220
  if ((lastChild instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d || lastChild instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) && (firstChild instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d || firstChild instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d)) {
216196
- if (this._options.consolidateLinearGeometry && !this._options.disableLinearCompression) {
216221
+ if (this._consolidateLinearGeometry && !this._disableLinearCompression) {
216197
216222
  const lastPoints = lastChild.points;
216198
216223
  lastPoints.pop(); // the original start point survives as an interior point in the new first primitive
216199
216224
  g.children[0] = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.createPoints([...lastPoints, ...firstChild.points]);
@@ -216201,8 +216226,8 @@ class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHand
216201
216226
  }
216202
216227
  }
216203
216228
  else if (lastChild instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d && firstChild instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
216204
- if (this._options.consolidateCompatibleArcs) {
216205
- if (_CurveFactory__WEBPACK_IMPORTED_MODULE_5__.CurveFactory.appendToArcInPlace(lastChild, firstChild, false, this._options.duplicatePointTolerance)) {
216229
+ if (this._consolidateCompatibleArcs) {
216230
+ if (_CurveFactory__WEBPACK_IMPORTED_MODULE_5__.CurveFactory.appendToArcInPlace(lastChild, firstChild, false, this._duplicatePointTolerance)) {
216206
216231
  g.children[0] = lastChild;
216207
216232
  g.children.pop();
216208
216233
  }
@@ -216905,9 +216930,7 @@ class PlanarSubdivision {
216905
216930
  else
216906
216931
  face.announceEdgesInFace(addEdgeCurve);
216907
216932
  if (consolidate) {
216908
- const consolidateOptions = new _RegionOps__WEBPACK_IMPORTED_MODULE_12__.ConsolidateAdjacentCurvePrimitivesOptions();
216909
- consolidateOptions.consolidateLoopSeam = true;
216910
- _RegionOps__WEBPACK_IMPORTED_MODULE_12__.RegionOps.consolidateAdjacentPrimitives(loop, consolidateOptions);
216933
+ _RegionOps__WEBPACK_IMPORTED_MODULE_12__.RegionOps.consolidateAdjacentPrimitives(loop, { consolidateLoopSeam: true });
216911
216934
  }
216912
216935
  if (loop.isPhysicallyClosedCurve(options?.closureTol, true))
216913
216936
  return loop;
@@ -217933,7 +217956,8 @@ __webpack_require__.r(__webpack_exports__);
217933
217956
 
217934
217957
 
217935
217958
  /**
217936
- * * Options to control method [[RegionOps.consolidateAdjacentPrimitives]].
217959
+ * Options to control method [[RegionOps.consolidateAdjacentPrimitives]].
217960
+ * @deprecated in 5.11.13 - might be removed in next major version. Use [[ConsolidateAdjacentPrimitivesOptions]], which is more convenient as an interface, and has better name.
217937
217961
  * @public
217938
217962
  */
217939
217963
  class ConsolidateAdjacentCurvePrimitivesOptions {
@@ -222424,14 +222448,136 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
222424
222448
  this.computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed);
222425
222449
  }
222426
222450
  }
222427
- // Caller accesses data from a linestring or segment and passes it here.
222428
- // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
222429
- // The fraction and extend parameters allow all combinations to be passed in.
222430
- dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
222451
+ /** Implementation of dispatchSegmentArc under affine transform. KEEP IN SYNC WITH computeSegmentArcHomogeneous. */
222452
+ computeSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
222431
222453
  const tol2 = this._coincidentGeometryContext.tolerance * this._coincidentGeometryContext.tolerance;
222432
222454
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222433
222455
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222434
222456
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222457
+ const recordIfNearIntersection = (fA, fB, d2) => {
222458
+ if (!_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(d2, tol2))
222459
+ return false;
222460
+ this.recordPointWithLocalFractions(fA, cpA, fractionA0, fractionA1, fB, arc, 0, 1, reversed);
222461
+ return true;
222462
+ };
222463
+ const data = arc.toTransformedVectors(this._worldToLocalAffine);
222464
+ let pointA0Local = pointA0;
222465
+ let pointA1Local = pointA1;
222466
+ const pointB0Local = arc.startPoint();
222467
+ const pointB1Local = arc.endPoint();
222468
+ if (this._worldToLocalAffine) {
222469
+ pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
222470
+ pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
222471
+ this._worldToLocalAffine.multiplyXYAndZInPlace(pointB0Local);
222472
+ this._worldToLocalAffine.multiplyXYAndZInPlace(pointB1Local);
222473
+ }
222474
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
222475
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
222476
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
222477
+ // note really tight tol for tangency since below we check closest approach also
222478
+ let numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_11__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians, tol2);
222479
+ const closeApproach = (0 === numRoots);
222480
+ if (closeApproach)
222481
+ numRoots = 1; // we returned the closest approach instead: first entry is the arc point, which is all we need
222482
+ const roots = [];
222483
+ for (let i = 0; i < numRoots; i++) {
222484
+ const arcPt = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
222485
+ const fArc = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0); // exterior fraction sign based on extend flags
222486
+ const fArcNearest01 = data.sweep.fractionToSignedPeriodicFraction(fArc, undefined); // exterior fraction sign based on proximity to 0/1
222487
+ const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_12__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPt);
222488
+ if (fLine !== undefined) {
222489
+ const linePt = pointA0Local.interpolate(fLine, pointA1Local);
222490
+ roots.push({ fArc, fArcNearest01, fLine, arcPt, linePt });
222491
+ }
222492
+ }
222493
+ // range-test and record roots
222494
+ for (const root of roots) {
222495
+ const { fArc, fArcNearest01, fLine, arcPt, linePt } = root;
222496
+ if (closeApproach && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(arcPt.distanceSquaredXY(linePt), tol2)) {
222497
+ continue;
222498
+ }
222499
+ if (this.acceptFraction(extendA0, fLine, extendA1) && this.acceptFraction(extendB0, fArc, extendB1)) {
222500
+ this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
222501
+ continue;
222502
+ }
222503
+ // since line-arc chains are so common, look for near-endpoint intersections using distance tol, which is often relatively looser than fraction tol
222504
+ const inArcRange = extendB0 || extendB1 || _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01(fArc);
222505
+ const inLineRange = (extendA0 && fLine < 0) || (extendA1 && fLine > 1) || _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01(fLine);
222506
+ let accepted = false;
222507
+ if (inArcRange && !inLineRange) // check tangency near line endpoint
222508
+ accepted = recordIfNearIntersection(fLine < 0 ? 0 : 1, fArc, (fLine < 0 ? pointA0Local : pointA1Local).distanceSquaredXY(arcPt));
222509
+ else if (!inArcRange && inLineRange) // check tangency near arc endpoint
222510
+ accepted = recordIfNearIntersection(fLine, fArcNearest01 < 0 ? 0 : 1, linePt.distanceSquaredXY(fArcNearest01 < 0 ? pointB0Local : pointB1Local));
222511
+ if (!accepted) // check intersection between nearest endpoints
222512
+ recordIfNearIntersection(fLine < 0.5 ? 0 : 1, fArcNearest01 < 0.5 ? 0 : 1, (fLine < 0.5 ? pointA0Local : pointA1Local).distanceSquaredXY(fArcNearest01 < 0.5 ? pointB0Local : pointB1Local));
222513
+ }
222514
+ }
222515
+ /** Implementation of dispatchSegmentArc under perspective transform. KEEP IN SYNC WITH computeSegmentArc. */
222516
+ computeSegmentArcHomogeneous(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
222517
+ if (!this._worldToLocalPerspective)
222518
+ return;
222519
+ const tol2 = this._coincidentGeometryContext.tolerance * this._coincidentGeometryContext.tolerance;
222520
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222521
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222522
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
222523
+ const recordIfNearIntersection = (fA, fB, d2) => {
222524
+ if (d2 === undefined || !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(d2, tol2))
222525
+ return false;
222526
+ this.recordPointWithLocalFractions(fA, cpA, fractionA0, fractionA1, fB, arc, 0, 1, reversed);
222527
+ return true;
222528
+ };
222529
+ const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
222530
+ const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
222531
+ const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
222532
+ const pointB0H = this._worldToLocalPerspective.multiplyPoint3d(arc.startPoint(), 1);
222533
+ const pointB1H = this._worldToLocalPerspective.multiplyPoint3d(arc.endPoint(), 1);
222534
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
222535
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
222536
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
222537
+ // note really tight tol for tangency since below we check closest approach also
222538
+ let numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_11__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians, tol2);
222539
+ const closeApproach = (0 === numRoots);
222540
+ if (closeApproach)
222541
+ numRoots = 1; // we returned the closest approach instead: first entry is the arc point, which is all we need
222542
+ const roots = [];
222543
+ for (let i = 0; i < numRoots; i++) {
222544
+ const arcPt = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
222545
+ const fArc = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0); // exterior fraction sign based on extend flags
222546
+ const fArcNearest01 = data.sweep.fractionToSignedPeriodicFraction(fArc, undefined); // exterior fraction sign based on proximity to 0/1
222547
+ const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_12__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPt);
222548
+ if (fLine !== undefined) {
222549
+ const linePt = pointA0H.interpolate(fLine, pointA1H);
222550
+ roots.push({ fArc, fArcNearest01, fLine, arcPt, linePt });
222551
+ }
222552
+ }
222553
+ // range-test and record roots
222554
+ for (const root of roots) {
222555
+ const { fArc, fArcNearest01, fLine, arcPt, linePt } = root;
222556
+ if (closeApproach) {
222557
+ const dist2 = arcPt.realDistanceSquaredXY(linePt);
222558
+ if (dist2 === undefined || !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(dist2, tol2))
222559
+ continue;
222560
+ }
222561
+ if (this.acceptFraction(extendA0, fLine, extendA1) && this.acceptFraction(extendB0, fArc, extendB1)) {
222562
+ this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
222563
+ continue;
222564
+ }
222565
+ // since line-arc chains are so common, look for near-endpoint intersections using distance tol, which is often relatively looser than fraction tol
222566
+ const inArcRange = extendB0 || extendB1 || _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01(fArc);
222567
+ const inLineRange = (extendA0 && fLine < 0) || (extendA1 && fLine > 1) || _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01(fLine);
222568
+ let accepted = false;
222569
+ if (inArcRange && !inLineRange) // check tangency near line endpoint
222570
+ accepted = recordIfNearIntersection(fLine < 0 ? 0 : 1, fArc, (fLine < 0 ? pointA0H : pointA1H).realDistanceSquaredXY(arcPt));
222571
+ else if (!inArcRange && inLineRange) // check tangency near arc endpoint
222572
+ accepted = recordIfNearIntersection(fLine, fArcNearest01 < 0 ? 0 : 1, linePt.realDistanceSquaredXY(fArcNearest01 < 0 ? pointB0H : pointB1H));
222573
+ if (!accepted) // check intersection between nearest endpoints
222574
+ recordIfNearIntersection(fLine < 0.5 ? 0 : 1, fArcNearest01 < 0.5 ? 0 : 1, (fLine < 0.5 ? pointA0H : pointA1H).realDistanceSquaredXY(fArcNearest01 < 0.5 ? pointB0H : pointB1H));
222575
+ }
222576
+ }
222577
+ // Caller accesses data from a linestring or segment and passes it here.
222578
+ // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
222579
+ // The fraction and extend parameters allow all combinations to be passed in.
222580
+ dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
222435
222581
  // Arc: X(theta) = C + cos(theta)·U + sin(theta)·V
222436
222582
  // Line: contains points A0,A1
222437
222583
  // Arc point X is colinear (intersects) with line if det(A0, A1, X) = 0 with homogeneous xyw points and vectors
@@ -222440,107 +222586,10 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
222440
222586
  // or
222441
222587
  // alpha + beta cos(theta) + gamma sin(theta) = 0
222442
222588
  // solve for theta; evaluate points; project back to line
222443
- if (this._worldToLocalPerspective) {
222444
- const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
222445
- const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
222446
- const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
222447
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
222448
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
222449
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
222450
- let numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_11__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians, tol2);
222451
- const closeApproach = (0 === numRoots);
222452
- if (closeApproach)
222453
- numRoots = 1; // arc closest approach is the first entry
222454
- let numAccepted = 0;
222455
- for (let i = 0; i < numRoots; i++) {
222456
- const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
222457
- const fArc = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
222458
- const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_12__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
222459
- if (fLine === undefined)
222460
- continue;
222461
- if (closeApproach) {
222462
- const linePoint = pointA0H.interpolate(fLine, pointA1H);
222463
- const dist2 = arcPoint.realDistanceSquaredXY(linePoint);
222464
- if (dist2 === undefined || !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(dist2, tol2))
222465
- continue;
222466
- }
222467
- if (this.acceptFraction(extendA0, fLine, extendA1) && this.acceptFraction(extendB0, fArc, extendB1)) {
222468
- this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
222469
- numAccepted++;
222470
- }
222471
- }
222472
- if (numAccepted === 0 && !arc.sweep.isFullCircle) {
222473
- // check for endpoint intersection beyond parametric tolerance but within point tolerance
222474
- const pointB0H = this._worldToLocalPerspective.multiplyPoint3d(arc.startPoint(), 1);
222475
- const pointB1H = this._worldToLocalPerspective.multiplyPoint3d(arc.endPoint(), 1);
222476
- const dist2 = [];
222477
- let d2 = pointA0H.realDistanceSquaredXY(pointB0H);
222478
- if (d2 !== undefined)
222479
- dist2.push({ d2, fA: 0, fB: 0 });
222480
- d2 = pointA0H.realDistanceSquaredXY(pointB1H);
222481
- if (d2 !== undefined)
222482
- dist2.push({ d2, fA: 0, fB: 1 });
222483
- d2 = pointA1H.realDistanceSquaredXY(pointB0H);
222484
- if (d2 !== undefined)
222485
- dist2.push({ d2, fA: 1, fB: 0 });
222486
- d2 = pointA1H.realDistanceSquaredXY(pointB1H);
222487
- if (d2 !== undefined)
222488
- dist2.push({ d2, fA: 1, fB: 1 });
222489
- dist2.sort((a, b) => a.d2 - b.d2);
222490
- if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(dist2[0].d2, tol2))
222491
- this.recordPointWithLocalFractions(dist2[0].fA, cpA, fractionA0, fractionA1, dist2[0].fB, arc, 0, 1, reversed);
222492
- }
222493
- }
222494
- else {
222495
- const data = arc.toTransformedVectors(this._worldToLocalAffine);
222496
- let pointA0Local = pointA0;
222497
- let pointA1Local = pointA1;
222498
- if (this._worldToLocalAffine) {
222499
- pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
222500
- pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
222501
- }
222502
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
222503
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
222504
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
222505
- let numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_11__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians, tol2);
222506
- const closeApproach = (0 === numRoots);
222507
- if (closeApproach)
222508
- numRoots = 1; // arc closest approach is the first entry
222509
- let numAccepted = 0;
222510
- for (let i = 0; i < numRoots; i++) {
222511
- const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
222512
- const fArc = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
222513
- const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_12__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
222514
- if (fLine === undefined)
222515
- continue;
222516
- if (closeApproach) {
222517
- const linePoint = pointA0Local.interpolate(fLine, pointA1Local);
222518
- if (!_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(arcPoint.distanceSquaredXY(linePoint), tol2))
222519
- continue;
222520
- }
222521
- if (this.acceptFraction(extendA0, fLine, extendA1) && this.acceptFraction(extendB0, fArc, extendB1)) {
222522
- this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
222523
- numAccepted++;
222524
- }
222525
- }
222526
- if (numAccepted === 0 && !arc.sweep.isFullCircle) {
222527
- // check for endpoint intersection beyond parametric tolerance but within point tolerance
222528
- const pointB0Local = arc.startPoint();
222529
- const pointB1Local = arc.endPoint();
222530
- if (this._worldToLocalAffine) {
222531
- this._worldToLocalAffine.multiplyXYAndZInPlace(pointB0Local);
222532
- this._worldToLocalAffine.multiplyXYAndZInPlace(pointB1Local);
222533
- }
222534
- const dist2 = [];
222535
- dist2.push({ d2: pointA0Local.distanceSquaredXY(pointB0Local), fA: 0, fB: 0 });
222536
- dist2.push({ d2: pointA0Local.distanceSquaredXY(pointB1Local), fA: 0, fB: 1 });
222537
- dist2.push({ d2: pointA1Local.distanceSquaredXY(pointB0Local), fA: 1, fB: 0 });
222538
- dist2.push({ d2: pointA1Local.distanceSquaredXY(pointB1Local), fA: 1, fB: 1 });
222539
- dist2.sort((a, b) => a.d2 - b.d2);
222540
- if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(dist2[0].d2, tol2))
222541
- this.recordPointWithLocalFractions(dist2[0].fA, cpA, fractionA0, fractionA1, dist2[0].fB, arc, 0, 1, reversed);
222542
- }
222543
- }
222589
+ if (this._worldToLocalPerspective)
222590
+ this.computeSegmentArcHomogeneous(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed);
222591
+ else
222592
+ this.computeSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed);
222544
222593
  }
222545
222594
  /**
222546
222595
  * Compute the intersection of two xy-arcs.
@@ -223036,7 +223085,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
223036
223085
  let converged = newtonSearcher.runIterations();
223037
223086
  const fractionA = newtonSearcher.getU();
223038
223087
  const fractionB = newtonSearcher.getV();
223039
- if (this.acceptFraction(extendA0, fractionA, extendA1) && this.acceptFraction(false, fractionB, false)) {
223088
+ // note looser tol for spiral, which can have high order tangency at start/end
223089
+ if (this.acceptFraction(extendA0, fractionA, extendA1) && this.acceptFraction(false, fractionB, false, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallFraction)) {
223040
223090
  const pointA = curveA.fractionToPoint(fractionA, CurveCurveIntersectXY._workPointA0);
223041
223091
  const pointB = spiralB.fractionToPoint(fractionB, CurveCurveIntersectXY._workPointB0);
223042
223092
  if (!converged) // Newton may have found close points even if it didn't converge parametrically
@@ -231554,6 +231604,13 @@ class TransitionSpiral3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_4__.Cu
231554
231604
  get spiralType() {
231555
231605
  return this._spiralType;
231556
231606
  }
231607
+ /**
231608
+ * Whether the start and end points are defined and within tolerance.
231609
+ * * Always `false` for `TransitionSpiral3d`.
231610
+ */
231611
+ isPhysicallyClosedCurve(_tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance, _xyOnly = false) {
231612
+ return false;
231613
+ }
231557
231614
  /** Return 1/r with convention that exact zero input returns 0 (straight line, zero curvature, infinite radius). */
231558
231615
  static radiusToCurvature(radius) {
231559
231616
  return (radius === 0.0) ? 0.0 : 1.0 / radius;
@@ -232673,7 +232730,7 @@ class AngleSweep {
232673
232730
  * @param toNegativeFraction exterior fraction handling:
232674
232731
  * * if true, return `fraction` period-shifted to within one period of the start
232675
232732
  * * if false, return `fraction` period-shifted to within one period of the end
232676
- * * if undefined, return the period-shift of `fraction` closest to [0,1].
232733
+ * * if undefined, return the period-shift of `fraction` closest in fraction space to [0,1].
232677
232734
  * @returns period-shifted fraction. If `fraction` is already in [0,1], or the sweep is empty, then `fraction` is
232678
232735
  * returned unchanged.
232679
232736
  */
@@ -232705,7 +232762,7 @@ class AngleSweep {
232705
232762
  * @param toNegativeFraction exterior fraction handling:
232706
232763
  * * if true, return `fraction` period-shifted to within one period of the start
232707
232764
  * * if false, return `fraction` period-shifted to within one period of the end
232708
- * * if undefined, return the period-shift of `fraction` closest to [0,1].
232765
+ * * if undefined, return the period-shift of `fraction` closest in fraction space to [0,1].
232709
232766
  * @returns period-shifted fraction. If `fraction` is already in [0,1], or the sweep is empty, then `fraction` is
232710
232767
  * returned unchanged.
232711
232768
  */
@@ -250498,6 +250555,14 @@ class Range3d extends RangeBase {
250498
250555
  diagonal(result) {
250499
250556
  return this.low.vectorTo(this.high, result);
250500
250557
  }
250558
+ /** Return the length of the range diagonal, optionally ignoring z extent. */
250559
+ diagonalLength(ignoreZ = false) {
250560
+ return ignoreZ ? this.low.distanceXY(this.high) : this.low.distance(this.high);
250561
+ }
250562
+ /** Return the squared length of the range diagonal, optionally ignoring z extent. */
250563
+ diagonalLengthSquared(ignoreZ = false) {
250564
+ return ignoreZ ? this.low.distanceSquaredXY(this.high) : this.low.distanceSquared(this.high);
250565
+ }
250501
250566
  /**
250502
250567
  * Return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very
250503
250568
  * large negative coordinates.
@@ -251551,6 +251616,14 @@ class Range2d extends RangeBase {
251551
251616
  diagonal(result) {
251552
251617
  return this.low.vectorTo(this.high, result);
251553
251618
  }
251619
+ /** Return the length of the range diagonal. */
251620
+ diagonalLength() {
251621
+ return this.low.distance(this.high);
251622
+ }
251623
+ /** Return the squared length of the range diagonal. */
251624
+ diagonalLengthSquared() {
251625
+ return this.low.distanceSquared(this.high);
251626
+ }
251554
251627
  /**
251555
251628
  * Return the point at the specified fraction along the diagonal vector. There is no check for isNull -- if the
251556
251629
  * range isNull(), the vector will have very large negative coordinates.
@@ -317534,7 +317607,9 @@ const Units = {
317534
317607
  PROBABILITY_PERCENT: "Units.PROBABILITY_PERCENT",
317535
317608
  },
317536
317609
  ROTATIONAL_SPRING_CONSTANT: {
317610
+ KN_M_PER_DEG: "Units.KN_M_PER_DEG",
317537
317611
  KN_M_PER_RAD: "Units.KN_M_PER_RAD",
317612
+ KPF_FT_PER_DEG: "Units.KPF_FT_PER_DEG",
317538
317613
  KPF_FT_PER_RAD: "Units.KPF_FT_PER_RAD",
317539
317614
  N_M_PER_DEG: "Units.N_M_PER_DEG",
317540
317615
  N_M_PER_RAD: "Units.N_M_PER_RAD",
@@ -318249,6 +318324,7 @@ const basicUnitConversionData = {
318249
318324
  "Units.KMOL_PER_SEC": ["Units.MOLAR_FLOW", 0.001, 0],
318250
318325
  "Units.KN": ["Units.FORCE", 0.001, 0],
318251
318326
  "Units.KN_M": ["Units.TORQUE", 0.001, 0],
318327
+ "Units.KN_M_PER_DEG": ["Units.ROTATIONAL_SPRING_CONSTANT", 0.0000174532925199433, 0],
318252
318328
  "Units.KN_M_PER_M": ["Units.LINEAR_TORQUE", 0.001, 0],
318253
318329
  "Units.KN_M_PER_RAD": ["Units.ROTATIONAL_SPRING_CONSTANT", 0.001, 0],
318254
318330
  "Units.KN_M_PER_SQ_M": ["Units.AREA_TORQUE", 0.001, 0],
@@ -318260,6 +318336,7 @@ const basicUnitConversionData = {
318260
318336
  "Units.KOHM": ["Units.ELECTRICAL_RESISTANCE", 0.001, 0],
318261
318337
  "Units.KPF": ["Units.FORCE", 0.00022480894309971, 0],
318262
318338
  "Units.KPF_FT": ["Units.TORQUE", 0.000737562149277265, 0],
318339
+ "Units.KPF_FT_PER_DEG": ["Units.ROTATIONAL_SPRING_CONSTANT", 0.0000128728879429742, 0],
318263
318340
  "Units.KPF_FT_PER_FT": ["Units.LINEAR_TORQUE", 0.00022480894309971, 0],
318264
318341
  "Units.KPF_FT_PER_RAD": ["Units.ROTATIONAL_SPRING_CONSTANT", 0.000737562149277265, 0],
318265
318342
  "Units.KPF_FT_PER_SQ_FT": ["Units.AREA_TORQUE", 0.0000685217658567918, 0],
@@ -321945,10 +322022,10 @@ class Settings {
321945
322022
  });
321946
322023
  }
321947
322024
  toString() {
321948
- return `Configurations:
321949
- oidc client id: ${this.oidcClientId},
321950
- oidc scopes: ${this.oidcScopes},
321951
- applicationId: ${this.gprid},
322025
+ return `Configurations:
322026
+ oidc client id: ${this.oidcClientId},
322027
+ oidc scopes: ${this.oidcScopes},
322028
+ applicationId: ${this.gprid},
321952
322029
  log level: ${this.logLevel}`;
321953
322030
  }
321954
322031
  }
@@ -333906,7 +333983,7 @@ var loadLanguages = instance.loadLanguages;
333906
333983
  (module) {
333907
333984
 
333908
333985
  "use strict";
333909
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.13.0-dev.4","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.10","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^13.0.6","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","vitest":"^4.1.10","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"~4.3.4","@loaders.gl/draco":"~4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
333986
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.13.0-dev.6","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s build:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.11","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.3","vitest":"^4.1.10","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"~4.3.4","@loaders.gl/draco":"~4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
333910
333987
 
333911
333988
  /***/ }
333912
333989