@itwin/rpcinterface-full-stack-tests 5.9.0-dev.15 → 5.9.0-dev.17

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.
@@ -65718,7 +65718,7 @@ class DbQueryError extends _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Bent
65718
65718
  this.request = request;
65719
65719
  }
65720
65720
  static throwIfError(response, request) {
65721
- if (response.status >= DbResponseStatus.Error) {
65721
+ if (response.status >= (DbResponseStatus.Error)) {
65722
65722
  throw new DbQueryError(response, request);
65723
65723
  }
65724
65724
  if (response.status === DbResponseStatus.Cancel) {
@@ -71630,12 +71630,11 @@ var HiddenLine;
71630
71630
  */
71631
71631
  width;
71632
71632
  constructor(json, hidden) {
71633
- if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isEmptyObjectOrUndefined(json)) {
71633
+ if (!json || _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isEmptyObjectOrUndefined(json)) {
71634
71634
  if (hidden)
71635
71635
  this.pattern = _LinePixels__WEBPACK_IMPORTED_MODULE_2__.LinePixels.HiddenLine;
71636
71636
  return;
71637
71637
  }
71638
- json = json; // per JsonUtils.isEmptyObjectOrUndefined()
71639
71638
  if (undefined !== json.color && false !== json.ovrColor)
71640
71639
  this.color = _ColorDef__WEBPACK_IMPORTED_MODULE_1__.ColorDef.fromJSON(json.color);
71641
71640
  if (undefined !== json.pattern) {
@@ -102352,7 +102351,7 @@ var XmlSerializationUtils;
102352
102351
  async function writePrimitiveProperty(propertyClass, propertyValue, propertyElement) {
102353
102352
  let primitiveType;
102354
102353
  if (propertyClass.isEnumeration()) {
102355
- const enumeration = await propertyClass.enumeration;
102354
+ const enumeration = await (propertyClass).enumeration;
102356
102355
  if (!enumeration)
102357
102356
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.ECSchemaError(_Exception__WEBPACK_IMPORTED_MODULE_1__.ECSchemaStatus.ClassNotFound, `The enumeration on property class '${propertyClass.fullName}' could not be found in the current schema context.`);
102358
102357
  if (enumeration.type === undefined)
@@ -104806,7 +104805,7 @@ class IncrementalSchemaLocater {
104806
104805
  * @returns The SchemaProps object.
104807
104806
  */
104808
104807
  async createSchemaProps(schemaKey, schemaContext) {
104809
- const schemaInfo = await schemaContext.getSchemaInfo(schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
104808
+ const schemaInfo = await schemaContext.getSchemaInfo(schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest); // eslint-disable-line @typescript-eslint/no-unnecessary-type-assertion
104810
104809
  if (!schemaInfo)
104811
104810
  throw new Error(`Schema ${schemaKey.name} could not be found.`);
104812
104811
  const schemaReferences = [];
@@ -129664,41 +129663,77 @@ var PerModelCategoryVisibility;
129664
129663
  }
129665
129664
  PerModelCategoryVisibility.createOverrides = createOverrides;
129666
129665
  })(PerModelCategoryVisibility || (PerModelCategoryVisibility = {}));
129667
- class PerModelCategoryVisibilityOverride {
129668
- modelId;
129669
- categoryId;
129670
- visible;
129671
- constructor(modelId, categoryId, visible) {
129672
- this.modelId = modelId;
129673
- this.categoryId = categoryId;
129674
- this.visible = visible;
129675
- }
129676
- reset(modelId, categoryId, visible) {
129677
- this.modelId = modelId;
129678
- this.categoryId = categoryId;
129679
- this.visible = visible;
129680
- }
129681
- }
129682
- function compareCategoryOverrides(lhs, rhs) {
129683
- const cmp = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.compareStrings)(lhs.modelId, rhs.modelId);
129684
- return 0 === cmp ? (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.compareStrings)(lhs.categoryId, rhs.categoryId) : cmp;
129685
- }
129686
129666
  /** The Viewport-specific implementation of PerModelCategoryVisibility.Overrides. */
129687
- class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.SortedArray {
129688
- _scratch = new PerModelCategoryVisibilityOverride("0", "0", false);
129667
+ class PerModelCategoryVisibilityOverrides {
129668
+ _map = new Map();
129669
+ /** Flat set of all override entries, providing O(1) iteration via [Symbol.iterator]. Kept in sync with `_map`. */
129670
+ _set = new Set();
129689
129671
  _vp;
129690
129672
  constructor(vp) {
129691
- super(compareCategoryOverrides);
129692
129673
  this._vp = vp;
129693
129674
  }
129675
+ [Symbol.iterator]() {
129676
+ return this._set[Symbol.iterator]();
129677
+ }
129694
129678
  getOverride(modelId, categoryId) {
129695
- this._scratch.reset(modelId, categoryId, false);
129696
- const ovr = this.findEqual(this._scratch);
129679
+ const ovr = this._map.get(modelId)?.get(categoryId);
129697
129680
  if (undefined !== ovr)
129698
129681
  return ovr.visible ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;
129699
129682
  else
129700
129683
  return PerModelCategoryVisibility.Override.None;
129701
129684
  }
129685
+ getModelEntry({ modelId, override }) {
129686
+ let modelEntry = this._map.get(modelId);
129687
+ if (modelEntry) {
129688
+ return modelEntry;
129689
+ }
129690
+ if (override === PerModelCategoryVisibility.Override.None) {
129691
+ return undefined;
129692
+ }
129693
+ modelEntry = new Map();
129694
+ this._map.set(modelId, modelEntry);
129695
+ return modelEntry;
129696
+ }
129697
+ addOrRemoveOverrideEntry({ modelEntry, categoryId, modelId, override }) {
129698
+ const overrideEntry = modelEntry.get(categoryId);
129699
+ if (override === PerModelCategoryVisibility.Override.None) {
129700
+ if (overrideEntry === undefined) {
129701
+ return false;
129702
+ }
129703
+ this._set.delete(overrideEntry);
129704
+ modelEntry.delete(categoryId);
129705
+ return true;
129706
+ }
129707
+ const visible = override === PerModelCategoryVisibility.Override.Show;
129708
+ if (overrideEntry === undefined) {
129709
+ const ovr = { modelId, categoryId, visible };
129710
+ modelEntry.set(categoryId, ovr);
129711
+ this._set.add(ovr);
129712
+ return true;
129713
+ }
129714
+ if (overrideEntry.visible !== visible) {
129715
+ overrideEntry.visible = visible;
129716
+ return true;
129717
+ }
129718
+ return false;
129719
+ }
129720
+ applyOverride(modelId, categoryIds, override, catIdsToLoad) {
129721
+ const modelEntry = this.getModelEntry({ modelId, override });
129722
+ let changed = false;
129723
+ if (!modelEntry)
129724
+ return changed;
129725
+ for (const categoryId of categoryIds) {
129726
+ if (this.addOrRemoveOverrideEntry({ modelEntry, categoryId, modelId, override })) {
129727
+ changed = true;
129728
+ if (catIdsToLoad && override !== PerModelCategoryVisibility.Override.None)
129729
+ catIdsToLoad.push(categoryId);
129730
+ }
129731
+ }
129732
+ if (modelEntry.size === 0) {
129733
+ this._map.delete(modelId);
129734
+ }
129735
+ return changed;
129736
+ }
129702
129737
  /**
129703
129738
  * set the overrides for multiple perModelCategoryVisibility props, loading categoryIds from the iModel if necessary.
129704
129739
  * @see [[PerModelCategoryVisibility]]
@@ -129713,19 +129748,11 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
129713
129748
  const catIdsToLoad = [];
129714
129749
  const iModelToUse = iModel ? iModel : this._vp.iModel;
129715
129750
  for (const override of perModelCategoryVisibility) {
129716
- const modelId = override.modelId;
129717
129751
  // The caller may pass a single categoryId as a string, if we don't convert this to an array we will iterate
129718
129752
  // over each individual character of that string, which is not the desired behavior.
129719
129753
  const categoryIds = typeof override.categoryIds === "string" ? [override.categoryIds] : override.categoryIds;
129720
- const visOverride = override.visOverride;
129721
- for (const categoryId of categoryIds) {
129722
- if (this.findAndUpdateOverrideInArray(modelId, categoryId, visOverride)) {
129723
- anyChanged = true;
129724
- if (PerModelCategoryVisibility.Override.None !== visOverride) {
129725
- catIdsToLoad.push(categoryId);
129726
- }
129727
- }
129728
- }
129754
+ if (this.applyOverride(override.modelId, categoryIds, override.visOverride, catIdsToLoad))
129755
+ anyChanged = true;
129729
129756
  }
129730
129757
  if (anyChanged) {
129731
129758
  this._vp.setViewedCategoriesPerModelChanged();
@@ -129733,44 +129760,17 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
129733
129760
  this._vp.subcategories.push(iModelToUse.subcategories, catIdsToLoad, () => this._vp.setViewedCategoriesPerModelChanged());
129734
129761
  }
129735
129762
  }
129736
- return;
129737
- }
129738
- /** Find and update the override in the array of overrides. If override not found, adds it to the array.
129739
- * If the array was changed, returns true. */
129740
- findAndUpdateOverrideInArray(modelId, categoryId, override) {
129741
- const ovr = this._scratch;
129742
- ovr.reset(modelId, categoryId, false);
129743
- let changed = false;
129744
- const index = this.indexOf(ovr);
129745
- if (-1 === index) {
129746
- if (PerModelCategoryVisibility.Override.None !== override) {
129747
- this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));
129748
- changed = true;
129749
- }
129750
- }
129751
- else {
129752
- if (PerModelCategoryVisibility.Override.None === override) {
129753
- this._array.splice(index, 1);
129754
- changed = true;
129755
- }
129756
- else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {
129757
- this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);
129758
- changed = true;
129759
- }
129760
- }
129761
- return changed;
129762
129763
  }
129763
129764
  setOverride(modelIds, categoryIds, override) {
129765
+ const categoryIdIterable = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds);
129764
129766
  let changed = false;
129765
129767
  for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
129766
- for (const categoryId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds)) {
129767
- if (this.findAndUpdateOverrideInArray(modelId, categoryId, override))
129768
- changed = true;
129769
- }
129768
+ if (this.applyOverride(modelId, categoryIdIterable, override))
129769
+ changed = true;
129770
129770
  }
129771
129771
  if (changed) {
129772
129772
  this._vp.setViewedCategoriesPerModelChanged();
129773
- if (PerModelCategoryVisibility.Override.None !== override) {
129773
+ if (override !== PerModelCategoryVisibility.Override.None) {
129774
129774
  // Ensure subcategories loaded.
129775
129775
  this._vp.subcategories.push(this._vp.iModel.subcategories, categoryIds, () => this._vp.setViewedCategoriesPerModelChanged());
129776
129776
  }
@@ -129778,30 +129778,32 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
129778
129778
  }
129779
129779
  clearOverrides(modelIds) {
129780
129780
  if (undefined === modelIds) {
129781
- if (0 < this.length) {
129782
- this.clear();
129781
+ if (this._map.size > 0) {
129782
+ this._map.clear();
129783
+ this._set.clear();
129783
129784
  this._vp.setViewedCategoriesPerModelChanged();
129784
129785
  }
129785
129786
  return;
129786
129787
  }
129787
- for (let i = 0; i < this.length;) {
129788
- const ovr = this._array[i];
129789
- let removed = false;
129790
- for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
129791
- if (modelId === ovr.modelId) {
129792
- this._array.splice(i, 1);
129793
- this._vp.setViewedCategoriesPerModelChanged();
129794
- removed = true;
129795
- break;
129796
- }
129788
+ let changed = false;
129789
+ for (const modelId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(modelIds)) {
129790
+ const modelEntry = this._map.get(modelId);
129791
+ if (!modelEntry) {
129792
+ continue;
129797
129793
  }
129798
- if (!removed)
129799
- ++i;
129794
+ changed = true;
129795
+ for (const overrideEntry of modelEntry.values()) {
129796
+ this._set.delete(overrideEntry);
129797
+ }
129798
+ this._map.delete(modelId);
129799
+ }
129800
+ if (changed) {
129801
+ this._vp.setViewedCategoriesPerModelChanged();
129800
129802
  }
129801
129803
  }
129802
129804
  addOverrides(fs, ovrs) {
129803
129805
  const cache = this._vp.iModel.subcategories;
129804
- for (const ovr of this._array) {
129806
+ for (const ovr of this._set) {
129805
129807
  const subcats = cache.getSubCategories(ovr.categoryId);
129806
129808
  if (undefined === subcats)
129807
129809
  continue;
@@ -129811,7 +129813,6 @@ class PerModelCategoryVisibilityOverrides extends _itwin_core_bentley__WEBPACK_I
129811
129813
  /* if (!this._vp.view.viewsModel(ovr.modelId))
129812
129814
  continue; */
129813
129815
  // ###TODO: Avoid recomputing upper and lower portions of modelId if modelId repeated.
129814
- // (Array is sorted first by modelId).
129815
129816
  // Also avoid computing if no effective overrides.
129816
129817
  const modelLo = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.getLowerUint32(ovr.modelId);
129817
129818
  const modelHi = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.getUpperUint32(ovr.modelId);
@@ -248405,7 +248406,9 @@ class Loop extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
248405
248406
  }
248406
248407
  /** Create a new `Loop` with no children */
248407
248408
  cloneEmptyPeer() {
248408
- return new Loop();
248409
+ const emptyClone = new Loop();
248410
+ emptyClone.isInner = this.isInner;
248411
+ return emptyClone;
248409
248412
  }
248410
248413
  /** Second step of double dispatch: call `handler.handleLoop(this)` */
248411
248414
  dispatchToGeometryHandler(handler) {
@@ -254240,25 +254243,25 @@ __webpack_require__.r(__webpack_exports__);
254240
254243
  /* harmony export */ CurveCurveCloseApproachXY: () => (/* binding */ CurveCurveCloseApproachXY)
254241
254244
  /* harmony export */ });
254242
254245
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
254243
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
254246
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
254244
254247
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
254245
254248
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
254246
254249
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
254247
254250
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
254248
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
254251
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
254249
254252
  /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
254250
254253
  /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
254251
254254
  /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
254252
254255
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
254253
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
254254
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
254255
- /* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
254256
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
254257
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
254258
+ /* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
254256
254259
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
254257
254260
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
254258
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
254259
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
254261
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
254262
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
254260
254263
  /* harmony import */ var _ProxyCurve__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
254261
- /* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
254264
+ /* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
254262
254265
  /*---------------------------------------------------------------------------------------------
254263
254266
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
254264
254267
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -254692,32 +254695,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254692
254695
  // 2) perpendicular line between 2 arcs (includes intersections)
254693
254696
  this.allPerpendicularsArcArcBounded(cpA, cpB, reversed);
254694
254697
  }
254695
- /** Low level dispatch of arc with (beziers of) a bspline curve */
254696
- dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
254697
- const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254698
- cpB.emitStrokes(ls);
254699
- this.computeArcLineString(cpA, ls, reversed);
254700
- }
254701
- /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
254702
- dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
254703
- const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254704
- bcurveA.emitStrokes(lsA);
254705
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254706
- bcurveB.emitStrokes(lsB);
254707
- this.computeLineStringLineString(lsA, lsB, reversed);
254708
- }
254709
- /** Low level dispatch of linestring with (beziers of) a bspline curve */
254710
- dispatchLineStringBSplineCurve(lsA, curveB, reversed) {
254711
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254712
- curveB.emitStrokes(lsB);
254713
- this.computeLineStringLineString(lsA, lsB, reversed);
254714
- }
254715
- /** Low level dispatch of segment with (beziers of) a bspline curve */
254716
- dispatchSegmentBsplineCurve(segA, curveB, reversed) {
254717
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254718
- curveB.emitStrokes(lsB);
254719
- this.computeSegmentLineString(segA, lsB, reversed);
254720
- }
254721
254698
  /** Detail computation for segment approaching linestring. */
254722
254699
  computeSegmentLineString(segA, lsB, reversed) {
254723
254700
  const numB = lsB.numPoints();
@@ -254745,7 +254722,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254745
254722
  const v0 = CurveCurveCloseApproachXY._workPointBB0;
254746
254723
  const v1 = CurveCurveCloseApproachXY._workPointBB1;
254747
254724
  // 1. record intersections
254748
- const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_12__.CurveCurve.intersectionXYPairs(arcA, false, lsB, false, this._xyTolerance);
254725
+ const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(arcA, false, lsB, false, this._xyTolerance);
254749
254726
  for (const intersection of intersections)
254750
254727
  this.testAndRecordPair(intersection, reversed);
254751
254728
  // 2. record linestring interior vertex projections onto arc
@@ -254803,7 +254780,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254803
254780
  return;
254804
254781
  let bitB0;
254805
254782
  let bitB1;
254806
- const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
254783
+ const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_12__.Range3d.createNull();
254807
254784
  const pointA0 = CurveCurveCloseApproachXY._workPointAA0;
254808
254785
  const pointA1 = CurveCurveCloseApproachXY._workPointAA1;
254809
254786
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
@@ -254845,7 +254822,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254845
254822
  /** Low level dispatch of curve collection. */
254846
254823
  dispatchCurveCollection(geomA, geomAHandler) {
254847
254824
  const geomB = this._geometryB; // save
254848
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection))
254825
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection))
254849
254826
  return;
254850
254827
  for (const child of geomB.children) {
254851
254828
  this.resetGeometry(child);
@@ -254855,9 +254832,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254855
254832
  }
254856
254833
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
254857
254834
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
254858
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex))
254835
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex))
254859
254836
  return;
254860
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex)
254837
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex)
254861
254838
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
254862
254839
  const saveResults = this.grabPairedResults();
254863
254840
  const geomB = this._geometryB;
@@ -254868,133 +254845,36 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
254868
254845
  this.resetGeometry(geomB);
254869
254846
  const childResults = this._results.extractArray();
254870
254847
  childResults.forEach((pair) => {
254871
- _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, undefined, geomB);
254848
+ _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, undefined, geomB);
254872
254849
  this._results.insert(pair);
254873
254850
  });
254874
254851
  saveResults.forEach((pair) => this._results.insert(pair));
254875
254852
  }
254876
- /** Double dispatch handler for strongly typed segment. */
254877
- handleLineSegment3d(segmentA) {
254878
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
254879
- const segmentB = this._geometryB;
254880
- this.computeSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
254881
- }
254882
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
254883
- this.computeSegmentLineString(segmentA, this._geometryB, false);
254884
- }
254885
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254886
- this.computeSegmentArc(segmentA, this._geometryB, false);
254887
- }
254888
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
254889
- this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
254890
- }
254891
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
254892
- this.dispatchCurveSpiral(segmentA, this._geometryB, false);
254893
- }
254894
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
254895
- this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
254896
- }
254897
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
254898
- this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
254899
- }
254900
- return undefined;
254901
- }
254902
- /** Double dispatch handler for strongly typed linestring. */
254903
- handleLineString3d(lsA) {
254904
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
254905
- this.computeSegmentLineString(this._geometryB, lsA, true);
254906
- }
254907
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
254908
- this.computeLineStringLineString(lsA, this._geometryB, false);
254909
- }
254910
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254911
- this.computeArcLineString(this._geometryB, lsA, true);
254912
- }
254913
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
254914
- this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
254915
- }
254916
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
254917
- this.dispatchCurveSpiral(lsA, this._geometryB, false);
254918
- }
254919
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
254920
- this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
254921
- }
254922
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
254923
- this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
254924
- }
254925
- return undefined;
254926
- }
254927
- /** Double dispatch handler for strongly typed arc. */
254928
- handleArc3d(arcA) {
254929
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
254930
- this.computeSegmentArc(this._geometryB, arcA, true);
254931
- }
254932
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
254933
- this.computeArcLineString(arcA, this._geometryB, false);
254934
- }
254935
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254936
- this.dispatchArcArc(arcA, this._geometryB, false);
254937
- }
254938
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
254939
- this.dispatchArcBsplineCurve3d(arcA, this._geometryB, false);
254940
- }
254941
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
254942
- this.dispatchCurveSpiral(arcA, this._geometryB, false);
254943
- }
254944
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
254945
- this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
254946
- }
254947
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
254948
- this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
254949
- }
254950
- return undefined;
254951
- }
254952
- /** Double dispatch handler for strongly typed bspline curve. */
254953
- handleBSplineCurve3d(curveA) {
254954
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
254955
- this.dispatchSegmentBsplineCurve(this._geometryB, curveA, true);
254956
- }
254957
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
254958
- this.dispatchLineStringBSplineCurve(this._geometryB, curveA, true);
254959
- }
254960
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254961
- this.dispatchArcBsplineCurve3d(this._geometryB, curveA, true);
254962
- }
254963
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
254964
- this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
254965
- }
254966
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d) {
254967
- this.dispatchCurveSpiral(curveA, this._geometryB, false);
254968
- }
254969
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
254970
- this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
254971
- }
254972
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
254973
- this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
254974
- }
254975
- return undefined;
254853
+ /** Specifies whether the curve needs to be stroked for close approach computation. */
254854
+ needsStroking(curve) {
254855
+ return curve instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3dBase || curve instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_16__.TransitionSpiral3d;
254976
254856
  }
254977
254857
  /**
254978
- * Process seeds for xy close approach between the curve and spiral.
254858
+ * Process seeds for xy close approach between one curve and another curve to be stroked.
254979
254859
  * * Refine each result via Newton iteration. If it doesn't converge, remove it.
254980
- * @param seeds The initial seed results to refine.
254981
- * @param curveA The other curve primitive. May also be a transition spiral.
254982
- * @param spiralB The transition spiral.
254983
- * @param reversed whether `spiralB` data is in `detailA` of each recorded pair, and `curveA` data in `detailB`.
254860
+ * @param seeds the initial seed results to refine.
254861
+ * @param curveA curve to find its XY close approach with curveB.
254862
+ * @param curveB the other curve to be stroked.
254863
+ * @param reversed whether `curveB` data is in `detailA` of each recorded pair, and `curveA` data in `detailB`.
254984
254864
  */
254985
- refineSpiralResultsByNewton(seeds, curveA, spiralB, reversed = false) {
254986
- const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveCloseApproachXYRRtoRRD(curveA, spiralB);
254865
+ refineStrokedResultsByNewton(seeds, curveA, curveB, reversed = false) {
254866
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveCloseApproachXYRRtoRRD(curveA, curveB);
254987
254867
  const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction, 50, this._newtonTolerance); // seen: 47
254988
254868
  for (const seed of seeds) {
254989
254869
  const detailA = reversed ? seed.detailB : seed.detailA;
254990
254870
  const detailB = reversed ? seed.detailA : seed.detailB;
254991
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d, "Caller has discretized the spiral");
254992
- newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use linestring fraction as spiral param; it generally yields a closer point than fractional length!
254871
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d, "Caller has discretized the curve");
254872
+ newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use the linestring fraction as initial curveB fraction (ASSUME it's close enough)
254993
254873
  if (newtonSearcher.runIterations()) {
254994
254874
  const fractionA = newtonSearcher.getU();
254995
254875
  const fractionB = newtonSearcher.getV();
254996
254876
  if (this.acceptFraction(fractionA) && this.acceptFraction(fractionB))
254997
- this.testAndRecordPointPair(curveA, fractionA, undefined, spiralB, fractionB, undefined, reversed);
254877
+ this.testAndRecordPointPair(curveA, fractionA, undefined, curveB, fractionB, undefined, reversed);
254998
254878
  } // ignore failure to converge
254999
254879
  }
255000
254880
  }
@@ -255006,7 +254886,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
255006
254886
  * @param result object to receive appended stroke points; if omitted, a new object is created, populated, and returned.
255007
254887
  */
255008
254888
  strokeCurve(curve, options, result) {
255009
- const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d.create();
254889
+ const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d.create();
255010
254890
  curve.emitStrokes(ls, options);
255011
254891
  return ls;
255012
254892
  }
@@ -255030,40 +254910,120 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
255030
254910
  return discreteResults;
255031
254911
  }
255032
254912
  /**
255033
- * Compute the XY close approach of a curve and a spiral.
255034
- * @param curveA curve to find its close approach with spiralB. May also be a transition spiral.
255035
- * @param spiralB transition spiral to find its close approach with curveA.
255036
- * @param reversed whether `spiralB` data will be recorded in `detailA` of each result, and `curveA` data in `detailB`.
254913
+ * Compute the XY close approach of a curve and another curve to be stroked.
254914
+ * @param curveA curve to find its XY close approach with curveB.
254915
+ * @param curveB the other curve to be stroked.
254916
+ * @param reversed whether `curveB` data will be recorded in `detailA` of each result, and `curveA` data in `detailB`.
255037
254917
  */
255038
- dispatchCurveSpiral(curveA, spiralB, reversed) {
254918
+ dispatchCurveStrokedCurve(curveA, curveB, reversed) {
255039
254919
  // explicit search for intersections (Newton converges too slowly on DirectSpiral3d tangent intersections)
255040
- const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_12__.CurveCurve.intersectionXYPairs(curveA, false, spiralB, false, this._xyTolerance);
254920
+ const intersections = _CurveCurve__WEBPACK_IMPORTED_MODULE_11__.CurveCurve.intersectionXYPairs(curveA, false, curveB, false, this._xyTolerance);
255041
254921
  for (const intersection of intersections)
255042
254922
  this.testAndRecordPair(intersection, reversed);
255043
254923
  // append seeds computed by solving the discretized spiral close approach problem, then refine the seeds via Newton
255044
254924
  let cpA = curveA;
255045
- if (curveA instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_18__.TransitionSpiral3d)
254925
+ if (this.needsStroking(curveA))
255046
254926
  cpA = this.strokeCurve(curveA);
255047
- const cpB = this.strokeCurve(spiralB);
254927
+ const cpB = this.strokeCurve(curveB);
255048
254928
  const seeds = this.computeDiscreteCloseApproachResults(cpA, cpB, reversed);
255049
- this.refineSpiralResultsByNewton(seeds, curveA, spiralB, reversed);
255050
- if (curveA instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) { // explicitly test corners (where Newton converges too slowly)
254929
+ this.refineStrokedResultsByNewton(seeds, curveA, curveB, reversed);
254930
+ if (curveA instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) { // explicitly test corners (where Newton converges too slowly)
255051
254931
  const fStep = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.safeDivideFraction(1.0, curveA.numEdges(), 0);
255052
254932
  const v0 = CurveCurveCloseApproachXY._workPointBB0;
255053
254933
  for (let i = 1; i < curveA.numEdges(); ++i)
255054
- this.testAndRecordProjection(curveA, i * fStep, curveA.pointAtUnchecked(i, v0), spiralB, reversed);
254934
+ this.testAndRecordProjection(curveA, i * fStep, curveA.pointAtUnchecked(i, v0), curveB, reversed);
254935
+ }
254936
+ this.testAndRecordEndPointApproaches(curveA, curveB, reversed);
254937
+ }
254938
+ /** Double dispatch handler for strongly typed segment. */
254939
+ handleLineSegment3d(segmentA) {
254940
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
254941
+ const segmentB = this._geometryB;
254942
+ this.computeSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
254943
+ }
254944
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
254945
+ this.computeSegmentLineString(segmentA, this._geometryB, false);
254946
+ }
254947
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254948
+ this.computeSegmentArc(segmentA, this._geometryB, false);
254949
+ }
254950
+ else if (this.needsStroking(this._geometryB)) {
254951
+ this.dispatchCurveStrokedCurve(segmentA, this._geometryB, false);
254952
+ }
254953
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
254954
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
254955
+ }
254956
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
254957
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
254958
+ }
254959
+ return undefined;
254960
+ }
254961
+ /** Double dispatch handler for strongly typed linestring. */
254962
+ handleLineString3d(lsA) {
254963
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
254964
+ this.computeSegmentLineString(this._geometryB, lsA, true);
254965
+ }
254966
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
254967
+ this.computeLineStringLineString(lsA, this._geometryB, false);
255055
254968
  }
255056
- this.testAndRecordEndPointApproaches(curveA, spiralB, reversed);
254969
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254970
+ this.computeArcLineString(this._geometryB, lsA, true);
254971
+ }
254972
+ else if (this.needsStroking(this._geometryB)) {
254973
+ this.dispatchCurveStrokedCurve(lsA, this._geometryB, false);
254974
+ }
254975
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
254976
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
254977
+ }
254978
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
254979
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
254980
+ }
254981
+ return undefined;
254982
+ }
254983
+ /** Double dispatch handler for strongly typed arc. */
254984
+ handleArc3d(arcA) {
254985
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
254986
+ this.computeSegmentArc(this._geometryB, arcA, true);
254987
+ }
254988
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
254989
+ this.computeArcLineString(arcA, this._geometryB, false);
254990
+ }
254991
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_6__.Arc3d) {
254992
+ this.dispatchArcArc(arcA, this._geometryB, false);
254993
+ }
254994
+ else if (this.needsStroking(this._geometryB)) {
254995
+ this.dispatchCurveStrokedCurve(arcA, this._geometryB, false);
254996
+ }
254997
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
254998
+ this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
254999
+ }
255000
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
255001
+ this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
255002
+ }
255003
+ return undefined;
255004
+ }
255005
+ /** Double dispatch handler for strongly typed bspline curve. */
255006
+ handleBSplineCurve3d(curveA) {
255007
+ if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
255008
+ this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
255009
+ }
255010
+ else if (this._geometryB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__.CurvePrimitive) {
255011
+ this.dispatchCurveStrokedCurve(this._geometryB, curveA, true);
255012
+ }
255013
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
255014
+ this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
255015
+ }
255016
+ return undefined;
255057
255017
  }
255058
255018
  /** Double dispatch handler for strongly typed spiral curve. */
255059
255019
  handleTransitionSpiral(spiral) {
255060
- if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
255020
+ if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
255061
255021
  this.dispatchCurveChainWithDistanceIndex(spiral, this.handleTransitionSpiral.bind(this));
255062
255022
  }
255063
255023
  else if (this._geometryB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_19__.CurvePrimitive) {
255064
- this.dispatchCurveSpiral(this._geometryB, spiral, true);
255024
+ this.dispatchCurveStrokedCurve(this._geometryB, spiral, true);
255065
255025
  }
255066
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
255026
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
255067
255027
  this.dispatchCurveCollection(spiral, this.handleTransitionSpiral.bind(this));
255068
255028
  }
255069
255029
  return undefined;
@@ -255074,25 +255034,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
255074
255034
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
255075
255035
  const childResults = this._results.extractArray();
255076
255036
  childResults.forEach((pair) => {
255077
- _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, chain, undefined);
255037
+ _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetailSingle(pair, chain, undefined);
255078
255038
  this._results.insert(pair);
255079
255039
  });
255080
255040
  }
255081
255041
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
255082
255042
  handleBSplineCurve3dH(_curve) {
255083
- /*
255084
- //NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH.
255085
- // "easy" if both present BezierCurve3dH span loaders
255086
- if (this._geometryB instanceof LineSegment3d) {
255087
- this.dispatchSegmentBsplineCurve(
255088
- this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
255089
- curve, this._extendA, true);
255090
- } else if (this._geometryB instanceof LineString3d) {
255091
- this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
255092
- } else if (this._geometryB instanceof Arc3d) {
255093
- this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
255094
- }
255095
- */
255043
+ // NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH
255096
255044
  return undefined;
255097
255045
  }
255098
255046
  }
@@ -255112,7 +255060,7 @@ __webpack_require__.r(__webpack_exports__);
255112
255060
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
255113
255061
  /* harmony export */ });
255114
255062
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
255115
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
255063
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
255116
255064
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
255117
255065
  /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
255118
255066
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
@@ -255124,18 +255072,18 @@ __webpack_require__.r(__webpack_exports__);
255124
255072
  /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
255125
255073
  /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
255126
255074
  /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
255127
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
255075
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
255128
255076
  /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
255129
255077
  /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
255130
- /* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
255078
+ /* harmony import */ var _CurveCurve__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
255131
255079
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
255132
255080
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
255133
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
255134
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
255081
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
255082
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
255135
255083
  /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
255136
255084
  /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
255137
255085
  /* harmony import */ var _ProxyCurve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
255138
- /* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
255086
+ /* harmony import */ var _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
255139
255087
  /*---------------------------------------------------------------------------------------------
255140
255088
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
255141
255089
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -255290,7 +255238,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
255290
255238
  * @param fractionB1 end of the subcurve of cpB
255291
255239
  * @param reversed whether to reverse the details in the recorded intersection pair
255292
255240
  * @param intervalDetails optional data for a coincident segment intersection
255293
- * @param fractionTol relative tolerance for comparing fractions to avoid duplicating the last intersection. Defaults to [[Geometry.smallAngleRadians]].
255241
+ * @param fractionTol relative tolerance for comparing fractions to avoid duplicating the last intersection. Defaults
255242
+ * to [[Geometry.smallAngleRadians]].
255294
255243
  */
255295
255244
  recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, cpB, fractionB0, fractionB1, reversed, intervalDetails, fractionTol) {
255296
255245
  let globalFractionA, globalFractionB;
@@ -255717,9 +255666,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
255717
255666
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
255718
255667
  _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_2__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
255719
255668
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
255720
- let errors = 0;
255721
255669
  const roots = univariateBezierB.roots(0.0, true);
255722
255670
  if (roots) {
255671
+ const strictTolerance = this._coincidentGeometryContext.tolerance * 0.0001;
255723
255672
  for (const r of roots) {
255724
255673
  let bezierBFraction = r;
255725
255674
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
@@ -255731,15 +255680,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
255731
255680
  const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
255732
255681
  const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_13__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
255733
255682
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
255734
- if (newtonSearcher.runIterations()) {
255735
- bezierAFraction = newtonSearcher.getU();
255736
- bezierBFraction = newtonSearcher.getV();
255737
- }
255683
+ let converged = newtonSearcher.runIterations();
255684
+ bezierAFraction = newtonSearcher.getU();
255685
+ bezierBFraction = newtonSearcher.getV();
255738
255686
  const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
255739
255687
  const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
255740
- if (false) {}
255741
255688
  if (this.acceptFraction(false, bcurveAFraction, false) && this.acceptFraction(false, bcurveBFraction, false)) {
255742
- this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
255689
+ const pointA = bezierA.fractionToPoint(bezierAFraction, CurveCurveIntersectXY._workPointA0);
255690
+ const pointB = bezierB.fractionToPoint(bezierBFraction, CurveCurveIntersectXY._workPointB0);
255691
+ if (!converged) { // Newton may have found close points even if it didn't converge parametrically
255692
+ converged = pointA.isAlmostEqualXY(pointB, strictTolerance); // we can afford to be choosy
255693
+ }
255694
+ if (converged)
255695
+ this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
255743
255696
  }
255744
255697
  }
255745
255698
  }
@@ -255968,137 +255921,6 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
255968
255921
  this.resetGeometryB(geomB); // restore
255969
255922
  this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
255970
255923
  }
255971
- /**
255972
- * Invoke dispatch on each child of `g` as "geometryA".
255973
- * * If `g` is a `Path` or `Loop`, adjust extension flags for geometryA accordingly.
255974
- */
255975
- handleChildren(g) {
255976
- const children = g.children;
255977
- if (!children)
255978
- return;
255979
- const saveExtendA0 = this._extendA0;
255980
- const saveExtendA1 = this._extendA1;
255981
- for (let i = 0; i < children.length; i++) {
255982
- let extendA0 = saveExtendA0;
255983
- let extendA1 = saveExtendA1;
255984
- if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_15__.Path && children.length > 1) {
255985
- if (i === 0)
255986
- extendA1 = false; // first child can only extend from start
255987
- else if (i === children.length - 1)
255988
- extendA0 = false; // last child can only extend from end
255989
- else
255990
- extendA0 = extendA1 = false; // middle children cannot extend
255991
- }
255992
- else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_16__.Loop) {
255993
- extendA0 = extendA1 = false; // Loops cannot extend
255994
- }
255995
- this.resetGeometryA(extendA0, extendA1);
255996
- children[i].dispatchToGeometryHandler(this);
255997
- }
255998
- this.resetGeometryA(saveExtendA0, saveExtendA1);
255999
- }
256000
- /** Double dispatch handler for strongly typed segment. */
256001
- handleLineSegment3d(segmentA) {
256002
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
256003
- const segmentB = this._geometryB;
256004
- this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
256005
- }
256006
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
256007
- this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256008
- }
256009
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
256010
- this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256011
- }
256012
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
256013
- this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256014
- }
256015
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
256016
- this.dispatchCurveSpiral(segmentA, this._extendA0, this._extendA1, this._geometryB, false);
256017
- }
256018
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256019
- this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
256020
- }
256021
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256022
- this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
256023
- }
256024
- return undefined;
256025
- }
256026
- /** Double dispatch handler for strongly typed linestring. */
256027
- handleLineString3d(lsA) {
256028
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
256029
- const lsB = this._geometryB;
256030
- this.computeLineStringLineString(lsA, this._extendA0, this._extendA1, lsB, this._extendB0, this._extendB1, false);
256031
- }
256032
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
256033
- this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
256034
- }
256035
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
256036
- this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
256037
- }
256038
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
256039
- this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256040
- }
256041
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
256042
- this.dispatchCurveSpiral(lsA, this._extendA0, this._extendA1, this._geometryB, false);
256043
- }
256044
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256045
- this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
256046
- }
256047
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256048
- this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
256049
- }
256050
- return undefined;
256051
- }
256052
- /** Double dispatch handler for strongly typed arc. */
256053
- handleArc3d(arcA) {
256054
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
256055
- this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arcA, this._extendA0, this._extendA1, true);
256056
- }
256057
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
256058
- this.computeArcLineString(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256059
- }
256060
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
256061
- this.dispatchArcArc(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256062
- }
256063
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3d) {
256064
- this.dispatchArcBsplineCurve3d(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256065
- }
256066
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
256067
- this.dispatchCurveSpiral(arcA, this._extendA0, this._extendA1, this._geometryB, false);
256068
- }
256069
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256070
- this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
256071
- }
256072
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256073
- this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
256074
- }
256075
- return undefined;
256076
- }
256077
- /** Double dispatch handler for strongly typed bspline curve. */
256078
- handleBSplineCurve3d(curveA) {
256079
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_18__.LineSegment3d) {
256080
- this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256081
- }
256082
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
256083
- this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256084
- }
256085
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_20__.Arc3d) {
256086
- this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256087
- }
256088
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_21__.BSplineCurve3dBase) {
256089
- this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
256090
- }
256091
- else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
256092
- this.dispatchCurveSpiral(curveA, this._extendA0, this._extendA1, this._geometryB, false);
256093
- }
256094
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256095
- this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
256096
- }
256097
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256098
- this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
256099
- }
256100
- return undefined;
256101
- }
256102
255924
  /**
256103
255925
  * Process tail of `this._results` for xy-intersections between the curve and spiral.
256104
255926
  * * Refine each result via Newton iteration. If it doesn't converge, remove it.
@@ -256129,7 +255951,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256129
255951
  const pair = this._results[i];
256130
255952
  const detailA = reversed ? pair.detailB : pair.detailA;
256131
255953
  const detailB = reversed ? pair.detailA : pair.detailB;
256132
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d, "Caller has discretized the spiral");
255954
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(detailB.curve instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d, "Caller has discretized the spiral");
256133
255955
  const extendA0 = reversed ? this._extendB0 : this._extendA0;
256134
255956
  const extendA1 = reversed ? this._extendB1 : this._extendA1;
256135
255957
  newtonSearcher.setUV(detailA.fraction, detailB.fraction); // use linestring fraction as spiral param; it generally yields a closer point than fractional length!
@@ -256155,7 +255977,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256155
255977
  * @param result object to receive appended stroke points; if omitted, a new object is created, populated, and returned.
256156
255978
  */
256157
255979
  strokeCurve(curve, options, result) {
256158
- const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d.create();
255980
+ const ls = result ? result : _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d.create();
256159
255981
  curve.emitStrokes(ls, options);
256160
255982
  return ls;
256161
255983
  }
@@ -256173,7 +255995,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256173
255995
  if (spiral0.closestPoint(midPoint, false, detail))
256174
255996
  maxError = detail.a;
256175
255997
  }
256176
- if (spiral1 && spiral1 instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d && ls1 && ls1 instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_19__.LineString3d) {
255998
+ if (spiral1 && spiral1 instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d && ls1 && ls1 instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
256177
255999
  const maxError1 = this.computeMaxSpiralStrokeError(spiral1, ls1);
256178
256000
  if (maxError1 > maxError)
256179
256001
  maxError = maxError1;
@@ -256209,7 +256031,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256209
256031
  */
256210
256032
  appendDiscreteCloseApproachResults(curveA, lsB, maxDistance, reversed) {
256211
256033
  const i0 = this._results.length;
256212
- const closeApproachPairs = _CurveCurve__WEBPACK_IMPORTED_MODULE_23__.CurveCurve.closeApproachProjectedXYPairs(reversed ? lsB : curveA, reversed ? curveA : lsB, maxDistance);
256034
+ const closeApproachPairs = _CurveCurve__WEBPACK_IMPORTED_MODULE_20__.CurveCurve.closeApproachProjectedXYPairs(reversed ? lsB : curveA, reversed ? curveA : lsB, maxDistance);
256213
256035
  closeApproachPairs.sort((p0, p1) => p0.detailA.a - p1.detailA.a);
256214
256036
  this._results.push(...closeApproachPairs);
256215
256037
  return this._results.length - i0;
@@ -256225,7 +256047,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256225
256047
  */
256226
256048
  dispatchCurveSpiral(curveA, extendA0, extendA1, spiralB, reversed) {
256227
256049
  let cpA = curveA;
256228
- if (curveA instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_22__.TransitionSpiral3d) {
256050
+ if (curveA instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
256229
256051
  cpA = this.strokeCurve(curveA);
256230
256052
  extendA0 = extendA1 = false;
256231
256053
  }
@@ -256237,6 +256059,137 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256237
256059
  this.appendDiscreteCloseApproachResults(cpA, cpB, maxError, reversed); // seeds for finding tangent intersections
256238
256060
  this.refineSpiralResultsByNewton(curveA, spiralB, index0, reversed);
256239
256061
  }
256062
+ /**
256063
+ * Invoke dispatch on each child of `g` as "geometryA".
256064
+ * * If `g` is a `Path` or `Loop`, adjust extension flags for geometryA accordingly.
256065
+ */
256066
+ handleChildren(g) {
256067
+ const children = g.children;
256068
+ if (!children)
256069
+ return;
256070
+ const saveExtendA0 = this._extendA0;
256071
+ const saveExtendA1 = this._extendA1;
256072
+ for (let i = 0; i < children.length; i++) {
256073
+ let extendA0 = saveExtendA0;
256074
+ let extendA1 = saveExtendA1;
256075
+ if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_15__.Path && children.length > 1) {
256076
+ if (i === 0)
256077
+ extendA1 = false; // first child can only extend from start
256078
+ else if (i === children.length - 1)
256079
+ extendA0 = false; // last child can only extend from end
256080
+ else
256081
+ extendA0 = extendA1 = false; // middle children cannot extend
256082
+ }
256083
+ else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_16__.Loop) {
256084
+ extendA0 = extendA1 = false; // Loops cannot extend
256085
+ }
256086
+ this.resetGeometryA(extendA0, extendA1);
256087
+ children[i].dispatchToGeometryHandler(this);
256088
+ }
256089
+ this.resetGeometryA(saveExtendA0, saveExtendA1);
256090
+ }
256091
+ /** Double dispatch handler for strongly typed segment. */
256092
+ handleLineSegment3d(segmentA) {
256093
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
256094
+ const segmentB = this._geometryB;
256095
+ this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
256096
+ }
256097
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
256098
+ this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256099
+ }
256100
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
256101
+ this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256102
+ }
256103
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
256104
+ this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256105
+ }
256106
+ else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
256107
+ this.dispatchCurveSpiral(segmentA, this._extendA0, this._extendA1, this._geometryB, false);
256108
+ }
256109
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256110
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
256111
+ }
256112
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256113
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
256114
+ }
256115
+ return undefined;
256116
+ }
256117
+ /** Double dispatch handler for strongly typed linestring. */
256118
+ handleLineString3d(lsA) {
256119
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
256120
+ const lsB = this._geometryB;
256121
+ this.computeLineStringLineString(lsA, this._extendA0, this._extendA1, lsB, this._extendB0, this._extendB1, false);
256122
+ }
256123
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
256124
+ this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
256125
+ }
256126
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
256127
+ this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
256128
+ }
256129
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
256130
+ this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256131
+ }
256132
+ else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
256133
+ this.dispatchCurveSpiral(lsA, this._extendA0, this._extendA1, this._geometryB, false);
256134
+ }
256135
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256136
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
256137
+ }
256138
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256139
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
256140
+ }
256141
+ return undefined;
256142
+ }
256143
+ /** Double dispatch handler for strongly typed arc. */
256144
+ handleArc3d(arcA) {
256145
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
256146
+ this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arcA, this._extendA0, this._extendA1, true);
256147
+ }
256148
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
256149
+ this.computeArcLineString(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256150
+ }
256151
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
256152
+ this.dispatchArcArc(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256153
+ }
256154
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3d) {
256155
+ this.dispatchArcBsplineCurve3d(arcA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
256156
+ }
256157
+ else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
256158
+ this.dispatchCurveSpiral(arcA, this._extendA0, this._extendA1, this._geometryB, false);
256159
+ }
256160
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256161
+ this.dispatchCurveCollection(arcA, this.handleArc3d.bind(this));
256162
+ }
256163
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256164
+ this.dispatchCurveChainWithDistanceIndex(arcA, this.handleArc3d.bind(this));
256165
+ }
256166
+ return undefined;
256167
+ }
256168
+ /** Double dispatch handler for strongly typed bspline curve. */
256169
+ handleBSplineCurve3d(curveA) {
256170
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d) {
256171
+ this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256172
+ }
256173
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_18__.LineString3d) {
256174
+ this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256175
+ }
256176
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_22__.Arc3d) {
256177
+ this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curveA, this._extendA0, this._extendA1, true);
256178
+ }
256179
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_23__.BSplineCurve3dBase) {
256180
+ this.dispatchBSplineCurve3dBSplineCurve3d(curveA, this._geometryB, false);
256181
+ }
256182
+ else if (this._geometryB instanceof _spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_19__.TransitionSpiral3d) {
256183
+ this.dispatchCurveSpiral(curveA, this._extendA0, this._extendA1, this._geometryB, false);
256184
+ }
256185
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_14__.CurveCollection) {
256186
+ this.dispatchCurveCollection(curveA, this.handleBSplineCurve3d.bind(this));
256187
+ }
256188
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
256189
+ this.dispatchCurveChainWithDistanceIndex(curveA, this.handleBSplineCurve3d.bind(this));
256190
+ }
256191
+ return undefined;
256192
+ }
256240
256193
  /** Double dispatch handler for strongly typed spiral curve. */
256241
256194
  handleTransitionSpiral(spiral) {
256242
256195
  if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_17__.CurveChainWithDistanceIndex) {
@@ -256258,19 +256211,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
256258
256211
  }
256259
256212
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
256260
256213
  handleBSplineCurve3dH(_curve) {
256261
- /*
256262
256214
  // NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH .
256263
256215
  // "easy" if both present BezierCurve3dH span loaders
256264
- if (this._geometryB instanceof LineSegment3d) {
256265
- this.dispatchSegmentBsplineCurve(
256266
- this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
256267
- curve, this._extendA, true);
256268
- } else if (this._geometryB instanceof LineString3d) {
256269
- this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
256270
- } else if (this._geometryB instanceof Arc3d) {
256271
- this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
256272
- }
256273
- */
256274
256216
  return undefined;
256275
256217
  }
256276
256218
  }
@@ -279548,9 +279490,8 @@ class Point4dArray {
279548
279490
  * @return packed weighted point array
279549
279491
  */
279550
279492
  static packPointsAndWeightsToFloat64Array(data, weights, result) {
279551
- let points;
279552
279493
  if (Array.isArray(data) && data[0] instanceof _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d) {
279553
- points = data;
279494
+ const points = data;
279554
279495
  if (points.length !== weights.length)
279555
279496
  return undefined;
279556
279497
  const numValues = 4 * points.length;
@@ -279564,18 +279505,18 @@ class Point4dArray {
279564
279505
  }
279565
279506
  return result;
279566
279507
  }
279567
- points = data;
279508
+ const numericData = data;
279568
279509
  const numPoints = weights.length;
279569
- if (points.length !== 3 * numPoints)
279510
+ if (numericData.length !== 3 * numPoints)
279570
279511
  return undefined;
279571
279512
  const numValues1 = 4 * numPoints;
279572
279513
  if (!result || result.length < numValues1)
279573
279514
  result = new Float64Array(numValues1);
279574
279515
  for (let i = 0, k = 0; k < numPoints; k++) {
279575
279516
  const k0 = 3 * k;
279576
- result[i++] = points[k0];
279577
- result[i++] = points[k0 + 1];
279578
- result[i++] = points[k0 + 2];
279517
+ result[i++] = numericData[k0];
279518
+ result[i++] = numericData[k0 + 1];
279519
+ result[i++] = numericData[k0 + 2];
279579
279520
  result[i++] = weights[k];
279580
279521
  }
279581
279522
  return result;
@@ -350004,7 +349945,7 @@ class TestContext {
350004
349945
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
350005
349946
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
350006
349947
  await core_frontend_1.NoRenderApp.startup({
350007
- applicationVersion: "5.9.0-dev.15",
349948
+ applicationVersion: "5.9.0-dev.17",
350008
349949
  applicationId: this.settings.gprid,
350009
349950
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
350010
349951
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -377279,7 +377220,7 @@ var loadLanguages = instance.loadLanguages;
377279
377220
  /***/ ((module) => {
377280
377221
 
377281
377222
  "use strict";
377282
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.9.0-dev.15","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.9","@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/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.5.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","vitest":"^3.0.6","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"}}');
377223
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.9.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 && 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.9","@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/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.5.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","vitest":"^3.0.6","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"}}');
377283
377224
 
377284
377225
  /***/ }),
377285
377226