@itwin/rpcinterface-full-stack-tests 4.10.0-dev.25 → 4.10.0-dev.27

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.
@@ -72822,9 +72822,8 @@ __webpack_require__.r(__webpack_exports__);
72822
72822
  /* harmony import */ var _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Deserialization/XmlSerializationUtils */ "../../core/ecschema-metadata/lib/esm/Deserialization/XmlSerializationUtils.js");
72823
72823
  /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
72824
72824
  /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
72825
- /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
72826
- /* harmony import */ var _OverrideFormat__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
72827
- /* harmony import */ var _SchemaItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
72825
+ /* harmony import */ var _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
72826
+ /* harmony import */ var _SchemaItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
72828
72827
  /*---------------------------------------------------------------------------------------------
72829
72828
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
72830
72829
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -72838,11 +72837,10 @@ __webpack_require__.r(__webpack_exports__);
72838
72837
 
72839
72838
 
72840
72839
 
72841
-
72842
72840
  /** A Typescript class representation of a KindOfQuantity.
72843
72841
  * @beta
72844
72842
  */
72845
- class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem {
72843
+ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_5__.SchemaItem {
72846
72844
  /** The first presentation format in the list of Formats. */
72847
72845
  get defaultPresentationFormat() { return this.presentationFormats[0]; }
72848
72846
  /** A list of presentation formats. */
@@ -72865,57 +72863,6 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
72865
72863
  // TODO: Add some sort of validation?
72866
72864
  (isDefault) ? this._presentationFormats.splice(0, 0, format) : this._presentationFormats.push(format);
72867
72865
  }
72868
- /** Parses the format string into the parts that make up an Override Format
72869
- * @param formatString
72870
- */
72871
- parseFormatString(formatString) {
72872
- const match = formatString.split(_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_4__.formatStringRgx); // split string based on regex groups
72873
- if (undefined === match[1])
72874
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `The format string, ${formatString}, on KindOfQuantity '${this.fullName}' is missing a format.`);
72875
- const returnValue = { name: match[1] };
72876
- if (undefined !== match[2] && undefined !== match[3]) {
72877
- const overrideString = match[2];
72878
- const tokens = [];
72879
- let prevPos = 1; // Initial position is the character directly after the opening '(' in the override string.
72880
- let currPos;
72881
- // TODO need to include `,` as a valid search argument.
72882
- while (-1 !== (currPos = overrideString.indexOf(")", prevPos))) { // eslint-disable-line
72883
- tokens.push(overrideString.substring(prevPos, currPos));
72884
- prevPos = currPos + 1;
72885
- }
72886
- if (overrideString.length > 0 && undefined === tokens.find((token) => {
72887
- return "" !== token; // there is at least one token that is not empty.
72888
- })) {
72889
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
72890
- }
72891
- // The first override parameter overrides the default precision of the format
72892
- const precisionIndx = 0;
72893
- if (tokens.length >= precisionIndx + 1) {
72894
- if (tokens[precisionIndx].length > 0) {
72895
- const precision = Number.parseInt(tokens[precisionIndx], 10);
72896
- if (Number.isNaN(precision))
72897
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `The format string '${formatString}' on KindOfQuantity '${this.fullName}' has a precision override '${tokens[precisionIndx]}' that is not number.`);
72898
- returnValue.precision = precision;
72899
- }
72900
- }
72901
- }
72902
- let i = 4;
72903
- while (i < match.length - 1) { // The regex match ends with an empty last value, which causes problems when exactly 4 unit overrides as specified, so ignore this last empty value
72904
- if (undefined === match[i])
72905
- break;
72906
- // Unit override required
72907
- if (undefined === match[i + 1])
72908
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
72909
- if (undefined === returnValue.unitAndLabels)
72910
- returnValue.unitAndLabels = [];
72911
- if (undefined !== match[i + 2]) // matches '|'
72912
- returnValue.unitAndLabels.push([match[i + 1], match[i + 3] ?? ""]); // add unit name and label override (if '|' matches and next value is undefined, save it as an empty string)
72913
- else
72914
- returnValue.unitAndLabels.push([match[i + 1], undefined]); // add unit name
72915
- i += 4;
72916
- }
72917
- return returnValue;
72918
- }
72919
72866
  /** Creates an OverrideFormat in the context of this KindOfQuantity.
72920
72867
  * @param parent The Format to override.
72921
72868
  * @param precision The precision override
@@ -72927,12 +72874,12 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
72927
72874
  if (parent.units && 0 === parent.units.length && unitLabelOverrides && 0 < unitLabelOverrides.length)
72928
72875
  throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `Cannot add a presentation format to KindOfQuantity '${this.name}' without any units and no unit overrides.`);
72929
72876
  // TODO: Check compatibility of Unit overrides with the persistence unit
72930
- return new _OverrideFormat__WEBPACK_IMPORTED_MODULE_5__.OverrideFormat(parent, precision, unitLabelOverrides);
72877
+ return new _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat(parent, precision, unitLabelOverrides);
72931
72878
  }
72932
72879
  async processPresentationUnits(presentationUnitsJson) {
72933
72880
  const presUnitsArr = Array.isArray(presentationUnitsJson) ? presentationUnitsJson : presentationUnitsJson.split(";");
72934
72881
  for (const formatString of presUnitsArr) {
72935
- const presFormatOverride = this.parseFormatString(formatString);
72882
+ const presFormatOverride = _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.parseFormatString(formatString);
72936
72883
  const format = await this.schema.lookupItem(presFormatOverride.name);
72937
72884
  if (undefined === format || format.schemaItemType !== _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaItemType.Format)
72938
72885
  throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `Unable to locate Format '${presFormatOverride.name}' for the presentation unit on KindOfQuantity ${this.fullName}.`);
@@ -72959,7 +72906,7 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
72959
72906
  processPresentationUnitsSync(presentationUnitsJson) {
72960
72907
  const presUnitsArr = Array.isArray(presentationUnitsJson) ? presentationUnitsJson : presentationUnitsJson.split(";");
72961
72908
  for (const formatString of presUnitsArr) {
72962
- const presFormatOverride = this.parseFormatString(formatString);
72909
+ const presFormatOverride = _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.parseFormatString(formatString);
72963
72910
  const format = this.schema.lookupItemSync(presFormatOverride.name);
72964
72911
  if (undefined === format || format.schemaItemType !== _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaItemType.Format)
72965
72912
  throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `Unable to locate Format '${presFormatOverride.name}' for the presentation unit on KindOfQuantity ${this.fullName}.`);
@@ -73006,7 +72953,7 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
73006
72953
  }
73007
72954
  if (undefined !== this.presentationFormats) {
73008
72955
  const presUnitStrings = this.presentationFormats.map((format) => {
73009
- if (!_OverrideFormat__WEBPACK_IMPORTED_MODULE_5__.OverrideFormat.isOverrideFormat(format))
72956
+ if (!_OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.isOverrideFormat(format))
73010
72957
  return _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_1__.XmlSerializationUtils.createXmlTypedName(this.schema, format.schema, format.name);
73011
72958
  return format.fullNameXml(this.schema);
73012
72959
  });
@@ -73201,6 +73148,8 @@ __webpack_require__.r(__webpack_exports__);
73201
73148
  /* harmony export */ });
73202
73149
  /* harmony import */ var _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Deserialization/XmlSerializationUtils */ "../../core/ecschema-metadata/lib/esm/Deserialization/XmlSerializationUtils.js");
73203
73150
  /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
73151
+ /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
73152
+ /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
73204
73153
  /*---------------------------------------------------------------------------------------------
73205
73154
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
73206
73155
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -73210,6 +73159,8 @@ __webpack_require__.r(__webpack_exports__);
73210
73159
  */
73211
73160
 
73212
73161
 
73162
+
73163
+
73213
73164
  /**
73214
73165
  * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
73215
73166
  * @beta
@@ -73278,6 +73229,57 @@ class OverrideFormat {
73278
73229
  fullName += `[${unit.fullName}|${unitLabel}]`;
73279
73230
  return fullName;
73280
73231
  }
73232
+ /** Parses the format string into the parts that make up an Override Format
73233
+ * @param formatString
73234
+ */
73235
+ static parseFormatString(formatString) {
73236
+ const match = formatString.split(_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_2__.formatStringRgx); // split string based on regex groups
73237
+ if (undefined === match[1])
73238
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `The format string, ${formatString}, on KindOfQuantity is missing a format.`);
73239
+ const returnValue = { name: match[1] };
73240
+ if (undefined !== match[2] && undefined !== match[3]) {
73241
+ const overrideString = match[2];
73242
+ const tokens = [];
73243
+ let prevPos = 1; // Initial position is the character directly after the opening '(' in the override string.
73244
+ let currPos;
73245
+ // TODO need to include `,` as a valid search argument.
73246
+ while (-1 !== (currPos = overrideString.indexOf(")", prevPos))) { // eslint-disable-line
73247
+ tokens.push(overrideString.substring(prevPos, currPos));
73248
+ prevPos = currPos + 1;
73249
+ }
73250
+ if (overrideString.length > 0 && undefined === tokens.find((token) => {
73251
+ return "" !== token; // there is at least one token that is not empty.
73252
+ })) {
73253
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
73254
+ }
73255
+ // The first override parameter overrides the default precision of the format
73256
+ const precisionIndx = 0;
73257
+ if (tokens.length >= precisionIndx + 1) {
73258
+ if (tokens[precisionIndx].length > 0) {
73259
+ const precision = Number.parseInt(tokens[precisionIndx], 10);
73260
+ if (Number.isNaN(precision))
73261
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, `The format string '${formatString}' on KindOfQuantity has a precision override '${tokens[precisionIndx]}' that is not number.`);
73262
+ returnValue.precision = precision;
73263
+ }
73264
+ }
73265
+ }
73266
+ let i = 4;
73267
+ while (i < match.length - 1) { // The regex match ends with an empty last value, which causes problems when exactly 4 unit overrides as specified, so ignore this last empty value
73268
+ if (undefined === match[i])
73269
+ break;
73270
+ // Unit override required
73271
+ if (undefined === match[i + 1])
73272
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
73273
+ if (undefined === returnValue.unitAndLabels)
73274
+ returnValue.unitAndLabels = [];
73275
+ if (undefined !== match[i + 2]) // matches '|'
73276
+ returnValue.unitAndLabels.push([match[i + 1], match[i + 3] ?? ""]); // add unit name and label override (if '|' matches and next value is undefined, save it as an empty string)
73277
+ else
73278
+ returnValue.unitAndLabels.push([match[i + 1], undefined]); // add unit name
73279
+ i += 4;
73280
+ }
73281
+ return returnValue;
73282
+ }
73281
73283
  /**
73282
73284
  * @internal
73283
73285
  */
@@ -99572,6 +99574,9 @@ class ViewingSpace {
99572
99574
  zMax = Math.max(zMax, 1.0); // make sure we have at least +-1m. Data may be purely planar
99573
99575
  delta.z = 2.0 * zMax;
99574
99576
  origin.z = -zMax;
99577
+ const ds = this.view.displayStyle;
99578
+ if (ds.getIsBackgroundMapVisible() && undefined !== ds.getBackgroundMapGeometry())
99579
+ this.adjustZPlanes(origin, delta); // make sure view volume includes background map
99575
99580
  }
99576
99581
  else {
99577
99582
  if (view.isCameraOn)
@@ -193559,7 +193564,6 @@ __webpack_require__.r(__webpack_exports__);
193559
193564
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
193560
193565
  /* harmony export */ "AkimaCurve3d": () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3d),
193561
193566
  /* harmony export */ "AkimaCurve3dOptions": () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3dOptions),
193562
- /* harmony export */ "AnalyticRoots": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.AnalyticRoots),
193563
193567
  /* harmony export */ "Angle": () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
193564
193568
  /* harmony export */ "AngleSweep": () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
193565
193569
  /* harmony export */ "AnnotatedLineString3d": () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.AnnotatedLineString3d),
@@ -193589,7 +193593,6 @@ __webpack_require__.r(__webpack_exports__);
193589
193593
  /* harmony export */ "BezierCurveBase": () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__.BezierCurveBase),
193590
193594
  /* harmony export */ "BezierPolynomialAlgebra": () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
193591
193595
  /* harmony export */ "BilinearPatch": () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
193592
- /* harmony export */ "BilinearPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.BilinearPolynomial),
193593
193596
  /* harmony export */ "BooleanClipFactory": () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
193594
193597
  /* harmony export */ "Box": () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_88__.Box),
193595
193598
  /* harmony export */ "BoxTopology": () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__.BoxTopology),
@@ -193631,9 +193634,6 @@ __webpack_require__.r(__webpack_exports__);
193631
193634
  /* harmony export */ "CutLoop": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
193632
193635
  /* harmony export */ "CutLoopMergeContext": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
193633
193636
  /* harmony export */ "DeepCompare": () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
193634
- /* harmony export */ "Degree2PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree2PowerPolynomial),
193635
- /* harmony export */ "Degree3PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree3PowerPolynomial),
193636
- /* harmony export */ "Degree4PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree4PowerPolynomial),
193637
193637
  /* harmony export */ "DirectSpiral3d": () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__.DirectSpiral3d),
193638
193638
  /* harmony export */ "DuplicateFacetClusterSelector": () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.DuplicateFacetClusterSelector),
193639
193639
  /* harmony export */ "Ellipsoid": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
@@ -193644,7 +193644,7 @@ __webpack_require__.r(__webpack_exports__);
193644
193644
  /* harmony export */ "FacetIntersectOptions": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetIntersectOptions),
193645
193645
  /* harmony export */ "FacetLocationDetailPair": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetLocationDetailPair),
193646
193646
  /* harmony export */ "FrameBuilder": () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
193647
- /* harmony export */ "GaussMapper": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.GaussMapper),
193647
+ /* harmony export */ "GaussMapper": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__.GaussMapper),
193648
193648
  /* harmony export */ "GeodesicPathPoint": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
193649
193649
  /* harmony export */ "GeodesicPathSolver": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
193650
193650
  /* harmony export */ "Geometry": () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
@@ -193657,7 +193657,6 @@ __webpack_require__.r(__webpack_exports__);
193657
193657
  /* harmony export */ "GrowableXYArray": () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
193658
193658
  /* harmony export */ "GrowableXYZArray": () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
193659
193659
  /* harmony export */ "IModelJson": () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
193660
- /* harmony export */ "ImplicitLineXY": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.ImplicitLineXY),
193661
193660
  /* harmony export */ "IndexedCollectionInterval": () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
193662
193661
  /* harmony export */ "IndexedPolyface": () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
193663
193662
  /* harmony export */ "IndexedPolyfaceSubsetVisitor": () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceSubsetVisitor),
@@ -193727,11 +193726,10 @@ __webpack_require__.r(__webpack_exports__);
193727
193726
  /* harmony export */ "PolygonLocationDetailPair": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetailPair),
193728
193727
  /* harmony export */ "PolygonOps": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
193729
193728
  /* harmony export */ "PolylineOps": () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
193730
- /* harmony export */ "PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.PowerPolynomial),
193731
193729
  /* harmony export */ "ProxyCurve": () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__.ProxyCurve),
193732
- /* harmony export */ "Quadrature": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.Quadrature),
193730
+ /* harmony export */ "Quadrature": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__.Quadrature),
193733
193731
  /* harmony export */ "Range1d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
193734
- /* harmony export */ "Range1dArray": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.Range1dArray),
193732
+ /* harmony export */ "Range1dArray": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__.Range1dArray),
193735
193733
  /* harmony export */ "Range2d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
193736
193734
  /* harmony export */ "Range3d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
193737
193735
  /* harmony export */ "RangeBase": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
@@ -193748,13 +193746,11 @@ __webpack_require__.r(__webpack_exports__);
193748
193746
  /* harmony export */ "Sample": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
193749
193747
  /* harmony export */ "Segment1d": () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
193750
193748
  /* harmony export */ "SerializationHelpers": () => (/* reexport safe */ _serialization_SerializationHelpers__WEBPACK_IMPORTED_MODULE_129__.SerializationHelpers),
193751
- /* harmony export */ "SineCosinePolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SineCosinePolynomial),
193752
- /* harmony export */ "SmallSystem": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SmallSystem),
193749
+ /* harmony export */ "SmallSystem": () => (/* reexport safe */ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_57__.SmallSystem),
193753
193750
  /* harmony export */ "SmoothTransformBetweenFrusta": () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
193754
193751
  /* harmony export */ "SolidPrimitive": () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
193755
193752
  /* harmony export */ "SpacePolygonTriangulation": () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
193756
193753
  /* harmony export */ "Sphere": () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
193757
- /* harmony export */ "SphereImplicit": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SphereImplicit),
193758
193754
  /* harmony export */ "StandardViewIndex": () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
193759
193755
  /* harmony export */ "SteppedIndexFunctionFactory": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
193760
193756
  /* harmony export */ "StringifiedClipVector": () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
@@ -193764,14 +193760,12 @@ __webpack_require__.r(__webpack_exports__);
193764
193760
  /* harmony export */ "SweepLineStringToFacetsOptions": () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.SweepLineStringToFacetsOptions),
193765
193761
  /* harmony export */ "TaggedNumericConstants": () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericConstants),
193766
193762
  /* harmony export */ "TaggedNumericData": () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericData),
193767
- /* harmony export */ "TorusImplicit": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TorusImplicit),
193768
193763
  /* harmony export */ "TorusPipe": () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__.TorusPipe),
193769
193764
  /* harmony export */ "Transform": () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
193770
193765
  /* harmony export */ "TransitionSpiral3d": () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__.TransitionSpiral3d),
193771
193766
  /* harmony export */ "TriDiagonalSystem": () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__.TriDiagonalSystem),
193772
193767
  /* harmony export */ "TriangleLocationDetail": () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
193773
193768
  /* harmony export */ "TriangularFacetLocationDetail": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.TriangularFacetLocationDetail),
193774
- /* harmony export */ "TrigPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TrigPolynomial),
193775
193769
  /* harmony export */ "UVSelect": () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.UVSelect),
193776
193770
  /* harmony export */ "UVSurfaceOps": () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
193777
193771
  /* harmony export */ "UnionOfConvexClipPlaneSets": () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
@@ -193785,7 +193779,7 @@ __webpack_require__.r(__webpack_exports__);
193785
193779
  /* harmony export */ "XYAndZ": () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
193786
193780
  /* harmony export */ "XYZ": () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
193787
193781
  /* harmony export */ "YawPitchRollAngles": () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
193788
- /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh)
193782
+ /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__.compareRange1dLexicalLowHigh)
193789
193783
  /* harmony export */ });
193790
193784
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
193791
193785
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -193842,9 +193836,9 @@ __webpack_require__.r(__webpack_exports__);
193842
193836
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
193843
193837
  /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
193844
193838
  /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
193845
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
193846
- /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
193847
- /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
193839
+ /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
193840
+ /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
193841
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
193848
193842
  /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
193849
193843
  /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
193850
193844
  /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
@@ -194194,20 +194188,21 @@ __webpack_require__.r(__webpack_exports__);
194194
194188
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
194195
194189
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
194196
194190
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194197
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
194191
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
194198
194192
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
194199
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194200
- /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
194193
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194194
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
194195
+ /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
194201
194196
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
194202
194197
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
194203
- /* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
194204
- /* harmony import */ var _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/EllipticalArcApproximationContext */ "../../core/geometry/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js");
194205
- /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
194198
+ /* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
194199
+ /* harmony import */ var _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internalContexts/EllipticalArcApproximationContext */ "../../core/geometry/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js");
194200
+ /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
194206
194201
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194207
194202
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194208
- /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
194209
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
194210
- /* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
194203
+ /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
194204
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
194205
+ /* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
194211
194206
  /*---------------------------------------------------------------------------------------------
194212
194207
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
194213
194208
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -194231,6 +194226,7 @@ __webpack_require__.r(__webpack_exports__);
194231
194226
 
194232
194227
 
194233
194228
 
194229
+
194234
194230
 
194235
194231
 
194236
194232
  /**
@@ -194651,7 +194647,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
194651
194647
  const ac2 = vectorAC.magnitudeSquared();
194652
194648
  const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
194653
194649
  if (normal) {
194654
- const vectorToCenter = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.linearSystem3d(normal.x, normal.y, normal.z, vectorAB.x, vectorAB.y, vectorAB.z, vectorAC.x, vectorAC.y, vectorAC.z, 0, // vectorToCenter DOT normal = 0 (ensure normal is perp to the plane of the 3 points)
194650
+ const vectorToCenter = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.linearSystem3d(normal.x, normal.y, normal.z, vectorAB.x, vectorAB.y, vectorAB.z, vectorAC.x, vectorAC.y, vectorAC.z, 0, // vectorToCenter DOT normal = 0 (ensure normal is perp to the plane of the 3 points)
194655
194651
  0.5 * ab2, // vectorToCenter DOT vectorAB = ab2 / 2 (ensure the projection of vectorToCenter on AB bisects AB)
194656
194652
  0.5 * ac2);
194657
194653
  if (vectorToCenter) { // i.e., the negative of vectorX
@@ -194886,7 +194882,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
194886
194882
  const uu = this._matrix.columnXMagnitudeSquared();
194887
194883
  const uv = this._matrix.columnXDotColumnY();
194888
194884
  const vv = this._matrix.columnYMagnitudeSquared();
194889
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleImplicitQuadricIntersection(uv, vv - uu, -uv, this._matrix.dotColumnY(vectorQ), -this._matrix.dotColumnX(vectorQ), 0.0, radians);
194885
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.TrigPolynomial.solveUnitCircleImplicitQuadricIntersection(uv, vv - uu, -uv, this._matrix.dotColumnY(vectorQ), -this._matrix.dotColumnX(vectorQ), 0.0, radians);
194890
194886
  if (endpoints) {
194891
194887
  radians.push(this.sweep.startRadians);
194892
194888
  radians.push(this.sweep.endRadians);
@@ -194903,14 +194899,14 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
194903
194899
  closestPoint(spacePoint, extend, result) {
194904
194900
  result = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.create(this, result);
194905
194901
  const allRadians = this.allPerpendicularAngles(spacePoint, true, true);
194906
- let extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 0);
194907
- let extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 1);
194902
+ let extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 0);
194903
+ let extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 1);
194908
194904
  // distinct extends for cyclic space are awkward ....
194909
194905
  if (this._sweep.isFullCircle) {
194910
- extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None;
194911
- extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None;
194906
+ extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None;
194907
+ extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None;
194912
194908
  }
194913
- if (extend0 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None && extend1 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None) {
194909
+ if (extend0 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None && extend1 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None) {
194914
194910
  allRadians.push(this._sweep.startRadians);
194915
194911
  allRadians.push(this._sweep.endRadians);
194916
194912
  }
@@ -194924,7 +194920,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
194924
194920
  let dMin = Number.MAX_VALUE;
194925
194921
  let d = 0;
194926
194922
  for (const radians of allRadians) {
194927
- const fraction = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveRadiansToSweepFraction(extend, radians, this.sweep);
194923
+ const fraction = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveRadiansToSweepFraction(extend, radians, this.sweep);
194928
194924
  if (fraction !== undefined) {
194929
194925
  this.fractionToPointAndDerivative(fraction, workRay);
194930
194926
  d = spacePoint.distance(workRay.origin);
@@ -195036,7 +195032,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195036
195032
  * @param transform optional transform to apply to the arc.
195037
195033
  */
195038
195034
  extendRangeInSweep(range, sweep, transform) {
195039
- const trigForm = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SineCosinePolynomial(0, 0, 0);
195035
+ const trigForm = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.SineCosinePolynomial(0, 0, 0);
195040
195036
  const center = this._center.clone(Arc3d._workPointA);
195041
195037
  const vectorU = this._matrix.columnX(Arc3d._workVectorU);
195042
195038
  const vectorV = this._matrix.columnY(Arc3d._workVectorV);
@@ -195047,7 +195043,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195047
195043
  }
195048
195044
  const lowPoint = Arc3d._workPointB;
195049
195045
  const highPoint = Arc3d._workPointC;
195050
- const range1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range1d.createNull();
195046
+ const range1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__.Range1d.createNull();
195051
195047
  for (let i = 0; i < 3; i++) {
195052
195048
  trigForm.set(center.at(i), vectorU.at(i), vectorV.at(i));
195053
195049
  trigForm.rangeInSweep(sweep, range1);
@@ -195063,7 +195059,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195063
195059
  */
195064
195060
  rangeBetweenFractions(fraction0, fraction1, transform) {
195065
195061
  const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
195066
- const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.create();
195062
+ const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__.Range3d.create();
195067
195063
  this.extendRangeInSweep(range, sweep, transform);
195068
195064
  return range;
195069
195065
  }
@@ -195076,7 +195072,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195076
195072
  */
195077
195073
  getPlaneAltitudeSineCosinePolynomial(plane, result) {
195078
195074
  if (!result)
195079
- result = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SineCosinePolynomial(0, 0, 0);
195075
+ result = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.SineCosinePolynomial(0, 0, 0);
195080
195076
  // altitude function of angle t, given plane with origin o and unit normal n:
195081
195077
  // A(t) = (c + u cos(t) + v sin(t)) . n = (c-o).n + u.n cos(t) + v.n sin(t)
195082
195078
  // Note the different functions for computing dot product against a point vs. a vector!
@@ -195229,7 +195225,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195229
195225
  numStroke = options.applyTolerancesToArc(rMax, this._sweep.sweepRadians);
195230
195226
  }
195231
195227
  else {
195232
- numStroke = _StrokeOptions__WEBPACK_IMPORTED_MODULE_15__.StrokeOptions.applyAngleTol(undefined, 1, this._sweep.sweepRadians);
195228
+ numStroke = _StrokeOptions__WEBPACK_IMPORTED_MODULE_16__.StrokeOptions.applyAngleTol(undefined, 1, this._sweep.sweepRadians);
195233
195229
  }
195234
195230
  return numStroke;
195235
195231
  }
@@ -195368,7 +195364,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195368
195364
  * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
195369
195365
  */
195370
195366
  constructOffsetXY(offsetDistanceOrOptions) {
195371
- const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_16__.OffsetOptions.create(offsetDistanceOrOptions);
195367
+ const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__.OffsetOptions.create(offsetDistanceOrOptions);
195372
195368
  if (this.isCircular || options.preserveEllipticalArcs) {
195373
195369
  const arcXY = this.cloneAtZ();
195374
195370
  const sign = arcXY.sweep.sweepRadians * arcXY.matrixRef.coffs[8] >= 0.0 ? 1.0 : -1.0;
@@ -195390,7 +195386,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195390
195386
  }
195391
195387
  }
195392
195388
  // default impl
195393
- const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_17__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
195389
+ const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_18__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
195394
195390
  this.emitStrokableParts(handler, options.strokeOptions);
195395
195391
  return handler.claimResult();
195396
195392
  }
@@ -195401,7 +195397,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195401
195397
  * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
195402
195398
  */
195403
195399
  projectedParameterRange(ray, lowHigh) {
195404
- return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
195400
+ return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_19__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
195405
195401
  }
195406
195402
  /**
195407
195403
  * Construct a circular arc chain approximation to the instance elliptical arc.
@@ -195411,10 +195407,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
195411
195407
  constructCircularArcChainApproximation(options) {
195412
195408
  if (!options)
195413
195409
  options = EllipticalArcApproximationOptions.create();
195414
- const context = _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_19__.EllipticalArcApproximationContext.create(this);
195410
+ const context = _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_20__.EllipticalArcApproximationContext.create(this);
195415
195411
  const result = context.constructCircularArcChainApproximation(options);
195416
195412
  if (!result && this.isCircular)
195417
- return (this.sweep.isFullCircle && options.forcePath) ? _Path__WEBPACK_IMPORTED_MODULE_20__.Path.create(this) : this;
195413
+ return (this.sweep.isFullCircle && options.forcePath) ? _Path__WEBPACK_IMPORTED_MODULE_21__.Path.create(this) : this;
195418
195414
  return result;
195419
195415
  }
195420
195416
  }
@@ -197196,7 +197192,7 @@ __webpack_require__.r(__webpack_exports__);
197196
197192
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
197197
197193
  /* harmony import */ var _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/Segment1d */ "../../core/geometry/lib/esm/geometry3d/Segment1d.js");
197198
197194
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
197199
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
197195
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
197200
197196
  /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
197201
197197
  /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
197202
197198
  /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
@@ -197729,7 +197725,7 @@ class CurveFactory {
197729
197725
  const vectorA = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitAB, sA, unitPerpAB, tA);
197730
197726
  const vectorB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitCB, sB, unitPerpCB, tB);
197731
197727
  const uv = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d.create();
197732
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem2d(unitAB.x, -unitCB.x, unitAB.y, -unitCB.y, vectorB.x - vectorA.x, vectorB.y - vectorA.y, uv)) {
197728
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem2d(unitAB.x, -unitCB.x, unitAB.y, -unitCB.y, vectorB.x - vectorA.x, vectorB.y - vectorA.y, uv)) {
197733
197729
  const tangencyAB = pointB.plusScaled(unitAB, uv.x);
197734
197730
  const tangencyCB = pointB.plusScaled(unitCB, uv.y);
197735
197731
  const frameA = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_17__.Transform.createOriginAndMatrixColumns(tangencyAB, unitAB, unitPerpAB, _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.unitZ());
@@ -197765,7 +197761,7 @@ class CurveFactory {
197765
197761
  const normalCx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAy, normalAz, normalBy, normalBz);
197766
197762
  const normalCy = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAz, normalAx, normalBz, normalBx);
197767
197763
  const normalCz = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAx, normalAy, normalBx, normalBy);
197768
- const rayOrigin = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem3d(normalAx, normalAy, normalAz, normalBx, normalBy, normalBz, normalCx, normalCy, normalCz, -altitudeA, -altitudeB, 0.0);
197764
+ const rayOrigin = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem3d(normalAx, normalAy, normalAz, normalBx, normalBy, normalBz, normalCx, normalCy, normalCz, -altitudeA, -altitudeB, 0.0);
197769
197765
  if (rayOrigin !== undefined) {
197770
197766
  return _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_24__.Ray3d.createXYZUVW(rayOrigin.x, rayOrigin.y, rayOrigin.z, normalCx, normalCy, normalCz);
197771
197767
  }
@@ -199423,7 +199419,7 @@ __webpack_require__.r(__webpack_exports__);
199423
199419
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
199424
199420
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
199425
199421
  /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
199426
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
199422
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
199427
199423
  /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
199428
199424
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
199429
199425
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
@@ -199655,7 +199651,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePr
199655
199651
  const unboundedFractions = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Vector2d.create();
199656
199652
  if (result === undefined)
199657
199653
  result = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair.createCapture(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.create(), _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.create());
199658
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dClosestApproachUnbounded(segmentA._point0, segmentA._point1, segmentB._point0, segmentB._point1, unboundedFractions)) {
199654
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dClosestApproachUnbounded(segmentA._point0, segmentA._point1, segmentB._point0, segmentB._point1, unboundedFractions)) {
199659
199655
  // There is a simple approach between the unbounded segments. Maybe its a really easy case ...
199660
199656
  const fractionA = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__.CurveExtendOptions.correctFraction(extendA, unboundedFractions.x);
199661
199657
  const fractionB = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__.CurveExtendOptions.correctFraction(extendB, unboundedFractions.y);
@@ -206581,17 +206577,18 @@ __webpack_require__.r(__webpack_exports__);
206581
206577
  /* harmony export */ "CurveCurveCloseApproachXY": () => (/* binding */ CurveCurveCloseApproachXY)
206582
206578
  /* harmony export */ });
206583
206579
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
206584
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
206580
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
206585
206581
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
206586
206582
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
206587
206583
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
206588
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
206589
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
206584
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
206585
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
206590
206586
  /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
206591
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
206587
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
206588
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
206592
206589
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
206593
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
206594
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
206590
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
206591
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
206595
206592
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
206596
206593
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
206597
206594
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
@@ -206617,6 +206614,7 @@ __webpack_require__.r(__webpack_exports__);
206617
206614
 
206618
206615
 
206619
206616
 
206617
+
206620
206618
  // cspell:word XYRR currentdFdX
206621
206619
  /**
206622
206620
  * Handler class for XY close approach between _geometryB and another geometry.
@@ -207045,7 +207043,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207045
207043
  const arcPoint = arc.radiansToPoint(radians1);
207046
207044
  const fArc = arc.sweep.radiansToSignedPeriodicFraction(radians1);
207047
207045
  if (this.acceptFraction(fArc)) { // reject solution outside arc sweep
207048
- const fLine = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, arcPoint);
207046
+ const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, arcPoint);
207049
207047
  if (fLine !== undefined && this.acceptFraction(fLine))
207050
207048
  this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
207051
207049
  }
@@ -207086,12 +207084,12 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207086
207084
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
207087
207085
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
207088
207086
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
207089
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
207087
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
207090
207088
  alpha, beta, gamma, cosines, sines, radians);
207091
207089
  for (let i = 0; i < numRoots; i++) {
207092
207090
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
207093
207091
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
207094
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
207092
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
207095
207093
  // only add if the point is within the start and end fractions of both line segment and arc
207096
207094
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
207097
207095
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
@@ -207213,7 +207211,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207213
207211
  /** Low level dispatch of curve collection. */
207214
207212
  dispatchCurveCollection(geomA, geomAHandler) {
207215
207213
  const geomB = this._geometryB; // save
207216
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection))
207214
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
207217
207215
  return;
207218
207216
  for (const child of geomB.children) {
207219
207217
  this.resetGeometry(child);
@@ -207223,9 +207221,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207223
207221
  }
207224
207222
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
207225
207223
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
207226
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
207224
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
207227
207225
  return;
207228
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
207226
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
207229
207227
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
207230
207228
  return;
207231
207229
  }
@@ -207236,7 +207234,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207236
207234
  geomAHandler(geomA);
207237
207235
  }
207238
207236
  this.resetGeometry(geomB); // restore
207239
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
207237
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
207240
207238
  }
207241
207239
  /** Double dispatch handler for strongly typed segment. */
207242
207240
  handleLineSegment3d(segmentA) {
@@ -207250,13 +207248,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207250
207248
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
207251
207249
  this.dispatchSegmentArc(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._geometryB, false);
207252
207250
  }
207253
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
207251
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
207254
207252
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
207255
207253
  }
207256
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
207254
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
207257
207255
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
207258
207256
  }
207259
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
207257
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
207260
207258
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
207261
207259
  }
207262
207260
  return undefined;
@@ -207299,7 +207297,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207299
207297
  return;
207300
207298
  let bitB0;
207301
207299
  let bitB1;
207302
- const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
207300
+ const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
207303
207301
  const pointA0 = CurveCurveCloseApproachXY._workPointAA0;
207304
207302
  const pointA1 = CurveCurveCloseApproachXY._workPointAA1;
207305
207303
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
@@ -207349,13 +207347,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207349
207347
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
207350
207348
  this.computeArcLineString(this._geometryB, lsA, true);
207351
207349
  }
207352
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
207350
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
207353
207351
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
207354
207352
  }
207355
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
207353
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
207356
207354
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
207357
207355
  }
207358
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
207356
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
207359
207357
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
207360
207358
  }
207361
207359
  return undefined;
@@ -207371,13 +207369,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207371
207369
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
207372
207370
  this.dispatchArcArc(arc0, this._geometryB, false);
207373
207371
  }
207374
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
207372
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
207375
207373
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
207376
207374
  }
207377
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
207375
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
207378
207376
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
207379
207377
  }
207380
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
207378
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
207381
207379
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
207382
207380
  }
207383
207381
  return undefined;
@@ -207393,13 +207391,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207393
207391
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
207394
207392
  this.dispatchArcBsplineCurve3d(this._geometryB, curve, true);
207395
207393
  }
207396
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
207394
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3dBase) {
207397
207395
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
207398
207396
  }
207399
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
207397
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
207400
207398
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
207401
207399
  }
207402
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
207400
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
207403
207401
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
207404
207402
  }
207405
207403
  return undefined;
@@ -207408,7 +207406,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207408
207406
  handleCurveChainWithDistanceIndex(chain) {
207409
207407
  super.handleCurveChainWithDistanceIndex(chain);
207410
207408
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
207411
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
207409
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
207412
207410
  }
207413
207411
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
207414
207412
  handleBSplineCurve3dH(_curve) {
@@ -207428,11 +207426,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
207428
207426
  return undefined;
207429
207427
  }
207430
207428
  }
207431
- CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
207432
- CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
207433
- CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
207434
- CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
207435
- CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
207429
+ CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
207430
+ CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
207431
+ CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
207432
+ CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
207433
+ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
207436
207434
 
207437
207435
 
207438
207436
  /***/ }),
@@ -207449,26 +207447,27 @@ __webpack_require__.r(__webpack_exports__);
207449
207447
  /* harmony export */ "CurveCurveIntersectXY": () => (/* binding */ CurveCurveIntersectXY)
207450
207448
  /* harmony export */ });
207451
207449
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
207452
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
207450
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
207453
207451
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
207454
207452
  /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
207455
207453
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
207456
207454
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
207457
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
207458
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
207459
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
207460
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
207461
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
207462
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
207463
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
207464
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
207465
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
207466
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
207455
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
207456
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
207457
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
207458
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
207459
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
207460
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
207461
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
207462
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
207463
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
207464
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
207465
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
207467
207466
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
207468
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
207469
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
207470
- /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
207471
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
207467
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
207468
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
207469
+ /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
207470
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
207472
207471
  /*---------------------------------------------------------------------------------------------
207473
207472
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
207474
207473
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -207495,6 +207494,7 @@ __webpack_require__.r(__webpack_exports__);
207495
207494
 
207496
207495
 
207497
207496
 
207497
+
207498
207498
 
207499
207499
 
207500
207500
  // cspell:word XYRR
@@ -207651,7 +207651,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207651
207651
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
207652
207652
  }
207653
207653
  }
207654
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
207654
+ else if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
207655
207655
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
207656
207656
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
207657
207657
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -207671,7 +207671,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207671
207671
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
207672
207672
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
207673
207673
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
207674
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
207674
+ const fractionAB = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
207675
207675
  if (fractionAB !== undefined) {
207676
207676
  const fractionA = fractionAB.x;
207677
207677
  const fractionB = fractionAB.y;
@@ -207720,11 +207720,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207720
207720
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207721
207721
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207722
207722
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207723
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
207723
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
207724
207724
  for (let i = 0; i < numRoots; i++) {
207725
207725
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
207726
207726
  const arcFraction = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
207727
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
207727
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
207728
207728
  if (lineFraction !== undefined &&
207729
207729
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
207730
207730
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -207746,13 +207746,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207746
207746
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207747
207747
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207748
207748
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
207749
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
207749
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
207750
207750
  const lineFractionTol = 1.0e-10; // TODO: why are we loosening tolerances here?
207751
207751
  const arcFractionTol = 1.0e-7;
207752
207752
  for (let i = 0; i < numRoots; i++) {
207753
207753
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
207754
207754
  const arcFraction = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
207755
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
207755
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
207756
207756
  if (lineFraction !== undefined &&
207757
207757
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
207758
207758
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -207776,7 +207776,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207776
207776
  const ellipseRadians = [];
207777
207777
  const circleRadians = [];
207778
207778
  // find the intersection of the transformed arcs
207779
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
207779
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
207780
207780
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
207781
207781
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
207782
207782
  ellipseRadians, circleRadians);
@@ -207803,14 +207803,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207803
207803
  if (this._worldToLocalPerspective) {
207804
207804
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
207805
207805
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
207806
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
207807
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
207806
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
207807
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
207808
207808
  }
207809
207809
  else {
207810
207810
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
207811
207811
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
207812
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
207813
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
207812
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
207813
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
207814
207814
  }
207815
207815
  const conditionA = matrixA.conditionNumber();
207816
207816
  const conditionB = matrixB.conditionNumber();
@@ -207841,11 +207841,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207841
207841
  let matrixA;
207842
207842
  if (this._worldToLocalPerspective) {
207843
207843
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
207844
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
207844
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
207845
207845
  }
207846
207846
  else {
207847
207847
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
207848
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
207848
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
207849
207849
  }
207850
207850
  // The worldToLocal has moved the arc vectors into local space.
207851
207851
  // matrixA captures the xyw parts (ignoring z)
@@ -207856,7 +207856,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207856
207856
  const orderF = cpB.order; // order of the beziers for simple coordinates
207857
207857
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
207858
207858
  const coffF = new Float64Array(orderF);
207859
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderG);
207859
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderG);
207860
207860
  const axx = matrixAInverse.at(0, 0);
207861
207861
  const axy = matrixAInverse.at(0, 1);
207862
207862
  const axz = 0.0;
@@ -207927,13 +207927,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207927
207927
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
207928
207928
  reversed) {
207929
207929
  if (!this._xyzwA0)
207930
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
207930
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
207931
207931
  if (!this._xyzwA1)
207932
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
207932
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
207933
207933
  if (!this._xyzwPlane)
207934
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
207934
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
207935
207935
  if (!this._xyzwB)
207936
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
207936
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
207937
207937
  /*
207938
207938
  const roots = univariateBezierG.roots(0.0, true);
207939
207939
  if (roots) {
@@ -207959,7 +207959,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207959
207959
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
207960
207960
  f1 = i * df;
207961
207961
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
207962
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
207962
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
207963
207963
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
207964
207964
  let errors = 0;
207965
207965
  const roots = univariateBezierB.roots(0.0, true);
@@ -207967,13 +207967,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
207967
207967
  for (const r of roots) {
207968
207968
  let bezierBFraction = r;
207969
207969
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
207970
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
207970
+ const segmentAFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
207971
207971
  if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
207972
207972
  let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(f0, segmentAFraction, f1);
207973
207973
  // We have a near intersection at fractions on the two beziers
207974
207974
  // Iterate on the curves for a true intersection
207975
- const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
207976
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
207975
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
207976
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
207977
207977
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
207978
207978
  if (newtonSearcher.runIterations()) {
207979
207979
  bezierAFraction = newtonSearcher.getU();
@@ -208001,8 +208001,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208001
208001
  const rangeB = this.getRanges(bezierSpanB);
208002
208002
  const orderA = bcurveA.order;
208003
208003
  const orderB = bcurveB.order;
208004
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderA);
208005
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderB);
208004
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderA);
208005
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderB);
208006
208006
  for (let a = 0; a < numA; a++) {
208007
208007
  for (let b = 0; b < numB; b++) {
208008
208008
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -208026,7 +208026,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208026
208026
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
208027
208027
  if (this._worldToLocalAffine)
208028
208028
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
208029
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createFromPointAndWeight(xyz, w);
208029
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createFromPointAndWeight(xyz, w);
208030
208030
  }
208031
208031
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
208032
208032
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -208050,7 +208050,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208050
208050
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB0, extendB1, reversed) {
208051
208051
  const pointA0H = this.projectPoint(pointA0);
208052
208052
  const pointA1H = this.projectPoint(pointA1);
208053
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
208053
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
208054
208054
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
208055
208055
  // NOW .. we have a plane in world space. Intersect it with the bspline:
208056
208056
  const intersections = [];
@@ -208062,7 +208062,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208062
208062
  const fractionB = detail.fraction;
208063
208063
  const curvePoint = detail.point;
208064
208064
  const curvePointH = this.projectPoint(curvePoint);
208065
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
208065
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
208066
208066
  if (lineFraction !== undefined) {
208067
208067
  if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
208068
208068
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
@@ -208171,14 +208171,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208171
208171
  */
208172
208172
  dispatchCurveCollection(geomA, geomAHandler) {
208173
208173
  const geomB = this._geometryB; // save
208174
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
208174
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
208175
208175
  return;
208176
208176
  const children = geomB.children;
208177
208177
  const extendB0 = this._extendB0; // save
208178
208178
  const extendB1 = this._extendB1; // save
208179
208179
  for (let i = 0; i < children.length; i++) {
208180
208180
  this.resetGeometry(children[i]);
208181
- if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_12__.Path && children.length > 1) {
208181
+ if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_13__.Path && children.length > 1) {
208182
208182
  if (i === 0)
208183
208183
  this._extendB1 = false; // first child can only extend from start
208184
208184
  else if (i === children.length - 1)
@@ -208186,7 +208186,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208186
208186
  else
208187
208187
  this._extendB0 = this._extendB1 = false; // middle children cannot extend
208188
208188
  }
208189
- else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_13__.Loop) {
208189
+ else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_14__.Loop) {
208190
208190
  this._extendB0 = this._extendB1 = false; // Loops cannot extend
208191
208191
  }
208192
208192
  geomAHandler(geomA);
@@ -208200,9 +208200,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208200
208200
  * We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
208201
208201
  */
208202
208202
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
208203
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex))
208203
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex))
208204
208204
  return;
208205
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
208205
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
208206
208206
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
208207
208207
  return;
208208
208208
  }
@@ -208211,7 +208211,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208211
208211
  this.resetGeometry(geomB.path);
208212
208212
  this.dispatchCurveCollection(geomA, geomAHandler);
208213
208213
  this.resetGeometry(geomB); // restore
208214
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
208214
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
208215
208215
  }
208216
208216
  /**
208217
208217
  * Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
@@ -208223,7 +208223,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208223
208223
  const extendA1 = this._extendA1; // save
208224
208224
  if (children)
208225
208225
  for (let i = 0; i < children.length; i++) {
208226
- if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_12__.Path && children.length > 1) {
208226
+ if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_13__.Path && children.length > 1) {
208227
208227
  if (i === 0)
208228
208228
  this._extendA1 = false; // first child can only extend from start
208229
208229
  else if (i === children.length - 1)
@@ -208231,7 +208231,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208231
208231
  else
208232
208232
  this._extendA0 = this._extendA1 = false; // middle children cannot extend
208233
208233
  }
208234
- else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_13__.Loop) {
208234
+ else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_14__.Loop) {
208235
208235
  this._extendA0 = this._extendA1 = false; // Loops cannot extend
208236
208236
  }
208237
208237
  children[i].dispatchToGeometryHandler(this);
@@ -208241,90 +208241,90 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208241
208241
  }
208242
208242
  /** Double dispatch handler for strongly typed segment. */
208243
208243
  handleLineSegment3d(segmentA) {
208244
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
208244
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
208245
208245
  const segmentB = this._geometryB;
208246
208246
  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);
208247
208247
  }
208248
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
208248
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
208249
208249
  this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208250
208250
  }
208251
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
208251
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
208252
208252
  this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208253
208253
  }
208254
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
208254
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
208255
208255
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208256
208256
  }
208257
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
208257
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
208258
208258
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
208259
208259
  }
208260
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
208260
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
208261
208261
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
208262
208262
  }
208263
208263
  return undefined;
208264
208264
  }
208265
208265
  /** Double dispatch handler for strongly typed linestring. */
208266
208266
  handleLineString3d(lsA) {
208267
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
208267
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
208268
208268
  const lsB = this._geometryB;
208269
208269
  this.computeLineStringLineString(lsA, lsB, false);
208270
208270
  }
208271
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
208271
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
208272
208272
  this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
208273
208273
  }
208274
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
208274
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
208275
208275
  this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
208276
208276
  }
208277
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
208277
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
208278
208278
  this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208279
208279
  }
208280
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
208280
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
208281
208281
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
208282
208282
  }
208283
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
208283
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
208284
208284
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
208285
208285
  }
208286
208286
  return undefined;
208287
208287
  }
208288
208288
  /** Double dispatch handler for strongly typed arc. */
208289
208289
  handleArc3d(arc0) {
208290
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
208290
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
208291
208291
  this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
208292
208292
  }
208293
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
208293
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
208294
208294
  this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208295
208295
  }
208296
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
208296
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
208297
208297
  this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208298
208298
  }
208299
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
208299
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
208300
208300
  this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
208301
208301
  }
208302
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
208302
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
208303
208303
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
208304
208304
  }
208305
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
208305
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
208306
208306
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
208307
208307
  }
208308
208308
  return undefined;
208309
208309
  }
208310
208310
  /** Double dispatch handler for strongly typed bspline curve. */
208311
208311
  handleBSplineCurve3d(curve) {
208312
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
208312
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
208313
208313
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
208314
208314
  }
208315
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
208315
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
208316
208316
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
208317
208317
  }
208318
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
208318
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
208319
208319
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
208320
208320
  }
208321
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3dBase) {
208321
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3dBase) {
208322
208322
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
208323
208323
  }
208324
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
208324
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
208325
208325
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
208326
208326
  }
208327
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
208327
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
208328
208328
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
208329
208329
  }
208330
208330
  return undefined;
@@ -208333,7 +208333,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208333
208333
  handleCurveChainWithDistanceIndex(chain) {
208334
208334
  super.handleCurveChainWithDistanceIndex(chain);
208335
208335
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
208336
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
208336
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
208337
208337
  }
208338
208338
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
208339
208339
  handleBSplineCurve3dH(_curve) {
@@ -208353,19 +208353,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
208353
208353
  return undefined;
208354
208354
  }
208355
208355
  }
208356
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_19__.Vector2d.create();
208357
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
208358
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
208359
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
208360
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
208361
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208362
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208363
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208364
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208365
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208366
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208367
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208368
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
208356
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_20__.Vector2d.create();
208357
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
208358
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
208359
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
208360
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
208361
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208362
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208363
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208364
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208365
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208366
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208367
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208368
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
208369
208369
 
208370
208370
 
208371
208371
  /***/ }),
@@ -208382,21 +208382,22 @@ __webpack_require__.r(__webpack_exports__);
208382
208382
  /* harmony export */ "CurveCurveIntersectXYZ": () => (/* binding */ CurveCurveIntersectXYZ)
208383
208383
  /* harmony export */ });
208384
208384
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
208385
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
208385
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
208386
208386
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
208387
208387
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
208388
208388
  /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
208389
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
208389
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
208390
208390
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
208391
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
208392
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
208393
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
208394
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
208391
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
208392
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
208393
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
208394
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
208395
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
208395
208396
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
208396
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
208397
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
208398
- /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
208399
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
208397
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
208398
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
208399
+ /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
208400
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
208400
208401
  /*---------------------------------------------------------------------------------------------
208401
208402
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
208402
208403
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -208420,6 +208421,7 @@ __webpack_require__.r(__webpack_exports__);
208420
208421
 
208421
208422
 
208422
208423
 
208424
+
208423
208425
  // cspell:word XYRR
208424
208426
  /**
208425
208427
  * Handler class for XYZ intersections between _geometryB and another geometry.
@@ -208514,7 +208516,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
208514
208516
  */
208515
208517
  computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
208516
208518
  const uv = CurveCurveIntersectXYZ._workVector2dA;
208517
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
208519
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
208518
208520
  this.acceptFraction(extendA0, uv.x, extendA1) && this.acceptFraction(extendB0, uv.y, extendB1)) {
208519
208521
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
208520
208522
  }
@@ -208565,7 +208567,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
208565
208567
  for (const c of candidates) {
208566
208568
  const arcFraction = arc.sweep.fractionToSignedPeriodicFraction(c.fraction, extendB0);
208567
208569
  if (this.acceptFraction(extendB0, arcFraction, extendB1)) {
208568
- lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
208570
+ lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
208569
208571
  if (lineFraction !== undefined) {
208570
208572
  linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
208571
208573
  if (linePoint.isAlmostEqualMetric(c.point) && this.acceptFraction(extendA0, lineFraction, extendA1)) {
@@ -208585,7 +208587,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
208585
208587
  if (otherVectors !== undefined) {
208586
208588
  const ellipseRadians = [];
208587
208589
  const circleRadians = [];
208588
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
208590
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
208589
208591
  for (let i = 0; i < ellipseRadians.length; i++) {
208590
208592
  const fractionA = cpA.sweep.radiansToSignedFraction(circleRadians[i], extendA0);
208591
208593
  const fractionB = cpB.sweep.radiansToSignedFraction(ellipseRadians[i], extendB0);
@@ -209016,14 +209018,14 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209016
209018
  */
209017
209019
  dispatchCurveCollection(geomA, geomAHandler) {
209018
209020
  const geomB = this._geometryB; // save
209019
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection))
209021
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection))
209020
209022
  return;
209021
209023
  const children = geomB.children;
209022
209024
  const extendB0 = this._extendB0; // save
209023
209025
  const extendB1 = this._extendB1; // save
209024
209026
  for (let i = 0; i < children.length; i++) {
209025
209027
  this.resetGeometry(children[i]);
209026
- if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_8__.Path && children.length > 1) {
209028
+ if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_9__.Path && children.length > 1) {
209027
209029
  if (i === 0)
209028
209030
  this._extendB1 = false; // first child can only extend from start
209029
209031
  else if (i === children.length - 1)
@@ -209031,7 +209033,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209031
209033
  else
209032
209034
  this._extendB0 = this._extendB1 = false; // middle children cannot extend
209033
209035
  }
209034
- else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop) {
209036
+ else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop) {
209035
209037
  this._extendB0 = this._extendB1 = false; // Loops cannot extend
209036
209038
  }
209037
209039
  geomAHandler(geomA);
@@ -209045,9 +209047,9 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209045
209047
  * We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
209046
209048
  */
209047
209049
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
209048
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
209050
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
209049
209051
  return;
209050
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
209052
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
209051
209053
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
209052
209054
  return;
209053
209055
  }
@@ -209056,7 +209058,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209056
209058
  this.resetGeometry(geomB.path);
209057
209059
  this.dispatchCurveCollection(geomA, geomAHandler);
209058
209060
  this.resetGeometry(geomB); // restore
209059
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
209061
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
209060
209062
  }
209061
209063
  /**
209062
209064
  * Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
@@ -209068,7 +209070,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209068
209070
  const extendA1 = this._extendA1; // save
209069
209071
  if (children)
209070
209072
  for (let i = 0; i < children.length; i++) {
209071
- if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_8__.Path && children.length > 1) {
209073
+ if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_9__.Path && children.length > 1) {
209072
209074
  if (i === 0)
209073
209075
  this._extendA1 = false; // first child can only extend from start
209074
209076
  else if (i === children.length - 1)
@@ -209076,7 +209078,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209076
209078
  else
209077
209079
  this._extendA0 = this._extendA1 = false; // middle children cannot extend
209078
209080
  }
209079
- else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop) {
209081
+ else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop) {
209080
209082
  this._extendA0 = this._extendA1 = false; // Loops cannot extend
209081
209083
  }
209082
209084
  children[i].dispatchToGeometryHandler(this);
@@ -209086,90 +209088,90 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209086
209088
  }
209087
209089
  /** Double dispatch handler for strongly typed segment. */
209088
209090
  handleLineSegment3d(segmentA) {
209089
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
209091
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
209090
209092
  const segmentB = this._geometryB;
209091
209093
  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);
209092
209094
  }
209093
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
209095
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
209094
209096
  this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209095
209097
  }
209096
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
209098
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
209097
209099
  this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209098
209100
  }
209099
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
209101
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
209100
209102
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209101
209103
  }
209102
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
209104
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
209103
209105
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
209104
209106
  }
209105
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
209107
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
209106
209108
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
209107
209109
  }
209108
209110
  return undefined;
209109
209111
  }
209110
209112
  /** double dispatch handler for strongly typed linestring. */
209111
209113
  handleLineString3d(lsA) {
209112
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
209114
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
209113
209115
  const lsB = this._geometryB;
209114
209116
  this.computeLineStringLineString(lsA, lsB, false);
209115
209117
  }
209116
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
209118
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
209117
209119
  this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
209118
209120
  }
209119
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
209121
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
209120
209122
  this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
209121
209123
  }
209122
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
209124
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
209123
209125
  this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209124
209126
  }
209125
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
209127
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
209126
209128
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
209127
209129
  }
209128
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
209130
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
209129
209131
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
209130
209132
  }
209131
209133
  return undefined;
209132
209134
  }
209133
209135
  /** Double dispatch handler for strongly typed arc. */
209134
209136
  handleArc3d(arc0) {
209135
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
209137
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
209136
209138
  this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
209137
209139
  }
209138
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
209140
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
209139
209141
  this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209140
209142
  }
209141
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
209143
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
209142
209144
  this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209143
209145
  }
209144
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
209146
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
209145
209147
  this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
209146
209148
  }
209147
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
209149
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
209148
209150
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
209149
209151
  }
209150
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
209152
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
209151
209153
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
209152
209154
  }
209153
209155
  return undefined;
209154
209156
  }
209155
209157
  /** Double dispatch handler for strongly typed bspline curve. */
209156
209158
  handleBSplineCurve3d(curve) {
209157
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
209159
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
209158
209160
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
209159
209161
  }
209160
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
209162
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
209161
209163
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
209162
209164
  }
209163
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
209165
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
209164
209166
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
209165
209167
  }
209166
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3dBase) {
209168
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3dBase) {
209167
209169
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
209168
209170
  }
209169
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
209171
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
209170
209172
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
209171
209173
  }
209172
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
209174
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
209173
209175
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
209174
209176
  }
209175
209177
  return undefined;
@@ -209178,7 +209180,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209178
209180
  handleCurveChainWithDistanceIndex(chain) {
209179
209181
  super.handleCurveChainWithDistanceIndex(chain);
209180
209182
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
209181
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
209183
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
209182
209184
  }
209183
209185
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
209184
209186
  handleBSplineCurve3dH(_curve) {
@@ -209203,7 +209205,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
209203
209205
  return undefined;
209204
209206
  }
209205
209207
  }
209206
- CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__.Vector2d.create();
209208
+ CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_16__.Vector2d.create();
209207
209209
  CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
209208
209210
  CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
209209
209211
  CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
@@ -216102,7 +216104,7 @@ __webpack_require__.r(__webpack_exports__);
216102
216104
  /* harmony import */ var _bspline_SurfaceLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../bspline/SurfaceLocationDetail */ "../../core/geometry/lib/esm/bspline/SurfaceLocationDetail.js");
216103
216105
  /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
216104
216106
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
216105
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
216107
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
216106
216108
  /* harmony import */ var _Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
216107
216109
  /* harmony import */ var _Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
216108
216110
  /*---------------------------------------------------------------------------------------------
@@ -216277,9 +216279,9 @@ class BilinearPatch {
216277
216279
  // swap rows so that the equation with largest ray.direction coefficient is first.
216278
216280
  BilinearPatch.conditionalPivot(0, coffs, 0, 1);
216279
216281
  BilinearPatch.conditionalPivot(0, coffs, 0, 2);
216280
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[1], -1.0);
216281
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[2], -1.0);
216282
- const uvArray = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.solveBilinearPair(coffs[1][1], coffs[1][2], coffs[1][3], coffs[1][4], coffs[2][1], coffs[2][2], coffs[2][3], coffs[2][4]);
216282
+ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[1], -1.0);
216283
+ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[2], -1.0);
216284
+ const uvArray = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.solveBilinearPair(coffs[1][1], coffs[1][2], coffs[1][3], coffs[1][4], coffs[2][1], coffs[2][2], coffs[2][3], coffs[2][4]);
216283
216285
  if (uvArray) {
216284
216286
  const result = [];
216285
216287
  for (const uv of uvArray) {
@@ -233242,7 +233244,7 @@ __webpack_require__.r(__webpack_exports__);
233242
233244
  /* harmony export */ });
233243
233245
  /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
233244
233246
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
233245
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
233247
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
233246
233248
  /* harmony import */ var _Matrix3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
233247
233249
  /* harmony import */ var _Point2dVector2d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
233248
233250
  /* harmony import */ var _Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
@@ -233714,7 +233716,7 @@ class Ray3d {
233714
233716
  let fractionA, fractionB;
233715
233717
  let pointA, pointB;
233716
233718
  let pairType;
233717
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.ray3dXYZUVWClosestApproachUnbounded(rayA.origin.x, rayA.origin.y, rayA.origin.z, rayA.direction.x, rayA.direction.y, rayA.direction.z, rayB.origin.x, rayB.origin.y, rayB.origin.z, rayB.direction.x, rayB.direction.y, rayB.direction.z, intersectionFractions)) {
233719
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.ray3dXYZUVWClosestApproachUnbounded(rayA.origin.x, rayA.origin.y, rayA.origin.z, rayA.direction.x, rayA.direction.y, rayA.direction.z, rayB.origin.x, rayB.origin.y, rayB.origin.z, rayB.direction.x, rayB.direction.y, rayB.direction.z, intersectionFractions)) {
233718
233720
  fractionA = intersectionFractions.x;
233719
233721
  fractionB = intersectionFractions.y;
233720
233722
  pointA = rayA.fractionToPoint(fractionA);
@@ -240038,14 +240040,11 @@ __webpack_require__.r(__webpack_exports__);
240038
240040
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
240039
240041
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
240040
240042
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
240041
- /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
240043
+ /* harmony import */ var _SmallSystem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
240042
240044
  /*---------------------------------------------------------------------------------------------
240043
240045
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
240044
240046
  * See LICENSE.md in the project root for license terms and full copyright notice.
240045
240047
  *--------------------------------------------------------------------------------------------*/
240046
- /** @packageDocumentation
240047
- * @module Numerics
240048
- */
240049
240048
 
240050
240049
 
240051
240050
 
@@ -240294,7 +240293,7 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
240294
240293
  const jCol1 = fA.vectorV;
240295
240294
  const fX = fA.origin;
240296
240295
  // Given X_{n+1} = X_n - dX = X_n - JInv(X_n) F(X_n), we solve J(X_n) dX = F(X_n) for dX:
240297
- if (_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(jCol0.x, jCol1.x, jCol0.y, jCol1.y, fX.x, fX.y, this._currentStep))
240296
+ if (_SmallSystem__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(jCol0.x, jCol1.x, jCol0.y, jCol1.y, fX.x, fX.y, this._currentStep))
240298
240297
  return true;
240299
240298
  return false;
240300
240299
  }
@@ -240571,19 +240570,19 @@ __webpack_require__.r(__webpack_exports__);
240571
240570
  /* harmony export */ "ImplicitLineXY": () => (/* binding */ ImplicitLineXY),
240572
240571
  /* harmony export */ "PowerPolynomial": () => (/* binding */ PowerPolynomial),
240573
240572
  /* harmony export */ "SineCosinePolynomial": () => (/* binding */ SineCosinePolynomial),
240574
- /* harmony export */ "SmallSystem": () => (/* binding */ SmallSystem),
240575
240573
  /* harmony export */ "SphereImplicit": () => (/* binding */ SphereImplicit),
240576
240574
  /* harmony export */ "TorusImplicit": () => (/* binding */ TorusImplicit),
240577
240575
  /* harmony export */ "TrigPolynomial": () => (/* binding */ TrigPolynomial)
240578
240576
  /* harmony export */ });
240579
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
240580
- /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
240581
- /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
240582
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
240583
- /* harmony import */ var _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/LongitudeLatitudeAltitude */ "../../core/geometry/lib/esm/geometry3d/LongitudeLatitudeAltitude.js");
240584
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
240585
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
240586
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
240577
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
240578
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
240579
+ /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
240580
+ /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
240581
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
240582
+ /* harmony import */ var _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/LongitudeLatitudeAltitude */ "../../core/geometry/lib/esm/geometry3d/LongitudeLatitudeAltitude.js");
240583
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
240584
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
240585
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
240587
240586
  /*---------------------------------------------------------------------------------------------
240588
240587
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
240589
240588
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -240599,9 +240598,8 @@ __webpack_require__.r(__webpack_exports__);
240599
240598
 
240600
240599
 
240601
240600
 
240602
- // cspell:word Cardano
240603
- // cspell:word CCminusSS
240604
- /* eslint-disable @typescript-eslint/naming-convention */
240601
+
240602
+ // cspell:words Cardano internaldocs
240605
240603
  /**
240606
240604
  * degree 2 (quadratic) polynomial in for y = c0 + c1*x + c2*x^2
240607
240605
  * @internal
@@ -240616,8 +240614,8 @@ class Degree2PowerPolynomial {
240616
240614
  * @returns 0, 1, or 2 solutions of the usual quadratic (a*x*x + b * x + c = 0)
240617
240615
  */
240618
240616
  static solveQuadratic(a, b, c) {
240619
- const b1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(b, a);
240620
- const c1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(c, a);
240617
+ const b1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(b, a);
240618
+ const c1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(c, a);
240621
240619
  if (b1 !== undefined && c1 !== undefined) {
240622
240620
  // now solving xx + b1*x + c1 = 0 -- i.e. implied "a" coefficient is 1 . .
240623
240621
  const q = b1 * b1 - 4 * c1;
@@ -240632,7 +240630,7 @@ class Degree2PowerPolynomial {
240632
240630
  return [root, root];
240633
240631
  }
240634
240632
  // "divide by a" failed. solve bx + c = 0
240635
- const x = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-c, b);
240633
+ const x = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-c, b);
240636
240634
  if (x !== undefined)
240637
240635
  return [x];
240638
240636
  return undefined;
@@ -240672,7 +240670,7 @@ class Degree2PowerPolynomial {
240672
240670
  }
240673
240671
  /** Factor the polynomial in to the form `y0 + c * (x-x0)^2)`, i.e. complete the square. */
240674
240672
  tryGetVertexFactorization() {
240675
- const x = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-this.coffs[1], 2.0 * this.coffs[2]);
240673
+ const x = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-this.coffs[1], 2.0 * this.coffs[2]);
240676
240674
  if (x !== undefined) {
240677
240675
  const y = this.evaluate(x);
240678
240676
  return { c: this.coffs[2], x0: x, y0: y };
@@ -240813,7 +240811,7 @@ class TorusImplicit {
240813
240811
  // theta=0 point
240814
240812
  const x0 = this.majorRadius + this.minorRadius * Math.cos(phiRadians);
240815
240813
  const z0 = this.minorRadius * Math.sin(phiRadians);
240816
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(c * x0, s * x0, z0);
240814
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(c * x0, s * x0, z0);
240817
240815
  }
240818
240816
  /** Evaluate partial derivatives at angles (int radians) on major and minor circles. */
240819
240817
  evaluateDerivativesThetaPhi(thetaRadians, phiRadians, dxdTheta, dxdPhi) {
@@ -240822,8 +240820,8 @@ class TorusImplicit {
240822
240820
  const bx = this.minorRadius * Math.cos(phiRadians);
240823
240821
  const bz = this.minorRadius * Math.sin(phiRadians);
240824
240822
  const x0 = this.majorRadius + bx;
240825
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-x0 * sTheta, x0 * cTheta, 0.0, dxdTheta);
240826
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-cTheta * bz, -sTheta * bz, bx, dxdPhi);
240823
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-x0 * sTheta, x0 * cTheta, 0.0, dxdTheta);
240824
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-cTheta * bz, -sTheta * bz, bx, dxdPhi);
240827
240825
  }
240828
240826
  /** Evaluate space point at major and minor angles (in radians) and distance from major hoop. */
240829
240827
  evaluateThetaPhiDistance(thetaRadians, phiRadians, distance) {
@@ -240832,7 +240830,7 @@ class TorusImplicit {
240832
240830
  // theta=0 point
240833
240831
  const x0 = this.majorRadius + distance * Math.cos(phiRadians);
240834
240832
  const z0 = distance * Math.sin(phiRadians);
240835
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(c * x0, s * x0, z0);
240833
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(c * x0, s * x0, z0);
240836
240834
  }
240837
240835
  /** Given an xyz coordinate in the local system of the toroid, compute the torus parametrization
240838
240836
  * * theta = angular coordinate in xy plane
@@ -240844,19 +240842,19 @@ class TorusImplicit {
240844
240842
  */
240845
240843
  xyzToThetaPhiDistance(xyz) {
240846
240844
  const rho = xyz.magnitudeXY();
240847
- const majorRadiusFactor = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(this.majorRadius, rho);
240845
+ const majorRadiusFactor = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(this.majorRadius, rho);
240848
240846
  let safeMajor;
240849
240847
  let majorCirclePoint;
240850
240848
  if (majorRadiusFactor) {
240851
240849
  safeMajor = true;
240852
- majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(majorRadiusFactor * xyz.x, majorRadiusFactor * xyz.y, 0.0);
240850
+ majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(majorRadiusFactor * xyz.x, majorRadiusFactor * xyz.y, 0.0);
240853
240851
  }
240854
240852
  else {
240855
240853
  safeMajor = false;
240856
- majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xyz.x, xyz.y, 0.0);
240854
+ majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(xyz.x, xyz.y, 0.0);
240857
240855
  }
240858
240856
  const theta = safeMajor ? Math.atan2(xyz.y, xyz.x) : 0.0;
240859
- const vectorFromMajorCircle = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(majorCirclePoint, xyz);
240857
+ const vectorFromMajorCircle = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(majorCirclePoint, xyz);
240860
240858
  const distance = vectorFromMajorCircle.magnitude();
240861
240859
  const dRho = rho - this.majorRadius;
240862
240860
  let safePhi;
@@ -240920,10 +240918,10 @@ class SphereImplicit {
240920
240918
  }
240921
240919
  /** Return the range of a uv-aligned patch of the sphere. */
240922
240920
  static patchRangeStartEndRadians(center, radius, theta0Radians, theta1Radians, phi0Radians, phi1Radians, result) {
240923
- const thetaSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(theta0Radians, theta1Radians);
240924
- const phiSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(phi0Radians, phi1Radians);
240925
- const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range3d.createNull(result);
240926
- const xyz = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
240921
+ const thetaSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(theta0Radians, theta1Radians);
240922
+ const phiSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(phi0Radians, phi1Radians);
240923
+ const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull(result);
240924
+ const xyz = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create();
240927
240925
  if (thetaSweep.isFullCircle && phiSweep.isFullLatitudeSweep) {
240928
240926
  // full sphere, no trimming -- build directly
240929
240927
  range.extendPoint(center);
@@ -240951,7 +240949,7 @@ class SphereImplicit {
240951
240949
  }
240952
240950
  // 4 boundary curves, each with 3 components ...
240953
240951
  // BUT: phi should not extend beyond poles. Hence z extremes on constant theta curve will never be different from z of constant phi curve or of poles as tested above.
240954
- const axisRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createNull();
240952
+ const axisRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createNull();
240955
240953
  const cosPhi0 = Math.cos(phi0Radians);
240956
240954
  const cosPhi1 = Math.cos(phi1Radians);
240957
240955
  const sinPhi0 = Math.sin(phi0Radians);
@@ -241002,9 +241000,9 @@ class SphereImplicit {
241002
241000
  const ux = ray.direction.x;
241003
241001
  const uy = ray.direction.y;
241004
241002
  const uz = ray.direction.z;
241005
- const a0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(vx, vy, vz) - radius * radius;
241006
- const a1 = 2.0 * _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(ux, uy, uz, vx, vy, vz);
241007
- const a2 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(ux, uy, uz);
241003
+ const a0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseSquaredXYZ(vx, vy, vz) - radius * radius;
241004
+ const a1 = 2.0 * _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.dotProductXYZXYZ(ux, uy, uz, vx, vy, vz);
241005
+ const a2 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseSquaredXYZ(ux, uy, uz);
241008
241006
  const parameters = Degree2PowerPolynomial.solveQuadratic(a2, a1, a0);
241009
241007
  if (rayFractions !== undefined)
241010
241008
  rayFractions.length = 0;
@@ -241026,7 +241024,7 @@ class SphereImplicit {
241026
241024
  xyz.push(point);
241027
241025
  if (thetaPhiRadians !== undefined) {
241028
241026
  const data = sphere.xyzToThetaPhiR(point);
241029
- thetaPhiRadians.push(_geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_4__.LongitudeLatitudeNumber.createRadians(data.thetaRadians, data.phiRadians));
241027
+ thetaPhiRadians.push(_geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_5__.LongitudeLatitudeNumber.createRadians(data.thetaRadians, data.phiRadians));
241030
241028
  }
241031
241029
  }
241032
241030
  }
@@ -241060,7 +241058,7 @@ class SphereImplicit {
241060
241058
  const rs = this.radius * Math.sin(thetaRadians);
241061
241059
  const cosPhi = Math.cos(phiRadians);
241062
241060
  const sinPhi = Math.sin(phiRadians);
241063
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(rc * cosPhi, rs * cosPhi, this.radius * sinPhi, result);
241061
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(rc * cosPhi, rs * cosPhi, this.radius * sinPhi, result);
241064
241062
  }
241065
241063
  /**
241066
241064
  * * convert radians to xyz on unit sphere
@@ -241085,8 +241083,8 @@ class SphereImplicit {
241085
241083
  const rs = this.radius * Math.sin(thetaRadians);
241086
241084
  const cosPhi = Math.cos(phiRadians);
241087
241085
  const sinPhi = Math.sin(phiRadians);
241088
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-rs * cosPhi, rc * cosPhi, 0.0, dxdTheta);
241089
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-rc * sinPhi, -rs * sinPhi, this.radius * cosPhi, dxdPhi);
241086
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-rs * cosPhi, rc * cosPhi, 0.0, dxdTheta);
241087
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-rc * sinPhi, -rs * sinPhi, this.radius * cosPhi, dxdPhi);
241090
241088
  }
241091
241089
  }
241092
241090
  /** AnalyticRoots has static methods for solving quadratic, cubic, and quartic equations.
@@ -241215,7 +241213,7 @@ class AnalyticRoots {
241215
241213
  * @param values array to expand
241216
241214
  */
241217
241215
  static appendLinearRoot(c0, c1, values) {
241218
- AnalyticRoots.appendSolution(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-c0, c1), values);
241216
+ AnalyticRoots.appendSolution(_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-c0, c1), values);
241219
241217
  }
241220
241218
  /**
241221
241219
  * * Compute the mean of all the entries in `data`
@@ -241246,7 +241244,7 @@ class AnalyticRoots {
241246
241244
  */
241247
241245
  static appendQuadraticRoots(c, values) {
241248
241246
  // Normal form: x^2 + 2px + q = 0
241249
- const divFactor = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(1.0, c[2]);
241247
+ const divFactor = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(1.0, c[2]);
241250
241248
  if (!divFactor) {
241251
241249
  this.appendLinearRoot(c[0], c[1], values);
241252
241250
  return;
@@ -241262,8 +241260,8 @@ class AnalyticRoots {
241262
241260
  return;
241263
241261
  }
241264
241262
  else if (D > 0) {
241265
- const sqrt_D = Math.sqrt(D);
241266
- this.append2Solutions(sqrt_D - p, -sqrt_D - p, values);
241263
+ const sqrtD = Math.sqrt(D);
241264
+ this.append2Solutions(sqrtD - p, -sqrtD - p, values);
241267
241265
  return;
241268
241266
  }
241269
241267
  return;
@@ -241329,7 +241327,7 @@ class AnalyticRoots {
241329
241327
  */
241330
241328
  /*
241331
241329
  private static _appendCubicRootsUnsorted(c: Float64Array | number[], results: GrowableFloat64Array) {
241332
- let sq_A: number;
241330
+ let AA: number;
241333
241331
  let p: number;
241334
241332
  let q: number;
241335
241333
 
@@ -241350,9 +241348,9 @@ class AnalyticRoots {
241350
241348
  // f' = 3y^2 + p
241351
241349
  // local min/max at Y = +-sqrt (-p)
241352
241350
  // f(+Y) = -p sqrt(-p) + 3p sqrt (-p) + 2q = 2 p sqrt (-p) + 2q
241353
- sq_A = A * A;
241354
- p = (3.0 * B - sq_A) / 9.0;
241355
- q = 1.0 / 2 * (2.0 / 27 * A * sq_A - 1.0 / 3 * A * B + C);
241351
+ AA = A * A;
241352
+ p = (3.0 * B - AA) / 9.0;
241353
+ q = 1.0 / 2 * (2.0 / 27 * A * AA - 1.0 / 3 * A * B + C);
241356
241354
 
241357
241355
  // Use Cardano formula
241358
241356
  const cb_p: number = p * p * p;
@@ -241390,9 +241388,9 @@ class AnalyticRoots {
241390
241388
 
241391
241389
  return;
241392
241390
  } else { // One real solution
241393
- const sqrt_D = Math.sqrt(D);
241394
- const u = this.cbrt(sqrt_D - q);
241395
- const v = -(this.cbrt(sqrt_D + q));
241391
+ const sqrtD = Math.sqrt(D);
241392
+ const u = this.cbrt(sqrtD - q);
241393
+ const v = -(this.cbrt(sqrtD + q));
241396
241394
  results.push(origin + u + v);
241397
241395
  this.improveRoots(c, 3, results, false);
241398
241396
  return;
@@ -241401,7 +241399,7 @@ class AnalyticRoots {
241401
241399
  */
241402
241400
  /** Compute roots of cubic 'c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 */
241403
241401
  static appendCubicRoots(c, results) {
241404
- if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideCoordinate(1.0, c[3]) !== undefined) {
241402
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideCoordinate(1.0, c[3]) !== undefined) {
241405
241403
  this.appendFullCubicSolutions(c[3], c[2], c[1], c[0], results);
241406
241404
  // EDL April 5, 2020 replace classic GraphicsGems solver by RWDNickalls.
241407
241405
  // Don't know if improveRoots is needed.
@@ -241433,11 +241431,11 @@ class AnalyticRoots {
241433
241431
  const D = c[0] * coffScale[0];
241434
241432
  const origin = -0.25 * A;
241435
241433
  // substitute x = y - A/4 to eliminate cubic term: y^4 + py^2 + qy + r = 0
241436
- const sq_A = A * A;
241437
- const p = -0.375 * sq_A + B;
241438
- const q = 0.125 * sq_A * A - 0.5 * A * B + C;
241439
- const r = -0.01171875 * sq_A * sq_A + 0.0625 * sq_A * B - 0.25 * A * C + D;
241440
- const cubicSolutions = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array();
241434
+ const AA = A * A;
241435
+ const p = -0.375 * AA + B;
241436
+ const q = 0.125 * AA * A - 0.5 * A * B + C;
241437
+ const r = -0.01171875 * AA * AA + 0.0625 * AA * B - 0.25 * A * C + D;
241438
+ const cubicSolutions = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array();
241441
241439
  if (this.isZero(r)) { // no absolute term: y(y^3 + py + q) = 0
241442
241440
  coffs[0] = q;
241443
241441
  coffs[1] = p;
@@ -241615,17 +241613,16 @@ class PowerPolynomial {
241615
241613
  */
241616
241614
  class TrigPolynomial {
241617
241615
  /**
241618
- * Solve a polynomial created from trigonometric condition using Trig.S, Trig.C, Trig.W.
241619
- * * Polynomial is of degree 4:
241620
- * `p(t) = coff[0] + coff[1] * t + coff[2] * t^2 + coff[3] * t^3 + coff[4] * t^4`
241621
- * * Solution logic includes inferring angular roots corresponding zero leading coefficients
241622
- * (roots at infinity).
241623
- * @param coff coefficients.
241624
- * @param nominalDegree degree of the polynomial under most complex root case. If there are
241625
- * any zero coefficients up to this degree, a single root "at infinity" is recorded as its
241626
- * corresponding angular parameter at negative pi/2.
241627
- * @param referenceCoefficient a number which represents the size of coefficients at various
241628
- * stages of computation. A small fraction of this will be used as a zero tolerance
241616
+ * Find the roots of a univariate polynomial created from substituting the rational parameterization of the unit
241617
+ * circle into a trigonometric polynomial. Roots are returned as radian angles.
241618
+ * * Currently implemented for polynomials of degree <= 4.
241619
+ * * For example, the ellipse-ellipse intersection problem reduces to finding the roots of a quartic polynomial:
241620
+ * `p(t) = coff[0] + coff[1] t + coff[2] t^2 + coff[3] t^3 + coff[4] t^4`.
241621
+ * * Particular care is given to report a root at t = +/-infinity, which corresponds to the returned angle -pi/2.
241622
+ * @param coff coefficients in the power basis
241623
+ * @param nominalDegree degree of the polynomial under the most complex root case.
241624
+ * @param referenceCoefficient a number which represents the size of coefficients at various stages of computation.
241625
+ * A small fraction of this number will be used as a zero tolerance.
241629
241626
  * @param radians roots are placed here.
241630
241627
  * @return false if equation is all zeros. This usually means any angle is a solution.
241631
241628
  */
@@ -241643,7 +241640,7 @@ class TrigPolynomial {
241643
241640
  let degree = nominalDegree;
241644
241641
  while (degree > 0 && (Math.abs(coff[degree]) <= coffTol))
241645
241642
  degree--;
241646
- const roots = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array();
241643
+ const roots = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array();
241647
241644
  if (degree === -1) {
241648
241645
  // do nothing
241649
241646
  }
@@ -241665,41 +241662,42 @@ class TrigPolynomial {
241665
241662
  }
241666
241663
  else {
241667
241664
  // TODO: WORK WITH BEZIER SOLVER
241665
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Unimplemented degree in trig solver");
241668
241666
  }
241669
241667
  if (roots.length > 0) {
241670
- // Each solution t represents an angle with Math.Cos(theta) = C(t)/W(t) and sin(theta) = S(t)/W(t)
241671
- // Division by W has no effect on atan2 calculations, so we just compute S(t),C(t)
241668
+ // each solution t represents an angle with Math.Cos(theta) = C(t)/W(t) and sin(theta) = S(t)/W(t)
241669
+ // division by W has no effect on atan2 calculations, so we just compute S(t),C(t)
241672
241670
  for (let i = 0; i < roots.length; i++) {
241673
241671
  const ss = PowerPolynomial.evaluate(this.S, roots.atUncheckedIndex(i));
241674
241672
  const cc = PowerPolynomial.evaluate(this.C, roots.atUncheckedIndex(i));
241675
241673
  radians.push(Math.atan2(ss, cc));
241676
241674
  }
241677
- // each leading zero at the front of the coefficient array corresponds to a root at -PI/2.
241678
- // only make one entry because we don't report multiplicity.
241679
- if (degree < nominalDegree)
241680
- radians.push(-0.5 * Math.PI);
241681
241675
  }
241676
+ // If the tail of the coff array is zero, we solved a polynomial of lesser degree above, and
241677
+ // we report the skipped "root at infinity" as the corresponding angle -pi/2 (without multiplicity).
241678
+ // See core\geometry\internaldocs\unitCircleEllipseIntersection.md for details.
241679
+ if (degree < nominalDegree)
241680
+ radians.push(-0.5 * Math.PI);
241682
241681
  }
241683
241682
  return radians.length > 0;
241684
241683
  }
241685
241684
  /**
241686
- * Compute intersections of unit circle `x^2 + y^2 = 1` with general quadric
241687
- * `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y + a = 0`
241688
- * Solutions are returned as angles. Sine and Cosine of the angles are the x, y results.
241685
+ * Compute intersections of the unit circle `x^2 + y^2 = 1` with the general quadric (conic)
241686
+ * `axx x^2 + axy xy + ayy y^2 + ax x + ay y + a = 0`.
241689
241687
  * @param axx coefficient of x^2
241690
241688
  * @param axy coefficient of xy
241691
241689
  * @param ayy coefficient of y^2
241692
241690
  * @param ax coefficient of x
241693
241691
  * @param ay coefficient of y
241694
241692
  * @param a constant coefficient
241695
- * @param radians solution angles
241693
+ * @param radians up to 4 solution angles t in the quadric parameterization: x = cos(t), y = sin(t)
241696
241694
  */
241697
241695
  static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a, radians) {
241698
241696
  const coffs = new Float64Array(5);
241699
241697
  PowerPolynomial.zero(coffs);
241700
241698
  let degree;
241701
241699
  // see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients
241702
- if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXYZ(ax, ay, a)) {
241700
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXYZ(ax, ay, a)) {
241703
241701
  PowerPolynomial.accumulate(coffs, this.CW, ax);
241704
241702
  PowerPolynomial.accumulate(coffs, this.SW, ay);
241705
241703
  PowerPolynomial.accumulate(coffs, this.WW, a);
@@ -241747,9 +241745,9 @@ class TrigPolynomial {
241747
241745
  const acs = 2.0 * (ux * vx + uy * vy);
241748
241746
  const ass = vx * vx + vy * vy;
241749
241747
  const ac = 2.0 * (ux * cx + uy * cy);
241750
- const asi = 2.0 * (vx * cx + vy * cy);
241748
+ const as = 2.0 * (vx * cx + vy * cy);
241751
241749
  const a = cx * cx + cy * cy - 1.0;
241752
- const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, asi, a, ellipseRadians);
241750
+ const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, as, a, ellipseRadians);
241753
241751
  for (const radians of ellipseRadians) {
241754
241752
  const cc = Math.cos(radians);
241755
241753
  const ss = Math.sin(radians);
@@ -241816,328 +241814,8 @@ TrigPolynomial.CC = Float64Array.from([1.0, -4.0, 4.0]);
241816
241814
  /** Standard Basis coefficients for W(t) * W(t). */
241817
241815
  TrigPolynomial.WW = Float64Array.from([1.0, -4.0, 8.0, -8.0, 4.0]);
241818
241816
  /** Standard Basis coefficients for C(t) * C(t) - S(t) * S(t). */
241819
- TrigPolynomial.CCminusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]);
241817
+ TrigPolynomial.CCMinusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]); // eslint-disable-line @typescript-eslint/naming-convention
241820
241818
  TrigPolynomial._coefficientRelTol = 1.0e-12;
241821
- /**
241822
- * static methods for commonly appearing sets of equations in 2 or 3 variables
241823
- * @public
241824
- */
241825
- class SmallSystem {
241826
- /**
241827
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.
241828
- * Return the fractional (not xy) coordinates in result.x, result.y
241829
- * @param a0 start point of line a
241830
- * @param a1 end point of line a
241831
- * @param b0 start point of line b
241832
- * @param b1 end point of line b
241833
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
241834
- */
241835
- static lineSegment2dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
241836
- const ux = a1.x - a0.x;
241837
- const uy = a1.y - a0.y;
241838
- const vx = b1.x - b0.x;
241839
- const vy = b1.y - b0.y;
241840
- const cx = b0.x - a0.x;
241841
- const cy = b0.y - a0.y;
241842
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
241843
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
241844
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
241845
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
241846
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
241847
- if (s !== undefined && t !== undefined) {
241848
- result.set(s, -t);
241849
- return true;
241850
- }
241851
- result.set(0, 0);
241852
- return false;
241853
- }
241854
- /**
241855
- * * (ax0,ay0) to (ax0+ux,ay0+uy) are line A.
241856
- * * (bx0,by0) to (bx0+vx,by0+vy) are lineB.
241857
- * * Return true if the lines have a simple intersection.
241858
- * * Return the fractional (not xy) coordinates in result.x, result.y
241859
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
241860
- */
241861
- static lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, result) {
241862
- const cx = bx0 - ax0;
241863
- const cy = by0 - ay0;
241864
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
241865
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
241866
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
241867
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
241868
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
241869
- if (s !== undefined && t !== undefined) {
241870
- result.set(s, -t);
241871
- return true;
241872
- }
241873
- result.set(0, 0);
241874
- return false;
241875
- }
241876
- /**
241877
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts
241878
- * Return the fractional (not xy) coordinates in result.x, result.y
241879
- * @param a0 start point of line a
241880
- * @param a1 end point of line a
241881
- * @param b0 start point of line b
241882
- * @param b1 end point of line b
241883
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
241884
- */
241885
- static lineSegment3dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
241886
- const ux = a1.x - a0.x;
241887
- const uy = a1.y - a0.y;
241888
- const vx = b1.x - b0.x;
241889
- const vy = b1.y - b0.y;
241890
- const cx = b0.x - a0.x;
241891
- const cy = b0.y - a0.y;
241892
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
241893
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
241894
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
241895
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
241896
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
241897
- if (s !== undefined && t !== undefined) {
241898
- result.set(s, -t);
241899
- return true;
241900
- }
241901
- result.set(0, 0);
241902
- return false;
241903
- }
241904
- /**
241905
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points
241906
- * Return the fractional (not xy) coordinates in result.x, result.y
241907
- * @param hA0 homogeneous start point of line a
241908
- * @param hA1 homogeneous end point of line a
241909
- * @param hB0 homogeneous start point of line b
241910
- * @param hB1 homogeneous end point of line b
241911
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
241912
- */
241913
- static lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1, result) {
241914
- // Considering only x,y,w parts....
241915
- // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`
241916
- // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)
241917
- const alpha0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, hA1.x, hB0.x, hA0.y, hA1.y, hB0.y, hA0.w, hA1.w, hB0.w);
241918
- const alpha1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, hA1.x, hB1.x, hA0.y, hA1.y, hB1.y, hA0.w, hA1.w, hB1.w);
241919
- const fractionB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);
241920
- if (fractionB !== undefined) {
241921
- const beta0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hB0.x, hB1.x, hA0.x, hB0.y, hB1.y, hA0.y, hB0.w, hB1.w, hA0.w);
241922
- const beta1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hB0.x, hB1.x, hA1.x, hB0.y, hB1.y, hA1.y, hB0.w, hB1.w, hA1.w);
241923
- const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);
241924
- if (fractionA !== undefined)
241925
- return _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Vector2d.create(fractionA, fractionB, result);
241926
- }
241927
- return undefined;
241928
- }
241929
- /**
241930
- * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.
241931
- * @param hA0 homogeneous start point of line a
241932
- * @param hA1 homogeneous end point of line a
241933
- * @param spacePoint homogeneous point in space
241934
- */
241935
- static lineSegment3dHXYClosestPointUnbounded(hA0, hA1, spacePoint) {
241936
- // Considering only x,y,w parts....
241937
- // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.
241938
- // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection
241939
- // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`
241940
- // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.
241941
- const tx = hA1.x * hA0.w - hA0.x * hA1.w;
241942
- const ty = hA1.y * hA0.w - hA0.y * hA1.w;
241943
- const det0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, -ty, spacePoint.x, hA0.y, tx, spacePoint.y, hA0.w, 0, spacePoint.w);
241944
- const det1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA1.x, -ty, spacePoint.x, hA1.y, tx, spacePoint.y, hA1.w, 0, spacePoint.w);
241945
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-det0, det1 - det0);
241946
- }
241947
- /**
241948
- * Return the line fraction at which the line is closest to a space point as viewed in xy only.
241949
- * @param pointA0 start point
241950
- * @param pointA1 end point
241951
- * @param spacePoint point in space
241952
- */
241953
- static lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, spacePoint) {
241954
- // Considering only x,y parts....
241955
- const ux = pointA1.x - pointA0.x;
241956
- const uy = pointA1.y - pointA0.y;
241957
- const uu = ux * ux + uy * uy;
241958
- const vx = spacePoint.x - pointA0.x;
241959
- const vy = spacePoint.y - pointA0.y;
241960
- const uv = ux * vx + uy * vy;
241961
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
241962
- }
241963
- /**
241964
- * Return the line fraction at which the line is closest to a space point
241965
- * @param pointA0 start point
241966
- * @param pointA1 end point
241967
- * @param spacePoint point in space
241968
- */
241969
- static lineSegment3dClosestPointUnbounded(pointA0, pointA1, spacePoint) {
241970
- const ux = pointA1.x - pointA0.x;
241971
- const uy = pointA1.y - pointA0.y;
241972
- const uz = pointA1.z - pointA0.z;
241973
- const uu = ux * ux + uy * uy + uz * uz;
241974
- const vx = spacePoint.x - pointA0.x;
241975
- const vy = spacePoint.y - pointA0.y;
241976
- const vz = spacePoint.z - pointA0.z;
241977
- const uv = ux * vx + uy * vy + uz * vz;
241978
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
241979
- }
241980
- /**
241981
- * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d
241982
- * Return the fractional (not xy) coordinates in result.x, result.y
241983
- * @param a0 start point of line a
241984
- * @param a1 end point of line a
241985
- * @param b0 start point of line b
241986
- * @param b1 end point of line b
241987
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
241988
- */
241989
- static lineSegment3dClosestApproachUnbounded(a0, a1, b0, b1, result) {
241990
- return this.ray3dXYZUVWClosestApproachUnbounded(a0.x, a0.y, a0.z, a1.x - a0.x, a1.y - a0.y, a1.z - a0.z, b0.x, b0.y, b0.z, b1.x - b0.x, b1.y - b0.y, b1.z - b0.z, result);
241991
- }
241992
- /**
241993
- * Return true if the given rays have closest approach (go by each other) in 3d
241994
- * Return the fractional (not xy) coordinates as x and y parts of a Point2d.
241995
- * @param ax x-coordinate of the origin of the first ray
241996
- * @param ay y-coordinate of the origin of the first ray
241997
- * @param az z-coordinate of the origin of the first ray
241998
- * @param au x-coordinate of the direction vector of the first ray
241999
- * @param av y-coordinate of the direction vector of the first ray
242000
- * @param aw z-coordinate of the direction vector of the first ray
242001
- * @param bx x-coordinate of the origin of the second ray
242002
- * @param by y-coordinate of the origin of the second ray
242003
- * @param bz z-coordinate of the origin of the second ray
242004
- * @param bu x-coordinate of the direction vector of the second ray
242005
- * @param bv y-coordinate of the direction vector of the second ray
242006
- * @param bw z-coordinate of the direction vector of the second ray
242007
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242008
- */
242009
- static ray3dXYZUVWClosestApproachUnbounded(ax, ay, az, au, av, aw, bx, by, bz, bu, bv, bw, result) {
242010
- const cx = bx - ax;
242011
- const cy = by - ay;
242012
- const cz = bz - az;
242013
- const uu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(au, av, aw);
242014
- const vv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(bu, bv, bw);
242015
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);
242016
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);
242017
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);
242018
- return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);
242019
- }
242020
- /**
242021
- * Solve the pair of linear equations
242022
- * * `ux * x + vx * y = cx`
242023
- * * `uy * x + vy * y = cy`
242024
- * @param ux xx coefficient
242025
- * @param vx xy coefficient
242026
- * @param uy yx coefficient
242027
- * @param vy yy coefficient
242028
- * @param cx x right hand side
242029
- * @param cy y right hand side
242030
- * @param result (x,y) solution (MUST be preallocated by caller)
242031
- */
242032
- static linearSystem2d(ux, vx, // first row of matrix
242033
- uy, vy, // second row of matrix
242034
- cx, cy, // right side
242035
- result) {
242036
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
242037
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
242038
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
242039
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
242040
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
242041
- if (s !== undefined && t !== undefined) {
242042
- result.set(s, t);
242043
- return true;
242044
- }
242045
- result.set(0, 0);
242046
- return false;
242047
- }
242048
- /**
242049
- * Solve a linear system:
242050
- * * x equation: `axx * u + axy * v + axz * w = cx`
242051
- * * y equation: `ayx * u + ayy * v + ayz * w = cy`
242052
- * * z equation: `azx * u + azy * v + azz * w = cz`
242053
- * @param axx row 0, column 0 coefficient
242054
- * @param axy row 0, column 1 coefficient
242055
- * @param axz row 0, column 1 coefficient
242056
- * @param ayx row 1, column 0 coefficient
242057
- * @param ayy row 1, column 1 coefficient
242058
- * @param ayz row 1, column 2 coefficient
242059
- * @param azx row 2, column 0 coefficient
242060
- * @param azy row 2, column 1 coefficient
242061
- * @param azz row 2, column 2 coefficient
242062
- * @param cx right hand side row 0 coefficient
242063
- * @param cy right hand side row 1 coefficient
242064
- * @param cz right hand side row 2 coefficient
242065
- * @param result optional result.
242066
- * @returns solution vector (u,v,w) or `undefined` if system is singular.
242067
- */
242068
- static linearSystem3d(axx, axy, axz, // first row of matrix
242069
- ayx, ayy, ayz, // second row of matrix
242070
- azx, azy, azz, // second row of matrix
242071
- cx, cy, cz, // right side
242072
- result) {
242073
- // determinants of various combinations of columns ...
242074
- const detXYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);
242075
- const detCYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);
242076
- const detXCZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);
242077
- const detXYC = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);
242078
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detCYZ, detXYZ);
242079
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXCZ, detXYZ);
242080
- const u = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXYC, detXYZ);
242081
- if (s !== undefined && t !== undefined && u !== undefined) {
242082
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(s, t, u, result);
242083
- }
242084
- return undefined;
242085
- }
242086
- /**
242087
- * Compute the intersection of three planes.
242088
- * @param xyzA point on the first plane
242089
- * @param normalA normal of the first plane
242090
- * @param xyzB point on the second plane
242091
- * @param normalB normal of the second plane
242092
- * @param xyzC point on the third plane
242093
- * @param normalC normal of the third plane
242094
- * @param result optional result
242095
- * @returns intersection point of the three planes (as a Vector3d), or undefined if at least two planes are parallel.
242096
- */
242097
- static intersect3Planes(xyzA, normalA, xyzB, normalB, xyzC, normalC, result) {
242098
- return this.linearSystem3d(normalA.x, normalA.y, normalA.z, normalB.x, normalB.y, normalB.z, normalC.x, normalC.y, normalC.z, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzA.x, xyzA.y, xyzA.z, normalA.x, normalA.y, normalA.z), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzB.x, xyzB.y, xyzB.z, normalB.x, normalB.y, normalB.z), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzC.x, xyzC.y, xyzC.z, normalC.x, normalC.y, normalC.z), result);
242099
- }
242100
- /**
242101
- * * in rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j>pivot`
242102
- * @param rowA row that does not change
242103
- * @param pivotIndex index of pivot (divisor) in rowA.
242104
- * @param rowB row where elimination occurs.
242105
- */
242106
- static eliminateFromPivot(rowA, pivotIndex, rowB, a) {
242107
- const n = rowA.length;
242108
- let q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);
242109
- if (q === undefined)
242110
- return false;
242111
- q *= a;
242112
- for (let j = pivotIndex + 1; j < n; j++)
242113
- rowB[j] += q * rowA[j];
242114
- return true;
242115
- }
242116
- /**
242117
- * Solve a pair of bilinear equations
242118
- * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
242119
- * * Second equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
242120
- */
242121
- static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
242122
- // constant linear, and quadratic coefficients for c0 + c1 * u + c2 * u*u = 0
242123
- const e0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(a0, a1, c0, c1);
242124
- const e1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(b0, b1, c0, c1) + _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(a0, a1, d0, d1);
242125
- const e2 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(b0, b1, d0, d1);
242126
- const uRoots = Degree2PowerPolynomial.solveQuadratic(e2, e1, e0);
242127
- if (uRoots === undefined)
242128
- return undefined;
242129
- const uv = [];
242130
- for (const u of uRoots) {
242131
- const v0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-(a0 + b0 * u), c0 + d0 * u);
242132
- const v1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-(a1 + b1 * u), c1 + d1 * u);
242133
- if (v0 !== undefined)
242134
- uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Point2d.create(u, v0));
242135
- else if (v1 !== undefined)
242136
- uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Point2d.create(u, v1));
242137
- }
242138
- return uv;
242139
- }
242140
- }
242141
241819
  /**
242142
241820
  * * bilinear expression
242143
241821
  * * `f(u,v) = a + b * u * c * v + d * u * v`
@@ -242168,6 +241846,30 @@ class BilinearPolynomial {
242168
241846
  static createUnitSquareValues(f00, f10, f01, f11) {
242169
241847
  return new BilinearPolynomial(f00, f10, f10, f11 - f10 - f01);
242170
241848
  }
241849
+ /**
241850
+ * Solve a pair of bilinear equations
241851
+ * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
241852
+ * * Second equation: `a1 + b1 * u + c1 * v + d1 * u * v = 0`
241853
+ */
241854
+ static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
241855
+ // constant linear, and quadratic coefficients for c0 + c1 * u + c2 * u*u = 0
241856
+ const e0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(a0, a1, c0, c1);
241857
+ const e1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(b0, b1, c0, c1) + _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(a0, a1, d0, d1);
241858
+ const e2 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(b0, b1, d0, d1);
241859
+ const uRoots = Degree2PowerPolynomial.solveQuadratic(e2, e1, e0);
241860
+ if (uRoots === undefined)
241861
+ return undefined;
241862
+ const uv = [];
241863
+ for (const u of uRoots) {
241864
+ const v0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-(a0 + b0 * u), c0 + d0 * u);
241865
+ const v1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-(a1 + b1 * u), c1 + d1 * u);
241866
+ if (v0 !== undefined)
241867
+ uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Point2d.create(u, v0));
241868
+ else if (v1 !== undefined)
241869
+ uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Point2d.create(u, v1));
241870
+ }
241871
+ return uv;
241872
+ }
242171
241873
  /**
242172
241874
  * Solve the simultaneous equations
242173
241875
  * * `p(u,v) = pValue`
@@ -242178,7 +241880,7 @@ class BilinearPolynomial {
242178
241880
  * @param qValue
242179
241881
  */
242180
241882
  static solvePair(p, pValue, q, qValue) {
242181
- return SmallSystem.solveBilinearPair(p.a - pValue, p.b, p.c, p.d, q.a - qValue, q.b, q.c, q.d);
241883
+ return BilinearPolynomial.solveBilinearPair(p.a - pValue, p.b, p.c, p.d, q.a - qValue, q.b, q.c, q.d);
242182
241884
  }
242183
241885
  }
242184
241886
  /**
@@ -242209,21 +241911,21 @@ class SineCosinePolynomial {
242209
241911
  }
242210
241912
  /** Return the range of function values over the entire angle range. */
242211
241913
  range(result) {
242212
- const q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXY(this.cosineCoff, this.sineCoff);
242213
- return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createXX(this.a - q, this.a + q, result);
241914
+ const q = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXY(this.cosineCoff, this.sineCoff);
241915
+ return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createXX(this.a - q, this.a + q, result);
242214
241916
  }
242215
241917
  /** Return the min and max values of the function over theta range from radians0 to radians1 inclusive. */
242216
241918
  rangeInStartEndRadians(radians0, radians1, result) {
242217
- if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_7__.Angle.isFullCircleRadians(radians1 - radians0))
241919
+ if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_8__.Angle.isFullCircleRadians(radians1 - radians0))
242218
241920
  return this.range(result);
242219
- result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createXX(this.evaluateRadians(radians0), this.evaluateRadians(radians1), result);
241921
+ result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createXX(this.evaluateRadians(radians0), this.evaluateRadians(radians1), result);
242220
241922
  // angles of min and max ...
242221
241923
  // angles for min and max of the sine wave . ..
242222
241924
  const alphaA = Math.atan2(this.sineCoff, this.cosineCoff);
242223
241925
  const alphaB = alphaA + Math.PI;
242224
- if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.isRadiansInStartEnd(alphaA, radians0, radians1))
241926
+ if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.isRadiansInStartEnd(alphaA, radians0, radians1))
242225
241927
  result.extendX(this.evaluateRadians(alphaA));
242226
- if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.isRadiansInStartEnd(alphaB, radians0, radians1))
241928
+ if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.isRadiansInStartEnd(alphaB, radians0, radians1))
242227
241929
  result.extendX(this.evaluateRadians(alphaB));
242228
241930
  return result;
242229
241931
  }
@@ -242259,14 +241961,14 @@ class ImplicitLineXY {
242259
241961
  */
242260
241962
  convertToSegmentPoints(b) {
242261
241963
  const q = Math.sqrt(this.ax * this.ax + this.ay * this.ay);
242262
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideCoordinate(1.0, q, 1.0e10);
241964
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideCoordinate(1.0, q, 1.0e10);
242263
241965
  if (alpha === undefined)
242264
241966
  return undefined;
242265
241967
  const ux = alpha * this.ax;
242266
241968
  const uy = alpha * this.ay;
242267
241969
  const px = -alpha * ux;
242268
241970
  const py = -alpha * uy;
242269
- return [_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(px - b * uy, py + b * ux), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(px + b * uy, py - b * ux)];
241971
+ return [_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(px - b * uy, py + b * ux), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(px + b * uy, py - b * ux)];
242270
241972
  }
242271
241973
  /**
242272
241974
  * Evaluate the half-space function at an xy point
@@ -242878,6 +242580,341 @@ function compareRange1dLexicalLowHigh(a, b) {
242878
242580
  }
242879
242581
 
242880
242582
 
242583
+ /***/ }),
242584
+
242585
+ /***/ "../../core/geometry/lib/esm/numerics/SmallSystem.js":
242586
+ /*!***********************************************************!*\
242587
+ !*** ../../core/geometry/lib/esm/numerics/SmallSystem.js ***!
242588
+ \***********************************************************/
242589
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
242590
+
242591
+ "use strict";
242592
+ __webpack_require__.r(__webpack_exports__);
242593
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
242594
+ /* harmony export */ "SmallSystem": () => (/* binding */ SmallSystem)
242595
+ /* harmony export */ });
242596
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
242597
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
242598
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
242599
+ /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
242600
+ /*---------------------------------------------------------------------------------------------
242601
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
242602
+ * See LICENSE.md in the project root for license terms and full copyright notice.
242603
+ *--------------------------------------------------------------------------------------------*/
242604
+ /** @packageDocumentation
242605
+ * @module Numerics
242606
+ */
242607
+
242608
+
242609
+
242610
+
242611
+ // cspell:word XYUV
242612
+ /**
242613
+ * static methods for commonly appearing sets of equations in 2 or 3 variables
242614
+ * @public
242615
+ */
242616
+ class SmallSystem {
242617
+ /**
242618
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.
242619
+ * Return the fractional (not xy) coordinates in result.x, result.y
242620
+ * @param a0 start point of line a
242621
+ * @param a1 end point of line a
242622
+ * @param b0 start point of line b
242623
+ * @param b1 end point of line b
242624
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242625
+ */
242626
+ static lineSegment2dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
242627
+ const ux = a1.x - a0.x;
242628
+ const uy = a1.y - a0.y;
242629
+ const vx = b1.x - b0.x;
242630
+ const vy = b1.y - b0.y;
242631
+ const cx = b0.x - a0.x;
242632
+ const cy = b0.y - a0.y;
242633
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
242634
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
242635
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
242636
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
242637
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
242638
+ if (s !== undefined && t !== undefined) {
242639
+ result.set(s, -t);
242640
+ return true;
242641
+ }
242642
+ result.set(0, 0);
242643
+ return false;
242644
+ }
242645
+ /**
242646
+ * * (ax0,ay0) to (ax0+ux,ay0+uy) are line A.
242647
+ * * (bx0,by0) to (bx0+vx,by0+vy) are lineB.
242648
+ * * Return true if the lines have a simple intersection.
242649
+ * * Return the fractional (not xy) coordinates in result.x, result.y
242650
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242651
+ */
242652
+ static lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, result) {
242653
+ const cx = bx0 - ax0;
242654
+ const cy = by0 - ay0;
242655
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
242656
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
242657
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
242658
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
242659
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
242660
+ if (s !== undefined && t !== undefined) {
242661
+ result.set(s, -t);
242662
+ return true;
242663
+ }
242664
+ result.set(0, 0);
242665
+ return false;
242666
+ }
242667
+ /**
242668
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts
242669
+ * Return the fractional (not xy) coordinates in result.x, result.y
242670
+ * @param a0 start point of line a
242671
+ * @param a1 end point of line a
242672
+ * @param b0 start point of line b
242673
+ * @param b1 end point of line b
242674
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242675
+ */
242676
+ static lineSegment3dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
242677
+ const ux = a1.x - a0.x;
242678
+ const uy = a1.y - a0.y;
242679
+ const vx = b1.x - b0.x;
242680
+ const vy = b1.y - b0.y;
242681
+ const cx = b0.x - a0.x;
242682
+ const cy = b0.y - a0.y;
242683
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
242684
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
242685
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
242686
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
242687
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
242688
+ if (s !== undefined && t !== undefined) {
242689
+ result.set(s, -t);
242690
+ return true;
242691
+ }
242692
+ result.set(0, 0);
242693
+ return false;
242694
+ }
242695
+ /**
242696
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points
242697
+ * Return the fractional (not xy) coordinates in result.x, result.y
242698
+ * @param hA0 homogeneous start point of line a
242699
+ * @param hA1 homogeneous end point of line a
242700
+ * @param hB0 homogeneous start point of line b
242701
+ * @param hB1 homogeneous end point of line b
242702
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242703
+ */
242704
+ static lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1, result) {
242705
+ // Considering only x,y,w parts....
242706
+ // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`
242707
+ // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)
242708
+ const alpha0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, hA1.x, hB0.x, hA0.y, hA1.y, hB0.y, hA0.w, hA1.w, hB0.w);
242709
+ const alpha1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, hA1.x, hB1.x, hA0.y, hA1.y, hB1.y, hA0.w, hA1.w, hB1.w);
242710
+ const fractionB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);
242711
+ if (fractionB !== undefined) {
242712
+ const beta0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hB0.x, hB1.x, hA0.x, hB0.y, hB1.y, hA0.y, hB0.w, hB1.w, hA0.w);
242713
+ const beta1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hB0.x, hB1.x, hA1.x, hB0.y, hB1.y, hA1.y, hB0.w, hB1.w, hA1.w);
242714
+ const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);
242715
+ if (fractionA !== undefined)
242716
+ return _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(fractionA, fractionB, result);
242717
+ }
242718
+ return undefined;
242719
+ }
242720
+ /**
242721
+ * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.
242722
+ * @param hA0 homogeneous start point of line a
242723
+ * @param hA1 homogeneous end point of line a
242724
+ * @param spacePoint homogeneous point in space
242725
+ */
242726
+ static lineSegment3dHXYClosestPointUnbounded(hA0, hA1, spacePoint) {
242727
+ // Considering only x,y,w parts....
242728
+ // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.
242729
+ // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection
242730
+ // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`
242731
+ // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.
242732
+ const tx = hA1.x * hA0.w - hA0.x * hA1.w;
242733
+ const ty = hA1.y * hA0.w - hA0.y * hA1.w;
242734
+ const det0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, -ty, spacePoint.x, hA0.y, tx, spacePoint.y, hA0.w, 0, spacePoint.w);
242735
+ const det1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA1.x, -ty, spacePoint.x, hA1.y, tx, spacePoint.y, hA1.w, 0, spacePoint.w);
242736
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-det0, det1 - det0);
242737
+ }
242738
+ /**
242739
+ * Return the line fraction at which the line is closest to a space point as viewed in xy only.
242740
+ * @param pointA0 start point
242741
+ * @param pointA1 end point
242742
+ * @param spacePoint point in space
242743
+ */
242744
+ static lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, spacePoint) {
242745
+ // Considering only x,y parts....
242746
+ const ux = pointA1.x - pointA0.x;
242747
+ const uy = pointA1.y - pointA0.y;
242748
+ const uu = ux * ux + uy * uy;
242749
+ const vx = spacePoint.x - pointA0.x;
242750
+ const vy = spacePoint.y - pointA0.y;
242751
+ const uv = ux * vx + uy * vy;
242752
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
242753
+ }
242754
+ /**
242755
+ * Return the line fraction at which the line is closest to a space point
242756
+ * @param pointA0 start point
242757
+ * @param pointA1 end point
242758
+ * @param spacePoint point in space
242759
+ */
242760
+ static lineSegment3dClosestPointUnbounded(pointA0, pointA1, spacePoint) {
242761
+ const ux = pointA1.x - pointA0.x;
242762
+ const uy = pointA1.y - pointA0.y;
242763
+ const uz = pointA1.z - pointA0.z;
242764
+ const uu = ux * ux + uy * uy + uz * uz;
242765
+ const vx = spacePoint.x - pointA0.x;
242766
+ const vy = spacePoint.y - pointA0.y;
242767
+ const vz = spacePoint.z - pointA0.z;
242768
+ const uv = ux * vx + uy * vy + uz * vz;
242769
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
242770
+ }
242771
+ /**
242772
+ * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d
242773
+ * Return the fractional (not xy) coordinates in result.x, result.y
242774
+ * @param a0 start point of line a
242775
+ * @param a1 end point of line a
242776
+ * @param b0 start point of line b
242777
+ * @param b1 end point of line b
242778
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242779
+ */
242780
+ static lineSegment3dClosestApproachUnbounded(a0, a1, b0, b1, result) {
242781
+ return this.ray3dXYZUVWClosestApproachUnbounded(a0.x, a0.y, a0.z, a1.x - a0.x, a1.y - a0.y, a1.z - a0.z, b0.x, b0.y, b0.z, b1.x - b0.x, b1.y - b0.y, b1.z - b0.z, result);
242782
+ }
242783
+ /**
242784
+ * Return true if the given rays have closest approach (go by each other) in 3d
242785
+ * Return the fractional (not xy) coordinates as x and y parts of a Point2d.
242786
+ * @param ax x-coordinate of the origin of the first ray
242787
+ * @param ay y-coordinate of the origin of the first ray
242788
+ * @param az z-coordinate of the origin of the first ray
242789
+ * @param au x-coordinate of the direction vector of the first ray
242790
+ * @param av y-coordinate of the direction vector of the first ray
242791
+ * @param aw z-coordinate of the direction vector of the first ray
242792
+ * @param bx x-coordinate of the origin of the second ray
242793
+ * @param by y-coordinate of the origin of the second ray
242794
+ * @param bz z-coordinate of the origin of the second ray
242795
+ * @param bu x-coordinate of the direction vector of the second ray
242796
+ * @param bv y-coordinate of the direction vector of the second ray
242797
+ * @param bw z-coordinate of the direction vector of the second ray
242798
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
242799
+ */
242800
+ static ray3dXYZUVWClosestApproachUnbounded(ax, ay, az, au, av, aw, bx, by, bz, bu, bv, bw, result) {
242801
+ const cx = bx - ax;
242802
+ const cy = by - ay;
242803
+ const cz = bz - az;
242804
+ const uu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(au, av, aw);
242805
+ const vv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(bu, bv, bw);
242806
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);
242807
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);
242808
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);
242809
+ return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);
242810
+ }
242811
+ /**
242812
+ * Solve the pair of linear equations
242813
+ * * `ux * x + vx * y = cx`
242814
+ * * `uy * x + vy * y = cy`
242815
+ * @param ux xx coefficient
242816
+ * @param vx xy coefficient
242817
+ * @param uy yx coefficient
242818
+ * @param vy yy coefficient
242819
+ * @param cx x right hand side
242820
+ * @param cy y right hand side
242821
+ * @param result (x,y) solution (MUST be preallocated by caller)
242822
+ */
242823
+ static linearSystem2d(ux, vx, // first row of matrix
242824
+ uy, vy, // second row of matrix
242825
+ cx, cy, // right side
242826
+ result) {
242827
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
242828
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
242829
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
242830
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
242831
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
242832
+ if (s !== undefined && t !== undefined) {
242833
+ result.set(s, t);
242834
+ return true;
242835
+ }
242836
+ result.set(0, 0);
242837
+ return false;
242838
+ }
242839
+ /**
242840
+ * Solve a linear system:
242841
+ * * x equation: `axx * u + axy * v + axz * w = cx`
242842
+ * * y equation: `ayx * u + ayy * v + ayz * w = cy`
242843
+ * * z equation: `azx * u + azy * v + azz * w = cz`
242844
+ * @param axx row 0, column 0 coefficient
242845
+ * @param axy row 0, column 1 coefficient
242846
+ * @param axz row 0, column 1 coefficient
242847
+ * @param ayx row 1, column 0 coefficient
242848
+ * @param ayy row 1, column 1 coefficient
242849
+ * @param ayz row 1, column 2 coefficient
242850
+ * @param azx row 2, column 0 coefficient
242851
+ * @param azy row 2, column 1 coefficient
242852
+ * @param azz row 2, column 2 coefficient
242853
+ * @param cx right hand side row 0 coefficient
242854
+ * @param cy right hand side row 1 coefficient
242855
+ * @param cz right hand side row 2 coefficient
242856
+ * @param result optional result.
242857
+ * @returns solution vector (u,v,w) or `undefined` if system is singular.
242858
+ */
242859
+ static linearSystem3d(axx, axy, axz, // first row of matrix
242860
+ ayx, ayy, ayz, // second row of matrix
242861
+ azx, azy, azz, // second row of matrix
242862
+ cx, cy, cz, // right side
242863
+ result) {
242864
+ // determinants of various combinations of columns ...
242865
+ const detXYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);
242866
+ const detCYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);
242867
+ const detXCZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);
242868
+ const detXYC = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);
242869
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detCYZ, detXYZ);
242870
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXCZ, detXYZ);
242871
+ const u = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXYC, detXYZ);
242872
+ if (s !== undefined && t !== undefined && u !== undefined) {
242873
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(s, t, u, result);
242874
+ }
242875
+ return undefined;
242876
+ }
242877
+ /**
242878
+ * Compute the intersection of three planes.
242879
+ * @param xyzA point on the first plane
242880
+ * @param normalA normal of the first plane
242881
+ * @param xyzB point on the second plane
242882
+ * @param normalB normal of the second plane
242883
+ * @param xyzC point on the third plane
242884
+ * @param normalC normal of the third plane
242885
+ * @param result optional result
242886
+ * @returns intersection point of the three planes (as a Vector3d), or undefined if at least two planes are parallel.
242887
+ */
242888
+ static intersect3Planes(xyzA, normalA, xyzB, normalB, xyzC, normalC, result) {
242889
+ return this.linearSystem3d(normalA.x, normalA.y, normalA.z, normalB.x, normalB.y, normalB.z, normalC.x, normalC.y, normalC.z, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzA.x, xyzA.y, xyzA.z, normalA.x, normalA.y, normalA.z), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzB.x, xyzB.y, xyzB.z, normalB.x, normalB.y, normalB.z), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(xyzC.x, xyzC.y, xyzC.z, normalC.x, normalC.y, normalC.z), result);
242890
+ }
242891
+ /**
242892
+ * * in rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j>pivot`
242893
+ * @param rowA row that does not change
242894
+ * @param pivotIndex index of pivot (divisor) in rowA.
242895
+ * @param rowB row where elimination occurs.
242896
+ */
242897
+ static eliminateFromPivot(rowA, pivotIndex, rowB, a) {
242898
+ const n = rowA.length;
242899
+ let q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);
242900
+ if (q === undefined)
242901
+ return false;
242902
+ q *= a;
242903
+ for (let j = pivotIndex + 1; j < n; j++)
242904
+ rowB[j] += q * rowA[j];
242905
+ return true;
242906
+ }
242907
+ /**
242908
+ * Solve a pair of bilinear equations
242909
+ * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
242910
+ * * Second equation: `a1 + b1 * u + c1 * v + d1 * u * v = 0`
242911
+ */
242912
+ static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
242913
+ return _Polynomials__WEBPACK_IMPORTED_MODULE_3__.BilinearPolynomial.solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1);
242914
+ }
242915
+ }
242916
+
242917
+
242881
242918
  /***/ }),
242882
242919
 
242883
242920
  /***/ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js":
@@ -253427,16 +253464,16 @@ __webpack_require__.r(__webpack_exports__);
253427
253464
  /* harmony export */ "OffsetMeshContext": () => (/* binding */ OffsetMeshContext),
253428
253465
  /* harmony export */ "SectorOffsetProperties": () => (/* binding */ SectorOffsetProperties)
253429
253466
  /* harmony export */ });
253430
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
253467
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
253468
+ /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
253431
253469
  /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
253432
253470
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
253433
253471
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
253472
+ /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
253434
253473
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
253474
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
253435
253475
  /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
253436
253476
  /* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
253437
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
253438
- /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
253439
- /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
253440
253477
  /*---------------------------------------------------------------------------------------------
253441
253478
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
253442
253479
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -254177,7 +254214,7 @@ class OffsetMeshContext {
254177
254214
  const sectorA = nodeA.edgeTag;
254178
254215
  const sectorB = nodeB.edgeTag;
254179
254216
  const sectorC = nodeC.edgeTag;
254180
- const vector = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
254217
+ const vector = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
254181
254218
  return vector;
254182
254219
  }
254183
254220
  /** Compute the point of intersection of the planes in the sectors of 3 half edges */
@@ -254190,7 +254227,7 @@ class OffsetMeshContext {
254190
254227
  for (const sector of [sectorA, sectorB, sectorC])
254191
254228
  emitSector(sector);
254192
254229
  }
254193
- const vector = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
254230
+ const vector = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
254194
254231
  if (OffsetMeshContext.stringDebugFunction !== undefined) {
254195
254232
  if (vector === undefined)
254196
254233
  OffsetMeshContext.stringDebugFunction(" NO INTERSECTION");
@@ -254204,7 +254241,7 @@ class OffsetMeshContext {
254204
254241
  const sectorA = nodeA.edgeTag;
254205
254242
  const sectorB = nodeB.edgeTag;
254206
254243
  const normalC = sectorA.normal.crossProduct(sectorB.normal);
254207
- return _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorB.xyz, normalC, result);
254244
+ return _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorB.xyz, normalC, result);
254208
254245
  }
254209
254246
  /**
254210
254247
  * * at input, graph has all original faces and edges
@@ -269142,7 +269179,7 @@ __webpack_require__.r(__webpack_exports__);
269142
269179
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
269143
269180
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
269144
269181
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
269145
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
269182
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
269146
269183
  /* harmony import */ var _MaskManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MaskManager */ "../../core/geometry/lib/esm/topology/MaskManager.js");
269147
269184
  /*---------------------------------------------------------------------------------------------
269148
269185
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -270235,7 +270272,7 @@ class HalfEdge {
270235
270272
  // (nodeA1.x - nodeA0.x)ta + (nodeB0.x - nodeB1.x)tb = nodeB0.x - nodeA0.x
270236
270273
  // (nodeA1.y - nodeA0.y)ta + (nodeB0.y - nodeB1.y)tb = nodeB0.y - nodeA0.y
270237
270274
  // Proof can be found at geometry/internaldocs/Graph.md
270238
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.linearSystem2d(nodeA1.x - nodeA0.x, nodeB0.x - nodeB1.x, nodeA1.y - nodeA0.y, nodeB0.y - nodeB1.y, nodeB0.x - nodeA0.x, nodeB0.y - nodeA0.y, result))
270275
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.linearSystem2d(nodeA1.x - nodeA0.x, nodeB0.x - nodeB1.x, nodeA1.y - nodeA0.y, nodeB0.y - nodeB1.y, nodeB0.x - nodeA0.x, nodeB0.y - nodeA0.y, result))
270239
270276
  return result;
270240
270277
  return undefined;
270241
270278
  }
@@ -272350,7 +272387,7 @@ __webpack_require__.r(__webpack_exports__);
272350
272387
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
272351
272388
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
272352
272389
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
272353
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
272390
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
272354
272391
  /* harmony import */ var _Graph__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
272355
272392
  /* harmony import */ var _HalfEdgeMarkSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HalfEdgeMarkSet */ "../../core/geometry/lib/esm/topology/HalfEdgeMarkSet.js");
272356
272393
  /* harmony import */ var _HalfEdgePointInGraphSearch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./HalfEdgePointInGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgePointInGraphSearch.js");
@@ -272454,7 +272491,7 @@ class InsertAndRetriangulateContext {
272454
272491
  let distanceC;
272455
272492
  for (const nodeA of this._graph.allHalfEdges) {
272456
272493
  const nodeB = nodeA.faceSuccessor;
272457
- fractionC = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(nodeA, nodeB, xyz);
272494
+ fractionC = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(nodeA, nodeB, xyz);
272458
272495
  if (fractionC !== undefined) {
272459
272496
  if (fractionC > 1.0) {
272460
272497
  distanceC = xyz.distanceXY(nodeB);
@@ -272820,7 +272857,7 @@ __webpack_require__.r(__webpack_exports__);
272820
272857
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
272821
272858
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
272822
272859
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
272823
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
272860
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
272824
272861
  /* harmony import */ var _Graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
272825
272862
  /* harmony import */ var _HalfEdgePriorityQueue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HalfEdgePriorityQueue */ "../../core/geometry/lib/esm/topology/HalfEdgePriorityQueue.js");
272826
272863
  /* harmony import */ var _RegularizeFace__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./RegularizeFace */ "../../core/geometry/lib/esm/topology/RegularizeFace.js");
@@ -273298,7 +273335,7 @@ class HalfEdgeGraphMerge {
273298
273335
  const vx = nodeB1.x - bx0;
273299
273336
  const vy = nodeB1.y - by0;
273300
273337
  // cspell:word lineSegmentXYUVTransverseIntersectionUnbounded
273301
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, fractions)) {
273338
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, fractions)) {
273302
273339
  pointA.x = ax0 + fractions.x * ux;
273303
273340
  pointA.y = ay0 + fractions.x * uy;
273304
273341
  pointB.x = bx0 + fractions.y * vx;
@@ -296380,7 +296417,7 @@ class TestContext {
296380
296417
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
296381
296418
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
296382
296419
  await core_frontend_1.NoRenderApp.startup({
296383
- applicationVersion: "4.10.0-dev.25",
296420
+ applicationVersion: "4.10.0-dev.27",
296384
296421
  applicationId: this.settings.gprid,
296385
296422
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
296386
296423
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -321249,7 +321286,7 @@ function __disposeResources(env) {
321249
321286
  /***/ ((module) => {
321250
321287
 
321251
321288
  "use strict";
321252
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.10.0-dev.25","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 --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -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.10.0-dev.25","@itwin/core-bentley":"workspace:^4.10.0-dev.25","@itwin/core-common":"workspace:^4.10.0-dev.25","@itwin/core-geometry":"workspace:^4.10.0-dev.25","@itwin/core-orbitgt":"workspace:^4.10.0-dev.25","@itwin/core-quantity":"workspace:^4.10.0-dev.25"},"//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.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","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.2.4","@itwin/object-storage-core":"^2.2.5","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
321289
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.10.0-dev.27","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 --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -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.10.0-dev.27","@itwin/core-bentley":"workspace:^4.10.0-dev.27","@itwin/core-common":"workspace:^4.10.0-dev.27","@itwin/core-geometry":"workspace:^4.10.0-dev.27","@itwin/core-orbitgt":"workspace:^4.10.0-dev.27","@itwin/core-quantity":"workspace:^4.10.0-dev.27"},"//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.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","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.2.4","@itwin/object-storage-core":"^2.2.5","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
321253
321290
 
321254
321291
  /***/ }),
321255
321292