@itwin/rpcinterface-full-stack-tests 4.2.0-dev.17 → 4.2.0-dev.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"_0062.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\17\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.4.7\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_0062.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\4\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.4.7\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -92474,10 +92474,11 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92474
92474
  }
92475
92475
  if (0 === elevation && !modelTransform && !scriptTransform)
92476
92476
  return undefined;
92477
- const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(args.output);
92478
- transform.origin.z = elevation;
92479
- if (modelTransform)
92480
- transform.multiplyTransformTransform(modelTransform, transform);
92477
+ const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createTranslationXYZ(0, 0, elevation);
92478
+ if (modelTransform?.premultiply)
92479
+ modelTransform.transform.multiplyTransformTransform(transform, transform);
92480
+ if (modelTransform && !modelTransform.premultiply)
92481
+ transform.multiplyTransformTransform(modelTransform.transform, transform);
92481
92482
  if (scriptTransform)
92482
92483
  transform.multiplyTransformTransform(scriptTransform, transform);
92483
92484
  return transform;
@@ -97778,7 +97779,16 @@ function createWorkerProxy(workerJsPath) {
97778
97779
  const tasks = new Map();
97779
97780
  let curMsgId = 0;
97780
97781
  let terminated = false;
97781
- const worker = new Worker(workerJsPath);
97782
+ let worker;
97783
+ const sameOrigin = workerJsPath.substring(0, globalThis.origin.length) === globalThis.origin;
97784
+ if (sameOrigin || !workerJsPath.startsWith("http")) {
97785
+ worker = new Worker(workerJsPath);
97786
+ }
97787
+ else {
97788
+ const workerBlob = new Blob([`importScripts("${workerJsPath}");`]);
97789
+ const workerBlobUrl = URL.createObjectURL(workerBlob);
97790
+ worker = new Worker(workerBlobUrl);
97791
+ }
97782
97792
  worker.onmessage = (e) => {
97783
97793
  const response = e.data;
97784
97794
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(typeof response === "object");
@@ -100991,7 +101001,7 @@ function splitMeshParams(args) {
100991
101001
  const result = new Map();
100992
101002
  const mat = args.params.surface.material;
100993
101003
  const atlasOffset = undefined !== mat && mat.isAtlas ? mat.vertexTableOffset : undefined;
100994
- const atlasInfo = atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
101004
+ const atlasInfo = undefined !== atlasOffset ? { offset: atlasOffset, createMaterial: args.createMaterial } : undefined;
100995
101005
  const nodes = VertexTableSplitter.split({
100996
101006
  indices: args.params.surface.indices,
100997
101007
  vertices: args.params.vertices,
@@ -144434,7 +144444,9 @@ class PrimaryTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTr
144434
144444
  computeTransform(tree) {
144435
144445
  const baseTf = this.computeBaseTransform(tree);
144436
144446
  const displayTf = this.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.model.id);
144437
- return displayTf ? baseTf.multiplyTransformTransform(displayTf, displayTf) : baseTf;
144447
+ if (!displayTf)
144448
+ return baseTf;
144449
+ return displayTf.premultiply ? displayTf.transform.multiplyTransformTransform(baseTf) : baseTf.multiplyTransformTransform(displayTf.transform);
144438
144450
  }
144439
144451
  }
144440
144452
  /** @internal */
@@ -148421,7 +148433,7 @@ class TileDrawArgs {
148421
148433
  }
148422
148434
  computePixelSizeScaleFactor() {
148423
148435
  // Check to see if a model display transform with non-uniform scaling is being used.
148424
- const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.matrix;
148436
+ const mat = this.context.viewport.view.modelDisplayTransformProvider?.getModelDisplayTransform(this.tree.modelId)?.transform.matrix;
148425
148437
  if (!mat)
148426
148438
  return 1;
148427
148439
  const scale = [0, 1, 2].map((x) => mat.getColumn(x).magnitude());
@@ -183686,7 +183698,7 @@ __webpack_require__.r(__webpack_exports__);
183686
183698
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
183687
183699
  /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
183688
183700
  /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
183689
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.ConsolidateAdjacentCurvePrimitivesOptions),
183701
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
183690
183702
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
183691
183703
  /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
183692
183704
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
@@ -184832,10 +184844,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
184832
184844
  const uy = this._matrix.at(1, 0);
184833
184845
  const vx = this._matrix.at(0, 1);
184834
184846
  const vy = this._matrix.at(1, 1);
184835
- const axx = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
184836
- const ayy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
184837
- const axy = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
184838
- if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(axx, ayy, axy) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(axx, ayy))
184847
+ const dotUU = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, ux, uy);
184848
+ const dotVV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(vx, vy, vx, vy);
184849
+ const dotUV = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.dotProductXYXY(ux, uy, vx, vy);
184850
+ if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(dotUU, dotVV, dotUV) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(dotUU, dotVV))
184839
184851
  return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.hypotenuseXY(ux, uy);
184840
184852
  return undefined;
184841
184853
  }
@@ -186247,7 +186259,6 @@ CurveChainWithDistanceIndex._numCandidate = 0;
186247
186259
  __webpack_require__.r(__webpack_exports__);
186248
186260
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
186249
186261
  /* harmony export */ BagOfCurves: () => (/* binding */ BagOfCurves),
186250
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
186251
186262
  /* harmony export */ CurveChain: () => (/* binding */ CurveChain),
186252
186263
  /* harmony export */ CurveCollection: () => (/* binding */ CurveCollection)
186253
186264
  /* harmony export */ });
@@ -186648,22 +186659,6 @@ class BagOfCurves extends CurveCollection {
186648
186659
  return handler.handleBagOfCurves(this);
186649
186660
  }
186650
186661
  }
186651
- /**
186652
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
186653
- * @public
186654
- */
186655
- class ConsolidateAdjacentCurvePrimitivesOptions {
186656
- constructor() {
186657
- /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
186658
- this.consolidateLinearGeometry = true;
186659
- /** True to consolidate contiguous arcs */
186660
- this.consolidateCompatibleArcs = true;
186661
- /** Tolerance for collapsing identical points */
186662
- this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
186663
- /** Tolerance for removing interior colinear points. */
186664
- this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_10__.Geometry.smallMetricDistance;
186665
- }
186666
- }
186667
186662
 
186668
186663
 
186669
186664
  /***/ }),
@@ -186774,6 +186769,9 @@ class CurveCurve {
186774
186769
  * * Close approach xy-distances are measured without regard to z. This is equivalent to their separation distance
186775
186770
  * as seen in the top view, or as measured between their projections onto the xy-plane.
186776
186771
  * * If more than one approach is returned, one of them is the closest approach.
186772
+ * * If an input curve is a `CurveCollection`, then close approaches are computed to each `CurvePrimitive` child.
186773
+ * This can lead to many returned pairs, especially when both inputs are `CurveCollection`s. If an input curve is
186774
+ * an `AnyRegion` then close approaches are computed only to the boundary curves, not to the interior.
186777
186775
  * @param curveA first curve
186778
186776
  * @param curveB second curve
186779
186777
  * @param maxDistance maximum xy-distance to consider between the curves.
@@ -191881,10 +191879,10 @@ __webpack_require__.r(__webpack_exports__);
191881
191879
  /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
191882
191880
  /* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
191883
191881
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
191884
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
191885
191882
  /* harmony import */ var _CurveFactory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
191886
191883
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
191887
191884
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
191885
+ /* harmony import */ var _RegionOps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
191888
191886
  /*---------------------------------------------------------------------------------------------
191889
191887
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
191890
191888
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -191908,7 +191906,7 @@ __webpack_require__.r(__webpack_exports__);
191908
191906
  class ConsolidateAdjacentCurvePrimitivesContext extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__.NullGeometryHandler {
191909
191907
  constructor(options) {
191910
191908
  super();
191911
- this._options = options ? options : new _CurveCollection__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
191909
+ this._options = options ? options : new _RegionOps__WEBPACK_IMPORTED_MODULE_1__.ConsolidateAdjacentCurvePrimitivesOptions();
191912
191910
  }
191913
191911
  /** look for adjacent compatible primitives in a path or loop. */
191914
191912
  handleCurveChain(g) {
@@ -193468,6 +193466,7 @@ class RegionMomentsXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
193468
193466
  "use strict";
193469
193467
  __webpack_require__.r(__webpack_exports__);
193470
193468
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
193469
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* binding */ ConsolidateAdjacentCurvePrimitivesOptions),
193471
193470
  /* harmony export */ RegionBinaryOpType: () => (/* binding */ RegionBinaryOpType),
193472
193471
  /* harmony export */ RegionOps: () => (/* binding */ RegionOps)
193473
193472
  /* harmony export */ });
@@ -194190,6 +194189,22 @@ function pushToInOnOutArrays(curve, select, arrayNegative, array0, arrayPositive
194190
194189
  else
194191
194190
  array0.push(curve);
194192
194191
  }
194192
+ /**
194193
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
194194
+ * @public
194195
+ */
194196
+ class ConsolidateAdjacentCurvePrimitivesOptions {
194197
+ constructor() {
194198
+ /** True to consolidated linear geometry (e.g. separate LineSegment3d and LineString3d) into LineString3d */
194199
+ this.consolidateLinearGeometry = true;
194200
+ /** True to consolidate contiguous arcs */
194201
+ this.consolidateCompatibleArcs = true;
194202
+ /** Tolerance for collapsing identical points */
194203
+ this.duplicatePointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
194204
+ /** Tolerance for removing interior colinear points. */
194205
+ this.colinearPointTolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
194206
+ }
194207
+ }
194193
194208
 
194194
194209
 
194195
194210
  /***/ }),
@@ -196238,7 +196253,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196238
196253
  fractionB = 1;
196239
196254
  this._workPointB = pointB0.interpolate(fractionB, pointB1, this._workPointB);
196240
196255
  const distanceSquared = this._workPointB.distanceSquaredXY(pointA);
196241
- if (distanceSquared < Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
196256
+ if (distanceSquared <= Math.min(maxDistanceSquared, closestApproach.detailA.a)) {
196242
196257
  closestApproach.detailA.setFP(fractionA, pointA, undefined, distanceSquared);
196243
196258
  closestApproach.detailB.setFP(fractionB, this._workPointB, undefined, distanceSquared);
196244
196259
  updated = true;
@@ -196281,23 +196296,23 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196281
196296
  closestApproach.detailA.a = 2 * maxDistanceSquared; // init to an approach that's too far away
196282
196297
  let reversed = false;
196283
196298
  const uu = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(ux, uy);
196284
- if (hab0 * hab0 < maxDistanceSquared * uu) { // test distance of b0 to u
196299
+ if (hab0 * hab0 <= maxDistanceSquared * uu) { // test distance of b0 to u
196285
196300
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e00x, e00y) / uu;
196286
196301
  if (this.updatePointToSegmentDistance(0, b0, a0, a1, fractionA, maxDistanceSquared, closestApproach))
196287
196302
  reversed = true;
196288
196303
  }
196289
- if (hab1 * hab1 < maxDistanceSquared * uu) { // test distance of b1 to u
196304
+ if (hab1 * hab1 <= maxDistanceSquared * uu) { // test distance of b1 to u
196290
196305
  const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(ux, uy, e01x, e01y) / uu;
196291
196306
  if (this.updatePointToSegmentDistance(1, b1, a0, a1, fractionA, maxDistanceSquared, closestApproach))
196292
196307
  reversed = true;
196293
196308
  }
196294
196309
  const vv = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.hypotenuseSquaredXY(vx, vy);
196295
- if (hba0 * hba0 < maxDistanceSquared * vv) { // test distance of a0 to v
196310
+ if (hba0 * hba0 <= maxDistanceSquared * vv) { // test distance of a0 to v
196296
196311
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e00x, e00y) / vv;
196297
196312
  if (this.updatePointToSegmentDistance(0, a0, b0, b1, fractionB, maxDistanceSquared, closestApproach))
196298
196313
  reversed = false;
196299
196314
  }
196300
- if (hba1 * hba1 < maxDistanceSquared * vv) { // test distance of a1 to v
196315
+ if (hba1 * hba1 <= maxDistanceSquared * vv) { // test distance of a1 to v
196301
196316
  const fractionB = -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv;
196302
196317
  if (this.updatePointToSegmentDistance(1, a1, b0, b1, fractionB, maxDistanceSquared, closestApproach))
196303
196318
  reversed = false;
@@ -196375,10 +196390,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196375
196390
  * Low level dispatch of segment with arc.
196376
196391
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
196377
196392
  * To consider:
196378
- * 1) arc endpoints to segment endpoints or arc endpoints projection to the segment.
196379
- * 2) intersection between arc and segment.
196393
+ * 1) intersection between arc and segment.
196394
+ * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
196380
196395
  * 3) line parallel to arc tangent.
196381
- * @param cpA the segment
196396
+ * @param cpA curve A (line segment or line string)
196382
196397
  * @param pointA0 start point of the segment
196383
196398
  * @param fractionA0 fraction of the start of the segment
196384
196399
  * @param pointA1 end point of the segment
@@ -196387,9 +196402,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196387
196402
  * @param reversed true to have order reversed in final structures
196388
196403
  */
196389
196404
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
196390
- // 1) arc endpoints to segment endpoints or arc endpoints projection to the segment
196391
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, arc, 0, 1, false, reversed);
196392
- // 2) intersection between arc and segment
196405
+ // 1) intersection between arc and segment
196393
196406
  // Suppose:
196394
196407
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
196395
196408
  // Line: contains points A0 and A1
@@ -196398,6 +196411,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196398
196411
  // solve for theta.
196399
196412
  // evaluate points.
196400
196413
  // project back to line.
196414
+ let intersectionFound = false;
196401
196415
  const data = arc.toTransformedVectors();
196402
196416
  const pointA0Local = pointA0;
196403
196417
  const pointA1Local = pointA1;
@@ -196416,8 +196430,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196416
196430
  // only add if the point is within the start and end fractions of both line segment and arc
196417
196431
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
196418
196432
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
196433
+ intersectionFound = true;
196419
196434
  }
196420
196435
  }
196436
+ if (intersectionFound)
196437
+ return;
196438
+ // 2) endpoints to endpoints or endpoints projection to the other curve
196439
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
196421
196440
  // 3) line parallel to arc tangent.
196422
196441
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
196423
196442
  // point where the tangent line on arc at that point is parallel to the line.
@@ -196434,48 +196453,37 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196434
196453
  }
196435
196454
  }
196436
196455
  }
196437
- // Caller accesses data from two arcs, ensures circular, and orders with radiusA >= radiusB
196456
+ /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
196438
196457
  dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
196439
196458
  const c = cpA.center.distance(cpB.center);
196440
196459
  const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
196441
- if (c > radiusA + radiusB + e) // widely separated
196460
+ if (c > radiusA + radiusB + e) // distance between circles is more than max distance
196442
196461
  return;
196443
- // To consider:
196444
- // 1) endpoint to endpoint or projection
196445
- // 2) true intersection
196446
- // 3) line parallel to arc tangent.
196462
+ // TODO: 1) intersection between arcs
196463
+ // 2) endpoints to endpoints
196447
196464
  this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
196465
+ // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
196448
196466
  if (!_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(c)) {
196449
- // ?? endpoint hits are recorded. Maybe also need overlap?
196450
196467
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(cpA.center, cpB.center);
196451
196468
  vectorAB.scaleInPlace(1.0 / c);
196452
- if (c - radiusA - radiusB > e) {
196453
- // no approaches possible
196454
- }
196455
- else {
196456
- for (const rA of [-radiusA, radiusA]) {
196457
- for (const rB of [-radiusB, radiusB]) {
196458
- const tangentDistance = c - rA + rB;
196459
- if (tangentDistance < e) {
196460
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
196461
- if (detailA) {
196462
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
196463
- if (detailB) {
196464
- this.captureDetailPair(detailA, detailB, reversed);
196465
- }
196466
- }
196469
+ for (const rA of [-radiusA, radiusA]) {
196470
+ for (const rB of [-radiusB, radiusB]) {
196471
+ const tangentDistance = c - rA + rB;
196472
+ if (tangentDistance < e) {
196473
+ const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
196474
+ if (detailA) {
196475
+ const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
196476
+ if (detailB)
196477
+ this.captureDetailPair(detailA, detailB, reversed);
196467
196478
  }
196468
196479
  }
196469
196480
  }
196470
196481
  }
196471
196482
  }
196472
196483
  }
196473
- /**
196474
- * Find the fractional point (if any) on an arc, known to be circular and displayed from the center in the
196475
- * direction of a scaled vector.
196476
- */
196484
+ /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
196477
196485
  resolveDirectionToArcXYFraction(arc, radialVector, scale) {
196478
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies
196486
+ // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
196479
196487
  const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
196480
196488
  const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
196481
196489
  const radians = Math.atan2(s, c);
@@ -196484,10 +196492,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196484
196492
  return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
196485
196493
  return undefined;
196486
196494
  }
196487
- // Caller accesses data from two arcs.
196488
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196489
- // Solves the arc-arc equations
196495
+ /** Low level dispatch of arc with arc. Only circular arcs are supported. */
196490
196496
  dispatchArcArc(cpA, cpB, reversed) {
196497
+ const rangeA = cpA.range();
196498
+ const rangeB = cpB.range();
196499
+ rangeA.expandInPlace(this._maxDistanceToAccept);
196500
+ if (!rangeB.intersectsRangeXY(rangeA))
196501
+ return;
196491
196502
  if (this._circularArcB) {
196492
196503
  const radiusB = this._circularRadiusB;
196493
196504
  const radiusA = cpA.circularRadiusXY();
@@ -196500,17 +196511,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196500
196511
  }
196501
196512
  }
196502
196513
  }
196503
- // Caller accesses data from two arcs.
196504
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196505
- // Solves the arc-arc equations
196514
+ /** Low level dispatch of arc with (beziers of) a bspline curve */
196506
196515
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
196507
196516
  const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
196508
196517
  cpB.emitStrokes(ls);
196509
196518
  this.computeArcLineString(cpA, ls, reversed);
196510
196519
  }
196511
- // Caller accesses data from two arcs.
196512
- // Selects the best conditioned arc (in xy parts) as "circle after inversion"
196513
- // Solves the arc-arc equations
196520
+ /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
196514
196521
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
196515
196522
  const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
196516
196523
  bcurveA.emitStrokes(lsA);
@@ -196548,6 +196555,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196548
196555
  }
196549
196556
  /** Detail computation for arc approaching linestring. */
196550
196557
  computeArcLineString(arcA, lsB, reversed) {
196558
+ const rangeA = arcA.range();
196559
+ const rangeB = lsB.range();
196560
+ rangeA.expandInPlace(this._maxDistanceToAccept);
196561
+ if (!rangeB.intersectsRangeXY(rangeA))
196562
+ return;
196551
196563
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
196552
196564
  const pointB1 = CurveCurveCloseApproachXY._workPointBB1;
196553
196565
  const numB = lsB.numPoints();
@@ -196565,10 +196577,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196565
196577
  }
196566
196578
  return undefined;
196567
196579
  }
196568
- /** Low level dispatch of curve chain. */
196569
- dispatchCurveChain(geomA, geomAHandler) {
196580
+ /** Low level dispatch of curve collection. */
196581
+ dispatchCurveCollection(geomA, geomAHandler) {
196570
196582
  const geomB = this._geometryB; // save
196571
- if (!geomB || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain))
196583
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection))
196572
196584
  return;
196573
196585
  for (const child of geomB.children) {
196574
196586
  this.resetGeometry(child);
@@ -196591,9 +196603,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196591
196603
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196592
196604
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
196593
196605
  }
196594
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196595
- this.dispatchCurveChain(segmentA, this.handleLineSegment3d.bind(this));
196606
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196607
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
196596
196608
  }
196609
+ return undefined;
196597
196610
  }
196598
196611
  /**
196599
196612
  * Set bits for comparison to range xy
@@ -196601,6 +196614,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196601
196614
  * * bit 0x02 => x larger than range.high.x
196602
196615
  * * bit 0x04 => y smaller than range.low.y
196603
196616
  * * bit 0x08 => y larger than range.high.y
196617
+ * * If we divide XY plane into 9 areas using the range, the function returns 0 for points
196618
+ * inside the range. Below is other binary numbers returned by the function for all 9 areas:
196619
+ * 1001 | 1000 | 1010
196620
+ * ------------------
196621
+ * 1 | 0 | 10
196622
+ * ------------------
196623
+ * 101 | 100 | 110
196604
196624
  * @param xy point to test
196605
196625
  * @param range range for comparison
196606
196626
  */
@@ -196610,12 +196630,14 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196610
196630
  result = 0x01;
196611
196631
  else if (x > range.high.x)
196612
196632
  result = 0x02;
196633
+ // note the OR operation
196613
196634
  if (y < range.low.y)
196614
196635
  result |= 0x04;
196615
196636
  else if (y > range.high.y)
196616
196637
  result |= 0x08;
196617
196638
  return result;
196618
196639
  }
196640
+ /** Low level dispatch of line string with line string. */
196619
196641
  computeLineStringLineString(lsA, lsB, reversed) {
196620
196642
  const rangeA = lsA.range();
196621
196643
  const rangeB = lsB.range();
@@ -196632,7 +196654,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196632
196654
  const numA = lsA.numPoints();
196633
196655
  const numB = lsB.numPoints();
196634
196656
  if (numA > 1 && numB > 1) {
196635
- lsA.pointAt(0, pointA0);
196636
196657
  const dfA = 1.0 / (numA - 1);
196637
196658
  const dfB = 1.0 / (numB - 1);
196638
196659
  let fA0 = 0.0;
@@ -196642,6 +196663,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196642
196663
  fA1 = ia * dfA;
196643
196664
  fB0 = 0.0;
196644
196665
  lsA.pointAt(ia, pointA1);
196666
+ // rangeA1 is around line segment [A0,A1] expanded by max distance
196645
196667
  rangeA1.setNull();
196646
196668
  rangeA1.extendPoint(pointA0);
196647
196669
  rangeA1.extendPoint(pointA1);
@@ -196653,10 +196675,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196653
196675
  lsB.pointAt(ib, pointB1);
196654
196676
  bitB1 = this.classifyBitsPointRangeXY(pointB1.x, pointB1.y, rangeA1);
196655
196677
  fB1 = ib * dfB;
196656
- // Do NOT study the segment in detail if both bitB bits are on for any of the 4 planes . ..
196657
- if ((bitB0 & bitB1) === 0) {
196678
+ // DO NOT study the segment in detail if both bitB bits are on for any of the 4 planes
196679
+ // (i.e., no intersection between rangeA1 and the range around line segment [B0,B1])
196680
+ if ((bitB0 & bitB1) === 0)
196658
196681
  this.dispatchSegmentSegment(lsA, pointA0, fA0, pointA1, fA1, lsB, pointB0, fB0, pointB1, fB1, reversed);
196659
- }
196660
196682
  }
196661
196683
  }
196662
196684
  }
@@ -196677,8 +196699,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196677
196699
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196678
196700
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
196679
196701
  }
196680
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196681
- this.dispatchCurveChain(lsA, this.handleLineString3d.bind(this));
196702
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196703
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
196682
196704
  }
196683
196705
  return undefined;
196684
196706
  }
@@ -196696,8 +196718,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196696
196718
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3d) {
196697
196719
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
196698
196720
  }
196699
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196700
- this.dispatchCurveChain(arc0, this.handleArc3d.bind(this));
196721
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196722
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
196701
196723
  }
196702
196724
  return undefined;
196703
196725
  }
@@ -196715,8 +196737,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196715
196737
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_10__.BSplineCurve3dBase) {
196716
196738
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
196717
196739
  }
196718
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveChain) {
196719
- this.dispatchCurveChain(curve, this.handleBSplineCurve3d.bind(this));
196740
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
196741
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
196720
196742
  }
196721
196743
  return undefined;
196722
196744
  }
@@ -214185,7 +214207,6 @@ class XYZ {
214185
214207
  }
214186
214208
  /**
214187
214209
  * Set the x,y,z parts from one of these input types
214188
- *
214189
214210
  * * XYZ -- copy the x,y,z parts
214190
214211
  * * Float64Array -- Copy from indices 0,1,2 to x,y,z
214191
214212
  * * XY -- copy the x, y parts and set z=0
@@ -222962,7 +222983,7 @@ class YawPitchRollAngles {
222962
222983
  */
222963
222984
  static createFromMatrix3d(matrix, result) {
222964
222985
  /**
222965
- * The rotation matrix for is
222986
+ * The rotation matrix form is
222966
222987
  *
222967
222988
  * Matrix3d.createRowValues(
222968
222989
  * cz * cy, -(sz * cx + cz * sy * sx), (sz * sx - cz * sy * cx),
@@ -279831,7 +279852,7 @@ class TestContext {
279831
279852
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
279832
279853
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
279833
279854
  await core_frontend_1.NoRenderApp.startup({
279834
- applicationVersion: "4.2.0-dev.17",
279855
+ applicationVersion: "4.2.0-dev.19",
279835
279856
  applicationId: this.settings.gprid,
279836
279857
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
279837
279858
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -299265,7 +299286,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
299265
299286
  /***/ ((module) => {
299266
299287
 
299267
299288
  "use strict";
299268
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.17","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","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 ES2020 --outDir lib/esm","clean":"rimraf 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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.2.0-dev.17","@itwin/core-bentley":"workspace:^4.2.0-dev.17","@itwin/core-common":"workspace:^4.2.0-dev.17","@itwin/core-geometry":"workspace:^4.2.0-dev.17","@itwin/core-orbitgt":"workspace:^4.2.0-dev.17","@itwin/core-quantity":"workspace:^4.2.0-dev.17"},"//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":{"@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/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.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/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
299289
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.19","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","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 ES2020 --outDir lib/esm","clean":"rimraf 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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.2.0-dev.19","@itwin/core-bentley":"workspace:^4.2.0-dev.19","@itwin/core-common":"workspace:^4.2.0-dev.19","@itwin/core-geometry":"workspace:^4.2.0-dev.19","@itwin/core-orbitgt":"workspace:^4.2.0-dev.19","@itwin/core-quantity":"workspace:^4.2.0-dev.19"},"//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":{"@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/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.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/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
299269
299290
 
299270
299291
  /***/ }),
299271
299292