@itwin/ecschema-rpcinterface-tests 4.10.0-dev.26 → 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.
@@ -66566,9 +66566,8 @@ __webpack_require__.r(__webpack_exports__);
66566
66566
  /* harmony import */ var _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Deserialization/XmlSerializationUtils */ "../../core/ecschema-metadata/lib/esm/Deserialization/XmlSerializationUtils.js");
66567
66567
  /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
66568
66568
  /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
66569
- /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
66570
- /* harmony import */ var _OverrideFormat__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
66571
- /* harmony import */ var _SchemaItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
66569
+ /* harmony import */ var _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
66570
+ /* harmony import */ var _SchemaItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
66572
66571
  /*---------------------------------------------------------------------------------------------
66573
66572
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
66574
66573
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -66582,11 +66581,10 @@ __webpack_require__.r(__webpack_exports__);
66582
66581
 
66583
66582
 
66584
66583
 
66585
-
66586
66584
  /** A Typescript class representation of a KindOfQuantity.
66587
66585
  * @beta
66588
66586
  */
66589
- class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem {
66587
+ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_5__.SchemaItem {
66590
66588
  /** The first presentation format in the list of Formats. */
66591
66589
  get defaultPresentationFormat() { return this.presentationFormats[0]; }
66592
66590
  /** A list of presentation formats. */
@@ -66609,57 +66607,6 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
66609
66607
  // TODO: Add some sort of validation?
66610
66608
  (isDefault) ? this._presentationFormats.splice(0, 0, format) : this._presentationFormats.push(format);
66611
66609
  }
66612
- /** Parses the format string into the parts that make up an Override Format
66613
- * @param formatString
66614
- */
66615
- parseFormatString(formatString) {
66616
- const match = formatString.split(_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_4__.formatStringRgx); // split string based on regex groups
66617
- if (undefined === match[1])
66618
- 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.`);
66619
- const returnValue = { name: match[1] };
66620
- if (undefined !== match[2] && undefined !== match[3]) {
66621
- const overrideString = match[2];
66622
- const tokens = [];
66623
- let prevPos = 1; // Initial position is the character directly after the opening '(' in the override string.
66624
- let currPos;
66625
- // TODO need to include `,` as a valid search argument.
66626
- while (-1 !== (currPos = overrideString.indexOf(")", prevPos))) { // eslint-disable-line
66627
- tokens.push(overrideString.substring(prevPos, currPos));
66628
- prevPos = currPos + 1;
66629
- }
66630
- if (overrideString.length > 0 && undefined === tokens.find((token) => {
66631
- return "" !== token; // there is at least one token that is not empty.
66632
- })) {
66633
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
66634
- }
66635
- // The first override parameter overrides the default precision of the format
66636
- const precisionIndx = 0;
66637
- if (tokens.length >= precisionIndx + 1) {
66638
- if (tokens[precisionIndx].length > 0) {
66639
- const precision = Number.parseInt(tokens[precisionIndx], 10);
66640
- if (Number.isNaN(precision))
66641
- 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.`);
66642
- returnValue.precision = precision;
66643
- }
66644
- }
66645
- }
66646
- let i = 4;
66647
- 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
66648
- if (undefined === match[i])
66649
- break;
66650
- // Unit override required
66651
- if (undefined === match[i + 1])
66652
- throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
66653
- if (undefined === returnValue.unitAndLabels)
66654
- returnValue.unitAndLabels = [];
66655
- if (undefined !== match[i + 2]) // matches '|'
66656
- 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)
66657
- else
66658
- returnValue.unitAndLabels.push([match[i + 1], undefined]); // add unit name
66659
- i += 4;
66660
- }
66661
- return returnValue;
66662
- }
66663
66610
  /** Creates an OverrideFormat in the context of this KindOfQuantity.
66664
66611
  * @param parent The Format to override.
66665
66612
  * @param precision The precision override
@@ -66671,12 +66618,12 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
66671
66618
  if (parent.units && 0 === parent.units.length && unitLabelOverrides && 0 < unitLabelOverrides.length)
66672
66619
  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.`);
66673
66620
  // TODO: Check compatibility of Unit overrides with the persistence unit
66674
- return new _OverrideFormat__WEBPACK_IMPORTED_MODULE_5__.OverrideFormat(parent, precision, unitLabelOverrides);
66621
+ return new _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat(parent, precision, unitLabelOverrides);
66675
66622
  }
66676
66623
  async processPresentationUnits(presentationUnitsJson) {
66677
66624
  const presUnitsArr = Array.isArray(presentationUnitsJson) ? presentationUnitsJson : presentationUnitsJson.split(";");
66678
66625
  for (const formatString of presUnitsArr) {
66679
- const presFormatOverride = this.parseFormatString(formatString);
66626
+ const presFormatOverride = _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.parseFormatString(formatString);
66680
66627
  const format = await this.schema.lookupItem(presFormatOverride.name);
66681
66628
  if (undefined === format || format.schemaItemType !== _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaItemType.Format)
66682
66629
  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}.`);
@@ -66703,7 +66650,7 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
66703
66650
  processPresentationUnitsSync(presentationUnitsJson) {
66704
66651
  const presUnitsArr = Array.isArray(presentationUnitsJson) ? presentationUnitsJson : presentationUnitsJson.split(";");
66705
66652
  for (const formatString of presUnitsArr) {
66706
- const presFormatOverride = this.parseFormatString(formatString);
66653
+ const presFormatOverride = _OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.parseFormatString(formatString);
66707
66654
  const format = this.schema.lookupItemSync(presFormatOverride.name);
66708
66655
  if (undefined === format || format.schemaItemType !== _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaItemType.Format)
66709
66656
  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}.`);
@@ -66750,7 +66697,7 @@ class KindOfQuantity extends _SchemaItem__WEBPACK_IMPORTED_MODULE_6__.SchemaItem
66750
66697
  }
66751
66698
  if (undefined !== this.presentationFormats) {
66752
66699
  const presUnitStrings = this.presentationFormats.map((format) => {
66753
- if (!_OverrideFormat__WEBPACK_IMPORTED_MODULE_5__.OverrideFormat.isOverrideFormat(format))
66700
+ if (!_OverrideFormat__WEBPACK_IMPORTED_MODULE_4__.OverrideFormat.isOverrideFormat(format))
66754
66701
  return _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_1__.XmlSerializationUtils.createXmlTypedName(this.schema, format.schema, format.name);
66755
66702
  return format.fullNameXml(this.schema);
66756
66703
  });
@@ -66945,6 +66892,8 @@ __webpack_require__.r(__webpack_exports__);
66945
66892
  /* harmony export */ });
66946
66893
  /* harmony import */ var _Deserialization_XmlSerializationUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Deserialization/XmlSerializationUtils */ "../../core/ecschema-metadata/lib/esm/Deserialization/XmlSerializationUtils.js");
66947
66894
  /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
66895
+ /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
66896
+ /* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
66948
66897
  /*---------------------------------------------------------------------------------------------
66949
66898
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
66950
66899
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -66954,6 +66903,8 @@ __webpack_require__.r(__webpack_exports__);
66954
66903
  */
66955
66904
 
66956
66905
 
66906
+
66907
+
66957
66908
  /**
66958
66909
  * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
66959
66910
  * @beta
@@ -67022,6 +66973,57 @@ class OverrideFormat {
67022
66973
  fullName += `[${unit.fullName}|${unitLabel}]`;
67023
66974
  return fullName;
67024
66975
  }
66976
+ /** Parses the format string into the parts that make up an Override Format
66977
+ * @param formatString
66978
+ */
66979
+ static parseFormatString(formatString) {
66980
+ const match = formatString.split(_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_2__.formatStringRgx); // split string based on regex groups
66981
+ if (undefined === match[1])
66982
+ 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.`);
66983
+ const returnValue = { name: match[1] };
66984
+ if (undefined !== match[2] && undefined !== match[3]) {
66985
+ const overrideString = match[2];
66986
+ const tokens = [];
66987
+ let prevPos = 1; // Initial position is the character directly after the opening '(' in the override string.
66988
+ let currPos;
66989
+ // TODO need to include `,` as a valid search argument.
66990
+ while (-1 !== (currPos = overrideString.indexOf(")", prevPos))) { // eslint-disable-line
66991
+ tokens.push(overrideString.substring(prevPos, currPos));
66992
+ prevPos = currPos + 1;
66993
+ }
66994
+ if (overrideString.length > 0 && undefined === tokens.find((token) => {
66995
+ return "" !== token; // there is at least one token that is not empty.
66996
+ })) {
66997
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
66998
+ }
66999
+ // The first override parameter overrides the default precision of the format
67000
+ const precisionIndx = 0;
67001
+ if (tokens.length >= precisionIndx + 1) {
67002
+ if (tokens[precisionIndx].length > 0) {
67003
+ const precision = Number.parseInt(tokens[precisionIndx], 10);
67004
+ if (Number.isNaN(precision))
67005
+ 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.`);
67006
+ returnValue.precision = precision;
67007
+ }
67008
+ }
67009
+ }
67010
+ let i = 4;
67011
+ 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
67012
+ if (undefined === match[i])
67013
+ break;
67014
+ // Unit override required
67015
+ if (undefined === match[i + 1])
67016
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_3__.ECObjectsStatus.InvalidECJson, ``);
67017
+ if (undefined === returnValue.unitAndLabels)
67018
+ returnValue.unitAndLabels = [];
67019
+ if (undefined !== match[i + 2]) // matches '|'
67020
+ 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)
67021
+ else
67022
+ returnValue.unitAndLabels.push([match[i + 1], undefined]); // add unit name
67023
+ i += 4;
67024
+ }
67025
+ return returnValue;
67026
+ }
67025
67027
  /**
67026
67028
  * @internal
67027
67029
  */
@@ -93488,6 +93490,9 @@ class ViewingSpace {
93488
93490
  zMax = Math.max(zMax, 1.0); // make sure we have at least +-1m. Data may be purely planar
93489
93491
  delta.z = 2.0 * zMax;
93490
93492
  origin.z = -zMax;
93493
+ const ds = this.view.displayStyle;
93494
+ if (ds.getIsBackgroundMapVisible() && undefined !== ds.getBackgroundMapGeometry())
93495
+ this.adjustZPlanes(origin, delta); // make sure view volume includes background map
93491
93496
  }
93492
93497
  else {
93493
93498
  if (view.isCameraOn)
@@ -187475,7 +187480,6 @@ __webpack_require__.r(__webpack_exports__);
187475
187480
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
187476
187481
  /* harmony export */ "AkimaCurve3d": () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3d),
187477
187482
  /* harmony export */ "AkimaCurve3dOptions": () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3dOptions),
187478
- /* harmony export */ "AnalyticRoots": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.AnalyticRoots),
187479
187483
  /* harmony export */ "Angle": () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
187480
187484
  /* harmony export */ "AngleSweep": () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
187481
187485
  /* harmony export */ "AnnotatedLineString3d": () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.AnnotatedLineString3d),
@@ -187505,7 +187509,6 @@ __webpack_require__.r(__webpack_exports__);
187505
187509
  /* harmony export */ "BezierCurveBase": () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__.BezierCurveBase),
187506
187510
  /* harmony export */ "BezierPolynomialAlgebra": () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
187507
187511
  /* harmony export */ "BilinearPatch": () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
187508
- /* harmony export */ "BilinearPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.BilinearPolynomial),
187509
187512
  /* harmony export */ "BooleanClipFactory": () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
187510
187513
  /* harmony export */ "Box": () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_88__.Box),
187511
187514
  /* harmony export */ "BoxTopology": () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__.BoxTopology),
@@ -187547,9 +187550,6 @@ __webpack_require__.r(__webpack_exports__);
187547
187550
  /* harmony export */ "CutLoop": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
187548
187551
  /* harmony export */ "CutLoopMergeContext": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
187549
187552
  /* harmony export */ "DeepCompare": () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
187550
- /* harmony export */ "Degree2PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree2PowerPolynomial),
187551
- /* harmony export */ "Degree3PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree3PowerPolynomial),
187552
- /* harmony export */ "Degree4PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree4PowerPolynomial),
187553
187553
  /* harmony export */ "DirectSpiral3d": () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__.DirectSpiral3d),
187554
187554
  /* harmony export */ "DuplicateFacetClusterSelector": () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.DuplicateFacetClusterSelector),
187555
187555
  /* harmony export */ "Ellipsoid": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
@@ -187560,7 +187560,7 @@ __webpack_require__.r(__webpack_exports__);
187560
187560
  /* harmony export */ "FacetIntersectOptions": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetIntersectOptions),
187561
187561
  /* harmony export */ "FacetLocationDetailPair": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetLocationDetailPair),
187562
187562
  /* harmony export */ "FrameBuilder": () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
187563
- /* harmony export */ "GaussMapper": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.GaussMapper),
187563
+ /* harmony export */ "GaussMapper": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__.GaussMapper),
187564
187564
  /* harmony export */ "GeodesicPathPoint": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
187565
187565
  /* harmony export */ "GeodesicPathSolver": () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
187566
187566
  /* harmony export */ "Geometry": () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
@@ -187573,7 +187573,6 @@ __webpack_require__.r(__webpack_exports__);
187573
187573
  /* harmony export */ "GrowableXYArray": () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
187574
187574
  /* harmony export */ "GrowableXYZArray": () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
187575
187575
  /* harmony export */ "IModelJson": () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
187576
- /* harmony export */ "ImplicitLineXY": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.ImplicitLineXY),
187577
187576
  /* harmony export */ "IndexedCollectionInterval": () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
187578
187577
  /* harmony export */ "IndexedPolyface": () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
187579
187578
  /* harmony export */ "IndexedPolyfaceSubsetVisitor": () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceSubsetVisitor),
@@ -187643,11 +187642,10 @@ __webpack_require__.r(__webpack_exports__);
187643
187642
  /* harmony export */ "PolygonLocationDetailPair": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetailPair),
187644
187643
  /* harmony export */ "PolygonOps": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
187645
187644
  /* harmony export */ "PolylineOps": () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
187646
- /* harmony export */ "PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.PowerPolynomial),
187647
187645
  /* harmony export */ "ProxyCurve": () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__.ProxyCurve),
187648
- /* harmony export */ "Quadrature": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.Quadrature),
187646
+ /* harmony export */ "Quadrature": () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__.Quadrature),
187649
187647
  /* harmony export */ "Range1d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
187650
- /* harmony export */ "Range1dArray": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.Range1dArray),
187648
+ /* harmony export */ "Range1dArray": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__.Range1dArray),
187651
187649
  /* harmony export */ "Range2d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
187652
187650
  /* harmony export */ "Range3d": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
187653
187651
  /* harmony export */ "RangeBase": () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
@@ -187664,13 +187662,11 @@ __webpack_require__.r(__webpack_exports__);
187664
187662
  /* harmony export */ "Sample": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
187665
187663
  /* harmony export */ "Segment1d": () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
187666
187664
  /* harmony export */ "SerializationHelpers": () => (/* reexport safe */ _serialization_SerializationHelpers__WEBPACK_IMPORTED_MODULE_129__.SerializationHelpers),
187667
- /* harmony export */ "SineCosinePolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SineCosinePolynomial),
187668
- /* harmony export */ "SmallSystem": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SmallSystem),
187665
+ /* harmony export */ "SmallSystem": () => (/* reexport safe */ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_57__.SmallSystem),
187669
187666
  /* harmony export */ "SmoothTransformBetweenFrusta": () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
187670
187667
  /* harmony export */ "SolidPrimitive": () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
187671
187668
  /* harmony export */ "SpacePolygonTriangulation": () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
187672
187669
  /* harmony export */ "Sphere": () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
187673
- /* harmony export */ "SphereImplicit": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SphereImplicit),
187674
187670
  /* harmony export */ "StandardViewIndex": () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
187675
187671
  /* harmony export */ "SteppedIndexFunctionFactory": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
187676
187672
  /* harmony export */ "StringifiedClipVector": () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
@@ -187680,14 +187676,12 @@ __webpack_require__.r(__webpack_exports__);
187680
187676
  /* harmony export */ "SweepLineStringToFacetsOptions": () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.SweepLineStringToFacetsOptions),
187681
187677
  /* harmony export */ "TaggedNumericConstants": () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericConstants),
187682
187678
  /* harmony export */ "TaggedNumericData": () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_124__.TaggedNumericData),
187683
- /* harmony export */ "TorusImplicit": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TorusImplicit),
187684
187679
  /* harmony export */ "TorusPipe": () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__.TorusPipe),
187685
187680
  /* harmony export */ "Transform": () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
187686
187681
  /* harmony export */ "TransitionSpiral3d": () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__.TransitionSpiral3d),
187687
187682
  /* harmony export */ "TriDiagonalSystem": () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__.TriDiagonalSystem),
187688
187683
  /* harmony export */ "TriangleLocationDetail": () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
187689
187684
  /* harmony export */ "TriangularFacetLocationDetail": () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.TriangularFacetLocationDetail),
187690
- /* harmony export */ "TrigPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TrigPolynomial),
187691
187685
  /* harmony export */ "UVSelect": () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.UVSelect),
187692
187686
  /* harmony export */ "UVSurfaceOps": () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
187693
187687
  /* harmony export */ "UnionOfConvexClipPlaneSets": () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
@@ -187701,7 +187695,7 @@ __webpack_require__.r(__webpack_exports__);
187701
187695
  /* harmony export */ "XYAndZ": () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
187702
187696
  /* harmony export */ "XYZ": () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
187703
187697
  /* harmony export */ "YawPitchRollAngles": () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
187704
- /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh)
187698
+ /* harmony export */ "compareRange1dLexicalLowHigh": () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__.compareRange1dLexicalLowHigh)
187705
187699
  /* harmony export */ });
187706
187700
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
187707
187701
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -187758,9 +187752,9 @@ __webpack_require__.r(__webpack_exports__);
187758
187752
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
187759
187753
  /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
187760
187754
  /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
187761
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
187762
- /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
187763
- /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
187755
+ /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
187756
+ /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
187757
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
187764
187758
  /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
187765
187759
  /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
187766
187760
  /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
@@ -188110,20 +188104,21 @@ __webpack_require__.r(__webpack_exports__);
188110
188104
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
188111
188105
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
188112
188106
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
188113
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
188107
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
188114
188108
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
188115
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
188116
- /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
188109
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
188110
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
188111
+ /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
188117
188112
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
188118
188113
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
188119
- /* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
188120
- /* harmony import */ var _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/EllipticalArcApproximationContext */ "../../core/geometry/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js");
188121
- /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
188114
+ /* harmony import */ var _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/CurveOffsetXYHandler */ "../../core/geometry/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js");
188115
+ /* harmony import */ var _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internalContexts/EllipticalArcApproximationContext */ "../../core/geometry/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js");
188116
+ /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
188122
188117
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
188123
188118
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
188124
- /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
188125
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
188126
- /* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
188119
+ /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
188120
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Path */ "../../core/geometry/lib/esm/curve/Path.js");
188121
+ /* harmony import */ var _StrokeOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
188127
188122
  /*---------------------------------------------------------------------------------------------
188128
188123
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
188129
188124
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -188147,6 +188142,7 @@ __webpack_require__.r(__webpack_exports__);
188147
188142
 
188148
188143
 
188149
188144
 
188145
+
188150
188146
 
188151
188147
 
188152
188148
  /**
@@ -188567,7 +188563,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188567
188563
  const ac2 = vectorAC.magnitudeSquared();
188568
188564
  const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
188569
188565
  if (normal) {
188570
- 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)
188566
+ 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)
188571
188567
  0.5 * ab2, // vectorToCenter DOT vectorAB = ab2 / 2 (ensure the projection of vectorToCenter on AB bisects AB)
188572
188568
  0.5 * ac2);
188573
188569
  if (vectorToCenter) { // i.e., the negative of vectorX
@@ -188802,7 +188798,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188802
188798
  const uu = this._matrix.columnXMagnitudeSquared();
188803
188799
  const uv = this._matrix.columnXDotColumnY();
188804
188800
  const vv = this._matrix.columnYMagnitudeSquared();
188805
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleImplicitQuadricIntersection(uv, vv - uu, -uv, this._matrix.dotColumnY(vectorQ), -this._matrix.dotColumnX(vectorQ), 0.0, radians);
188801
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.TrigPolynomial.solveUnitCircleImplicitQuadricIntersection(uv, vv - uu, -uv, this._matrix.dotColumnY(vectorQ), -this._matrix.dotColumnX(vectorQ), 0.0, radians);
188806
188802
  if (endpoints) {
188807
188803
  radians.push(this.sweep.startRadians);
188808
188804
  radians.push(this.sweep.endRadians);
@@ -188819,14 +188815,14 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188819
188815
  closestPoint(spacePoint, extend, result) {
188820
188816
  result = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.create(this, result);
188821
188817
  const allRadians = this.allPerpendicularAngles(spacePoint, true, true);
188822
- let extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 0);
188823
- let extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 1);
188818
+ let extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 0);
188819
+ let extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extend, 1);
188824
188820
  // distinct extends for cyclic space are awkward ....
188825
188821
  if (this._sweep.isFullCircle) {
188826
- extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None;
188827
- extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None;
188822
+ extend0 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None;
188823
+ extend1 = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None;
188828
188824
  }
188829
- if (extend0 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None && extend1 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendMode.None) {
188825
+ if (extend0 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None && extend1 !== _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendMode.None) {
188830
188826
  allRadians.push(this._sweep.startRadians);
188831
188827
  allRadians.push(this._sweep.endRadians);
188832
188828
  }
@@ -188840,7 +188836,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188840
188836
  let dMin = Number.MAX_VALUE;
188841
188837
  let d = 0;
188842
188838
  for (const radians of allRadians) {
188843
- const fraction = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__.CurveExtendOptions.resolveRadiansToSweepFraction(extend, radians, this.sweep);
188839
+ const fraction = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_14__.CurveExtendOptions.resolveRadiansToSweepFraction(extend, radians, this.sweep);
188844
188840
  if (fraction !== undefined) {
188845
188841
  this.fractionToPointAndDerivative(fraction, workRay);
188846
188842
  d = spacePoint.distance(workRay.origin);
@@ -188952,7 +188948,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188952
188948
  * @param transform optional transform to apply to the arc.
188953
188949
  */
188954
188950
  extendRangeInSweep(range, sweep, transform) {
188955
- const trigForm = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SineCosinePolynomial(0, 0, 0);
188951
+ const trigForm = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.SineCosinePolynomial(0, 0, 0);
188956
188952
  const center = this._center.clone(Arc3d._workPointA);
188957
188953
  const vectorU = this._matrix.columnX(Arc3d._workVectorU);
188958
188954
  const vectorV = this._matrix.columnY(Arc3d._workVectorV);
@@ -188963,7 +188959,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188963
188959
  }
188964
188960
  const lowPoint = Arc3d._workPointB;
188965
188961
  const highPoint = Arc3d._workPointC;
188966
- const range1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range1d.createNull();
188962
+ const range1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__.Range1d.createNull();
188967
188963
  for (let i = 0; i < 3; i++) {
188968
188964
  trigForm.set(center.at(i), vectorU.at(i), vectorV.at(i));
188969
188965
  trigForm.rangeInSweep(sweep, range1);
@@ -188979,7 +188975,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188979
188975
  */
188980
188976
  rangeBetweenFractions(fraction0, fraction1, transform) {
188981
188977
  const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
188982
- const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.create();
188978
+ const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_15__.Range3d.create();
188983
188979
  this.extendRangeInSweep(range, sweep, transform);
188984
188980
  return range;
188985
188981
  }
@@ -188992,7 +188988,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
188992
188988
  */
188993
188989
  getPlaneAltitudeSineCosinePolynomial(plane, result) {
188994
188990
  if (!result)
188995
- result = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SineCosinePolynomial(0, 0, 0);
188991
+ result = new _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_13__.SineCosinePolynomial(0, 0, 0);
188996
188992
  // altitude function of angle t, given plane with origin o and unit normal n:
188997
188993
  // A(t) = (c + u cos(t) + v sin(t)) . n = (c-o).n + u.n cos(t) + v.n sin(t)
188998
188994
  // Note the different functions for computing dot product against a point vs. a vector!
@@ -189145,7 +189141,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
189145
189141
  numStroke = options.applyTolerancesToArc(rMax, this._sweep.sweepRadians);
189146
189142
  }
189147
189143
  else {
189148
- numStroke = _StrokeOptions__WEBPACK_IMPORTED_MODULE_15__.StrokeOptions.applyAngleTol(undefined, 1, this._sweep.sweepRadians);
189144
+ numStroke = _StrokeOptions__WEBPACK_IMPORTED_MODULE_16__.StrokeOptions.applyAngleTol(undefined, 1, this._sweep.sweepRadians);
189149
189145
  }
189150
189146
  return numStroke;
189151
189147
  }
@@ -189284,7 +189280,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
189284
189280
  * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
189285
189281
  */
189286
189282
  constructOffsetXY(offsetDistanceOrOptions) {
189287
- const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_16__.OffsetOptions.create(offsetDistanceOrOptions);
189283
+ const options = _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__.OffsetOptions.create(offsetDistanceOrOptions);
189288
189284
  if (this.isCircular || options.preserveEllipticalArcs) {
189289
189285
  const arcXY = this.cloneAtZ();
189290
189286
  const sign = arcXY.sweep.sweepRadians * arcXY.matrixRef.coffs[8] >= 0.0 ? 1.0 : -1.0;
@@ -189306,7 +189302,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
189306
189302
  }
189307
189303
  }
189308
189304
  // default impl
189309
- const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_17__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
189305
+ const handler = new _internalContexts_CurveOffsetXYHandler__WEBPACK_IMPORTED_MODULE_18__.CurveOffsetXYHandler(this, options.leftOffsetDistance);
189310
189306
  this.emitStrokableParts(handler, options.strokeOptions);
189311
189307
  return handler.claimResult();
189312
189308
  }
@@ -189317,7 +189313,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
189317
189313
  * @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.
189318
189314
  */
189319
189315
  projectedParameterRange(ray, lowHigh) {
189320
- return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
189316
+ return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_19__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
189321
189317
  }
189322
189318
  /**
189323
189319
  * Construct a circular arc chain approximation to the instance elliptical arc.
@@ -189327,10 +189323,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
189327
189323
  constructCircularArcChainApproximation(options) {
189328
189324
  if (!options)
189329
189325
  options = EllipticalArcApproximationOptions.create();
189330
- const context = _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_19__.EllipticalArcApproximationContext.create(this);
189326
+ const context = _internalContexts_EllipticalArcApproximationContext__WEBPACK_IMPORTED_MODULE_20__.EllipticalArcApproximationContext.create(this);
189331
189327
  const result = context.constructCircularArcChainApproximation(options);
189332
189328
  if (!result && this.isCircular)
189333
- return (this.sweep.isFullCircle && options.forcePath) ? _Path__WEBPACK_IMPORTED_MODULE_20__.Path.create(this) : this;
189329
+ return (this.sweep.isFullCircle && options.forcePath) ? _Path__WEBPACK_IMPORTED_MODULE_21__.Path.create(this) : this;
189334
189330
  return result;
189335
189331
  }
189336
189332
  }
@@ -191112,7 +191108,7 @@ __webpack_require__.r(__webpack_exports__);
191112
191108
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
191113
191109
  /* harmony import */ var _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/Segment1d */ "../../core/geometry/lib/esm/geometry3d/Segment1d.js");
191114
191110
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
191115
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
191111
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
191116
191112
  /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
191117
191113
  /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
191118
191114
  /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
@@ -191645,7 +191641,7 @@ class CurveFactory {
191645
191641
  const vectorA = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitAB, sA, unitPerpAB, tA);
191646
191642
  const vectorB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createAdd2Scaled(unitCB, sB, unitPerpCB, tB);
191647
191643
  const uv = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d.create();
191648
- 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)) {
191644
+ 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)) {
191649
191645
  const tangencyAB = pointB.plusScaled(unitAB, uv.x);
191650
191646
  const tangencyCB = pointB.plusScaled(unitCB, uv.y);
191651
191647
  const frameA = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_17__.Transform.createOriginAndMatrixColumns(tangencyAB, unitAB, unitPerpAB, _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.unitZ());
@@ -191681,7 +191677,7 @@ class CurveFactory {
191681
191677
  const normalCx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAy, normalAz, normalBy, normalBz);
191682
191678
  const normalCy = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAz, normalAx, normalBz, normalBx);
191683
191679
  const normalCz = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(normalAx, normalAy, normalBx, normalBy);
191684
- const rayOrigin = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem3d(normalAx, normalAy, normalAz, normalBx, normalBy, normalBz, normalCx, normalCy, normalCz, -altitudeA, -altitudeB, 0.0);
191680
+ const rayOrigin = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_23__.SmallSystem.linearSystem3d(normalAx, normalAy, normalAz, normalBx, normalBy, normalBz, normalCx, normalCy, normalCz, -altitudeA, -altitudeB, 0.0);
191685
191681
  if (rayOrigin !== undefined) {
191686
191682
  return _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_24__.Ray3d.createXYZUVW(rayOrigin.x, rayOrigin.y, rayOrigin.z, normalCx, normalCy, normalCz);
191687
191683
  }
@@ -193339,7 +193335,7 @@ __webpack_require__.r(__webpack_exports__);
193339
193335
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
193340
193336
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
193341
193337
  /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
193342
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
193338
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
193343
193339
  /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
193344
193340
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
193345
193341
  /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
@@ -193571,7 +193567,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePr
193571
193567
  const unboundedFractions = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Vector2d.create();
193572
193568
  if (result === undefined)
193573
193569
  result = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair.createCapture(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.create(), _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.create());
193574
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dClosestApproachUnbounded(segmentA._point0, segmentA._point1, segmentB._point0, segmentB._point1, unboundedFractions)) {
193570
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dClosestApproachUnbounded(segmentA._point0, segmentA._point1, segmentB._point0, segmentB._point1, unboundedFractions)) {
193575
193571
  // There is a simple approach between the unbounded segments. Maybe its a really easy case ...
193576
193572
  const fractionA = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__.CurveExtendOptions.correctFraction(extendA, unboundedFractions.x);
193577
193573
  const fractionB = _CurveExtendMode__WEBPACK_IMPORTED_MODULE_5__.CurveExtendOptions.correctFraction(extendB, unboundedFractions.y);
@@ -200497,17 +200493,18 @@ __webpack_require__.r(__webpack_exports__);
200497
200493
  /* harmony export */ "CurveCurveCloseApproachXY": () => (/* binding */ CurveCurveCloseApproachXY)
200498
200494
  /* harmony export */ });
200499
200495
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
200500
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
200496
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
200501
200497
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
200502
200498
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
200503
200499
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
200504
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
200505
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
200500
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
200501
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
200506
200502
  /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
200507
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
200503
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
200504
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
200508
200505
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
200509
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
200510
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
200506
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
200507
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
200511
200508
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
200512
200509
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
200513
200510
  /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
@@ -200533,6 +200530,7 @@ __webpack_require__.r(__webpack_exports__);
200533
200530
 
200534
200531
 
200535
200532
 
200533
+
200536
200534
  // cspell:word XYRR currentdFdX
200537
200535
  /**
200538
200536
  * Handler class for XY close approach between _geometryB and another geometry.
@@ -200961,7 +200959,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
200961
200959
  const arcPoint = arc.radiansToPoint(radians1);
200962
200960
  const fArc = arc.sweep.radiansToSignedPeriodicFraction(radians1);
200963
200961
  if (this.acceptFraction(fArc)) { // reject solution outside arc sweep
200964
- const fLine = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, arcPoint);
200962
+ const fLine = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, arcPoint);
200965
200963
  if (fLine !== undefined && this.acceptFraction(fLine))
200966
200964
  this.recordPointWithLocalFractions(fLine, cpA, fractionA0, fractionA1, fArc, arc, 0, 1, reversed);
200967
200965
  }
@@ -201002,12 +201000,12 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201002
201000
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
201003
201001
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
201004
201002
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_9__.GrowableFloat64Array(2);
201005
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
201003
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_10__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
201006
201004
  alpha, beta, gamma, cosines, sines, radians);
201007
201005
  for (let i = 0; i < numRoots; i++) {
201008
201006
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
201009
201007
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
201010
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
201008
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
201011
201009
  // only add if the point is within the start and end fractions of both line segment and arc
201012
201010
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
201013
201011
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
@@ -201129,7 +201127,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201129
201127
  /** Low level dispatch of curve collection. */
201130
201128
  dispatchCurveCollection(geomA, geomAHandler) {
201131
201129
  const geomB = this._geometryB; // save
201132
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection))
201130
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
201133
201131
  return;
201134
201132
  for (const child of geomB.children) {
201135
201133
  this.resetGeometry(child);
@@ -201139,9 +201137,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201139
201137
  }
201140
201138
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
201141
201139
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
201142
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
201140
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
201143
201141
  return;
201144
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
201142
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
201145
201143
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
201146
201144
  return;
201147
201145
  }
@@ -201152,7 +201150,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201152
201150
  geomAHandler(geomA);
201153
201151
  }
201154
201152
  this.resetGeometry(geomB); // restore
201155
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
201153
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
201156
201154
  }
201157
201155
  /** Double dispatch handler for strongly typed segment. */
201158
201156
  handleLineSegment3d(segmentA) {
@@ -201166,13 +201164,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201166
201164
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
201167
201165
  this.dispatchSegmentArc(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._geometryB, false);
201168
201166
  }
201169
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
201167
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
201170
201168
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
201171
201169
  }
201172
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
201170
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
201173
201171
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
201174
201172
  }
201175
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
201173
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
201176
201174
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
201177
201175
  }
201178
201176
  return undefined;
@@ -201215,7 +201213,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201215
201213
  return;
201216
201214
  let bitB0;
201217
201215
  let bitB1;
201218
- const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
201216
+ const rangeA1 = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
201219
201217
  const pointA0 = CurveCurveCloseApproachXY._workPointAA0;
201220
201218
  const pointA1 = CurveCurveCloseApproachXY._workPointAA1;
201221
201219
  const pointB0 = CurveCurveCloseApproachXY._workPointBB0;
@@ -201265,13 +201263,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201265
201263
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
201266
201264
  this.computeArcLineString(this._geometryB, lsA, true);
201267
201265
  }
201268
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
201266
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
201269
201267
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
201270
201268
  }
201271
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
201269
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
201272
201270
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
201273
201271
  }
201274
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
201272
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
201275
201273
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
201276
201274
  }
201277
201275
  return undefined;
@@ -201287,13 +201285,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201287
201285
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
201288
201286
  this.dispatchArcArc(arc0, this._geometryB, false);
201289
201287
  }
201290
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
201288
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3d) {
201291
201289
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
201292
201290
  }
201293
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
201291
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
201294
201292
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
201295
201293
  }
201296
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
201294
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
201297
201295
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
201298
201296
  }
201299
201297
  return undefined;
@@ -201309,13 +201307,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201309
201307
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_4__.Arc3d) {
201310
201308
  this.dispatchArcBsplineCurve3d(this._geometryB, curve, true);
201311
201309
  }
201312
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
201310
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_13__.BSplineCurve3dBase) {
201313
201311
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
201314
201312
  }
201315
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
201313
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
201316
201314
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
201317
201315
  }
201318
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
201316
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
201319
201317
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
201320
201318
  }
201321
201319
  return undefined;
@@ -201324,7 +201322,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201324
201322
  handleCurveChainWithDistanceIndex(chain) {
201325
201323
  super.handleCurveChainWithDistanceIndex(chain);
201326
201324
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
201327
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
201325
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
201328
201326
  }
201329
201327
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
201330
201328
  handleBSplineCurve3dH(_curve) {
@@ -201344,11 +201342,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
201344
201342
  return undefined;
201345
201343
  }
201346
201344
  }
201347
- CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
201348
- CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
201349
- CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
201350
- CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
201351
- CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
201345
+ CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
201346
+ CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
201347
+ CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
201348
+ CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
201349
+ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_15__.Point3d.create();
201352
201350
 
201353
201351
 
201354
201352
  /***/ }),
@@ -201365,26 +201363,27 @@ __webpack_require__.r(__webpack_exports__);
201365
201363
  /* harmony export */ "CurveCurveIntersectXY": () => (/* binding */ CurveCurveIntersectXY)
201366
201364
  /* harmony export */ });
201367
201365
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
201368
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
201366
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
201369
201367
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
201370
201368
  /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
201371
201369
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
201372
201370
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
201373
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
201374
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
201375
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
201376
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
201377
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
201378
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
201379
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
201380
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
201381
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
201382
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
201371
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
201372
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
201373
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
201374
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
201375
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
201376
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
201377
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
201378
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
201379
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
201380
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
201381
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
201383
201382
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
201384
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
201385
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
201386
- /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
201387
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
201383
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
201384
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
201385
+ /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
201386
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
201388
201387
  /*---------------------------------------------------------------------------------------------
201389
201388
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
201390
201389
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -201411,6 +201410,7 @@ __webpack_require__.r(__webpack_exports__);
201411
201410
 
201412
201411
 
201413
201412
 
201413
+
201414
201414
 
201415
201415
 
201416
201416
  // cspell:word XYRR
@@ -201567,7 +201567,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201567
201567
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
201568
201568
  }
201569
201569
  }
201570
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
201570
+ else if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
201571
201571
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
201572
201572
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
201573
201573
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -201587,7 +201587,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201587
201587
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
201588
201588
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
201589
201589
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
201590
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
201590
+ const fractionAB = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
201591
201591
  if (fractionAB !== undefined) {
201592
201592
  const fractionA = fractionAB.x;
201593
201593
  const fractionB = fractionAB.y;
@@ -201636,11 +201636,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201636
201636
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201637
201637
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201638
201638
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201639
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
201639
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
201640
201640
  for (let i = 0; i < numRoots; i++) {
201641
201641
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
201642
201642
  const arcFraction = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
201643
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
201643
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
201644
201644
  if (lineFraction !== undefined &&
201645
201645
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
201646
201646
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -201662,13 +201662,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201662
201662
  const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201663
201663
  const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201664
201664
  const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
201665
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
201665
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
201666
201666
  const lineFractionTol = 1.0e-10; // TODO: why are we loosening tolerances here?
201667
201667
  const arcFractionTol = 1.0e-7;
201668
201668
  for (let i = 0; i < numRoots; i++) {
201669
201669
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
201670
201670
  const arcFraction = data.sweep.radiansToSignedFraction(radians.atUncheckedIndex(i), extendB0);
201671
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
201671
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
201672
201672
  if (lineFraction !== undefined &&
201673
201673
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
201674
201674
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -201692,7 +201692,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201692
201692
  const ellipseRadians = [];
201693
201693
  const circleRadians = [];
201694
201694
  // find the intersection of the transformed arcs
201695
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
201695
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
201696
201696
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
201697
201697
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
201698
201698
  ellipseRadians, circleRadians);
@@ -201719,14 +201719,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201719
201719
  if (this._worldToLocalPerspective) {
201720
201720
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
201721
201721
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
201722
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
201723
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
201722
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
201723
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
201724
201724
  }
201725
201725
  else {
201726
201726
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
201727
201727
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
201728
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
201729
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
201728
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
201729
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
201730
201730
  }
201731
201731
  const conditionA = matrixA.conditionNumber();
201732
201732
  const conditionB = matrixB.conditionNumber();
@@ -201757,11 +201757,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201757
201757
  let matrixA;
201758
201758
  if (this._worldToLocalPerspective) {
201759
201759
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
201760
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
201760
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
201761
201761
  }
201762
201762
  else {
201763
201763
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
201764
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
201764
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
201765
201765
  }
201766
201766
  // The worldToLocal has moved the arc vectors into local space.
201767
201767
  // matrixA captures the xyw parts (ignoring z)
@@ -201772,7 +201772,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201772
201772
  const orderF = cpB.order; // order of the beziers for simple coordinates
201773
201773
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
201774
201774
  const coffF = new Float64Array(orderF);
201775
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderG);
201775
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderG);
201776
201776
  const axx = matrixAInverse.at(0, 0);
201777
201777
  const axy = matrixAInverse.at(0, 1);
201778
201778
  const axz = 0.0;
@@ -201843,13 +201843,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201843
201843
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
201844
201844
  reversed) {
201845
201845
  if (!this._xyzwA0)
201846
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
201846
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
201847
201847
  if (!this._xyzwA1)
201848
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
201848
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
201849
201849
  if (!this._xyzwPlane)
201850
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
201850
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
201851
201851
  if (!this._xyzwB)
201852
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
201852
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
201853
201853
  /*
201854
201854
  const roots = univariateBezierG.roots(0.0, true);
201855
201855
  if (roots) {
@@ -201875,7 +201875,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201875
201875
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
201876
201876
  f1 = i * df;
201877
201877
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
201878
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
201878
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
201879
201879
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
201880
201880
  let errors = 0;
201881
201881
  const roots = univariateBezierB.roots(0.0, true);
@@ -201883,13 +201883,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201883
201883
  for (const r of roots) {
201884
201884
  let bezierBFraction = r;
201885
201885
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
201886
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
201886
+ const segmentAFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
201887
201887
  if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
201888
201888
  let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(f0, segmentAFraction, f1);
201889
201889
  // We have a near intersection at fractions on the two beziers
201890
201890
  // Iterate on the curves for a true intersection
201891
- const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
201892
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
201891
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
201892
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_11__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
201893
201893
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
201894
201894
  if (newtonSearcher.runIterations()) {
201895
201895
  bezierAFraction = newtonSearcher.getU();
@@ -201917,8 +201917,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201917
201917
  const rangeB = this.getRanges(bezierSpanB);
201918
201918
  const orderA = bcurveA.order;
201919
201919
  const orderB = bcurveB.order;
201920
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderA);
201921
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderB);
201920
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderA);
201921
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderB);
201922
201922
  for (let a = 0; a < numA; a++) {
201923
201923
  for (let b = 0; b < numB; b++) {
201924
201924
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -201942,7 +201942,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201942
201942
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
201943
201943
  if (this._worldToLocalAffine)
201944
201944
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
201945
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createFromPointAndWeight(xyz, w);
201945
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createFromPointAndWeight(xyz, w);
201946
201946
  }
201947
201947
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
201948
201948
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -201966,7 +201966,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201966
201966
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB0, extendB1, reversed) {
201967
201967
  const pointA0H = this.projectPoint(pointA0);
201968
201968
  const pointA1H = this.projectPoint(pointA1);
201969
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
201969
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
201970
201970
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
201971
201971
  // NOW .. we have a plane in world space. Intersect it with the bspline:
201972
201972
  const intersections = [];
@@ -201978,7 +201978,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
201978
201978
  const fractionB = detail.fraction;
201979
201979
  const curvePoint = detail.point;
201980
201980
  const curvePointH = this.projectPoint(curvePoint);
201981
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
201981
+ const lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
201982
201982
  if (lineFraction !== undefined) {
201983
201983
  if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
201984
201984
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
@@ -202087,14 +202087,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202087
202087
  */
202088
202088
  dispatchCurveCollection(geomA, geomAHandler) {
202089
202089
  const geomB = this._geometryB; // save
202090
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
202090
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
202091
202091
  return;
202092
202092
  const children = geomB.children;
202093
202093
  const extendB0 = this._extendB0; // save
202094
202094
  const extendB1 = this._extendB1; // save
202095
202095
  for (let i = 0; i < children.length; i++) {
202096
202096
  this.resetGeometry(children[i]);
202097
- if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_12__.Path && children.length > 1) {
202097
+ if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_13__.Path && children.length > 1) {
202098
202098
  if (i === 0)
202099
202099
  this._extendB1 = false; // first child can only extend from start
202100
202100
  else if (i === children.length - 1)
@@ -202102,7 +202102,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202102
202102
  else
202103
202103
  this._extendB0 = this._extendB1 = false; // middle children cannot extend
202104
202104
  }
202105
- else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_13__.Loop) {
202105
+ else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_14__.Loop) {
202106
202106
  this._extendB0 = this._extendB1 = false; // Loops cannot extend
202107
202107
  }
202108
202108
  geomAHandler(geomA);
@@ -202116,9 +202116,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202116
202116
  * We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
202117
202117
  */
202118
202118
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
202119
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex))
202119
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex))
202120
202120
  return;
202121
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
202121
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
202122
202122
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
202123
202123
  return;
202124
202124
  }
@@ -202127,7 +202127,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202127
202127
  this.resetGeometry(geomB.path);
202128
202128
  this.dispatchCurveCollection(geomA, geomAHandler);
202129
202129
  this.resetGeometry(geomB); // restore
202130
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
202130
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
202131
202131
  }
202132
202132
  /**
202133
202133
  * Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
@@ -202139,7 +202139,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202139
202139
  const extendA1 = this._extendA1; // save
202140
202140
  if (children)
202141
202141
  for (let i = 0; i < children.length; i++) {
202142
- if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_12__.Path && children.length > 1) {
202142
+ if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_13__.Path && children.length > 1) {
202143
202143
  if (i === 0)
202144
202144
  this._extendA1 = false; // first child can only extend from start
202145
202145
  else if (i === children.length - 1)
@@ -202147,7 +202147,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202147
202147
  else
202148
202148
  this._extendA0 = this._extendA1 = false; // middle children cannot extend
202149
202149
  }
202150
- else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_13__.Loop) {
202150
+ else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_14__.Loop) {
202151
202151
  this._extendA0 = this._extendA1 = false; // Loops cannot extend
202152
202152
  }
202153
202153
  children[i].dispatchToGeometryHandler(this);
@@ -202157,90 +202157,90 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202157
202157
  }
202158
202158
  /** Double dispatch handler for strongly typed segment. */
202159
202159
  handleLineSegment3d(segmentA) {
202160
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
202160
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
202161
202161
  const segmentB = this._geometryB;
202162
202162
  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);
202163
202163
  }
202164
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
202164
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
202165
202165
  this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202166
202166
  }
202167
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
202167
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
202168
202168
  this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202169
202169
  }
202170
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
202170
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
202171
202171
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202172
202172
  }
202173
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
202173
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
202174
202174
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
202175
202175
  }
202176
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
202176
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
202177
202177
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
202178
202178
  }
202179
202179
  return undefined;
202180
202180
  }
202181
202181
  /** Double dispatch handler for strongly typed linestring. */
202182
202182
  handleLineString3d(lsA) {
202183
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
202183
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
202184
202184
  const lsB = this._geometryB;
202185
202185
  this.computeLineStringLineString(lsA, lsB, false);
202186
202186
  }
202187
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
202187
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
202188
202188
  this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
202189
202189
  }
202190
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
202190
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
202191
202191
  this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
202192
202192
  }
202193
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
202193
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
202194
202194
  this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202195
202195
  }
202196
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
202196
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
202197
202197
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
202198
202198
  }
202199
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
202199
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
202200
202200
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
202201
202201
  }
202202
202202
  return undefined;
202203
202203
  }
202204
202204
  /** Double dispatch handler for strongly typed arc. */
202205
202205
  handleArc3d(arc0) {
202206
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
202206
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
202207
202207
  this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
202208
202208
  }
202209
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
202209
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
202210
202210
  this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202211
202211
  }
202212
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
202212
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
202213
202213
  this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202214
202214
  }
202215
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3d) {
202215
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3d) {
202216
202216
  this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
202217
202217
  }
202218
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
202218
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
202219
202219
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
202220
202220
  }
202221
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
202221
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
202222
202222
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
202223
202223
  }
202224
202224
  return undefined;
202225
202225
  }
202226
202226
  /** Double dispatch handler for strongly typed bspline curve. */
202227
202227
  handleBSplineCurve3d(curve) {
202228
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d) {
202228
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_16__.LineSegment3d) {
202229
202229
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
202230
202230
  }
202231
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_16__.LineString3d) {
202231
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_17__.LineString3d) {
202232
202232
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
202233
202233
  }
202234
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_17__.Arc3d) {
202234
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_18__.Arc3d) {
202235
202235
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
202236
202236
  }
202237
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_18__.BSplineCurve3dBase) {
202237
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_19__.BSplineCurve3dBase) {
202238
202238
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
202239
202239
  }
202240
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
202240
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
202241
202241
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
202242
202242
  }
202243
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex) {
202243
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex) {
202244
202244
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
202245
202245
  }
202246
202246
  return undefined;
@@ -202249,7 +202249,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202249
202249
  handleCurveChainWithDistanceIndex(chain) {
202250
202250
  super.handleCurveChainWithDistanceIndex(chain);
202251
202251
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
202252
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_14__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
202252
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_15__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
202253
202253
  }
202254
202254
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
202255
202255
  handleBSplineCurve3dH(_curve) {
@@ -202269,19 +202269,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
202269
202269
  return undefined;
202270
202270
  }
202271
202271
  }
202272
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_19__.Vector2d.create();
202273
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
202274
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
202275
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
202276
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
202277
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202278
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202279
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202280
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202281
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202282
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202283
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202284
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_20__.Point3d.create();
202272
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_20__.Vector2d.create();
202273
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
202274
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
202275
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
202276
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
202277
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202278
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202279
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202280
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202281
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202282
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202283
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202284
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_21__.Point3d.create();
202285
202285
 
202286
202286
 
202287
202287
  /***/ }),
@@ -202298,21 +202298,22 @@ __webpack_require__.r(__webpack_exports__);
202298
202298
  /* harmony export */ "CurveCurveIntersectXYZ": () => (/* binding */ CurveCurveIntersectXYZ)
202299
202299
  /* harmony export */ });
202300
202300
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
202301
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
202301
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
202302
202302
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
202303
202303
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
202304
202304
  /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
202305
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
202305
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
202306
202306
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
202307
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
202308
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
202309
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
202310
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
202307
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
202308
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
202309
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
202310
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
202311
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
202311
202312
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
202312
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
202313
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
202314
- /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
202315
- /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
202313
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
202314
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
202315
+ /* harmony import */ var _Loop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
202316
+ /* harmony import */ var _Path__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Path */ "../../core/geometry/lib/esm/curve/Path.js");
202316
202317
  /*---------------------------------------------------------------------------------------------
202317
202318
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
202318
202319
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -202336,6 +202337,7 @@ __webpack_require__.r(__webpack_exports__);
202336
202337
 
202337
202338
 
202338
202339
 
202340
+
202339
202341
  // cspell:word XYRR
202340
202342
  /**
202341
202343
  * Handler class for XYZ intersections between _geometryB and another geometry.
@@ -202430,7 +202432,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202430
202432
  */
202431
202433
  computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
202432
202434
  const uv = CurveCurveIntersectXYZ._workVector2dA;
202433
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
202435
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
202434
202436
  this.acceptFraction(extendA0, uv.x, extendA1) && this.acceptFraction(extendB0, uv.y, extendB1)) {
202435
202437
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
202436
202438
  }
@@ -202481,7 +202483,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202481
202483
  for (const c of candidates) {
202482
202484
  const arcFraction = arc.sweep.fractionToSignedPeriodicFraction(c.fraction, extendB0);
202483
202485
  if (this.acceptFraction(extendB0, arcFraction, extendB1)) {
202484
- lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
202486
+ lineFraction = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
202485
202487
  if (lineFraction !== undefined) {
202486
202488
  linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
202487
202489
  if (linePoint.isAlmostEqualMetric(c.point) && this.acceptFraction(extendA0, lineFraction, extendA1)) {
@@ -202501,7 +202503,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202501
202503
  if (otherVectors !== undefined) {
202502
202504
  const ellipseRadians = [];
202503
202505
  const circleRadians = [];
202504
- _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);
202506
+ _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);
202505
202507
  for (let i = 0; i < ellipseRadians.length; i++) {
202506
202508
  const fractionA = cpA.sweep.radiansToSignedFraction(circleRadians[i], extendA0);
202507
202509
  const fractionB = cpB.sweep.radiansToSignedFraction(ellipseRadians[i], extendB0);
@@ -202932,14 +202934,14 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202932
202934
  */
202933
202935
  dispatchCurveCollection(geomA, geomAHandler) {
202934
202936
  const geomB = this._geometryB; // save
202935
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection))
202937
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection))
202936
202938
  return;
202937
202939
  const children = geomB.children;
202938
202940
  const extendB0 = this._extendB0; // save
202939
202941
  const extendB1 = this._extendB1; // save
202940
202942
  for (let i = 0; i < children.length; i++) {
202941
202943
  this.resetGeometry(children[i]);
202942
- if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_8__.Path && children.length > 1) {
202944
+ if (geomB instanceof _Path__WEBPACK_IMPORTED_MODULE_9__.Path && children.length > 1) {
202943
202945
  if (i === 0)
202944
202946
  this._extendB1 = false; // first child can only extend from start
202945
202947
  else if (i === children.length - 1)
@@ -202947,7 +202949,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202947
202949
  else
202948
202950
  this._extendB0 = this._extendB1 = false; // middle children cannot extend
202949
202951
  }
202950
- else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop) {
202952
+ else if (geomB instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop) {
202951
202953
  this._extendB0 = this._extendB1 = false; // Loops cannot extend
202952
202954
  }
202953
202955
  geomAHandler(geomA);
@@ -202961,9 +202963,9 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202961
202963
  * We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
202962
202964
  */
202963
202965
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
202964
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
202966
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
202965
202967
  return;
202966
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
202968
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
202967
202969
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "call handleCurveChainWithDistanceIndex(geomA) instead");
202968
202970
  return;
202969
202971
  }
@@ -202972,7 +202974,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202972
202974
  this.resetGeometry(geomB.path);
202973
202975
  this.dispatchCurveCollection(geomA, geomAHandler);
202974
202976
  this.resetGeometry(geomB); // restore
202975
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
202977
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
202976
202978
  }
202977
202979
  /**
202978
202980
  * Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
@@ -202984,7 +202986,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202984
202986
  const extendA1 = this._extendA1; // save
202985
202987
  if (children)
202986
202988
  for (let i = 0; i < children.length; i++) {
202987
- if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_8__.Path && children.length > 1) {
202989
+ if (g instanceof _Path__WEBPACK_IMPORTED_MODULE_9__.Path && children.length > 1) {
202988
202990
  if (i === 0)
202989
202991
  this._extendA1 = false; // first child can only extend from start
202990
202992
  else if (i === children.length - 1)
@@ -202992,7 +202994,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
202992
202994
  else
202993
202995
  this._extendA0 = this._extendA1 = false; // middle children cannot extend
202994
202996
  }
202995
- else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_9__.Loop) {
202997
+ else if (g instanceof _Loop__WEBPACK_IMPORTED_MODULE_10__.Loop) {
202996
202998
  this._extendA0 = this._extendA1 = false; // Loops cannot extend
202997
202999
  }
202998
203000
  children[i].dispatchToGeometryHandler(this);
@@ -203002,90 +203004,90 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
203002
203004
  }
203003
203005
  /** Double dispatch handler for strongly typed segment. */
203004
203006
  handleLineSegment3d(segmentA) {
203005
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
203007
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
203006
203008
  const segmentB = this._geometryB;
203007
203009
  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);
203008
203010
  }
203009
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
203011
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
203010
203012
  this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203011
203013
  }
203012
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
203014
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
203013
203015
  this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203014
203016
  }
203015
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
203017
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
203016
203018
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203017
203019
  }
203018
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
203020
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
203019
203021
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
203020
203022
  }
203021
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
203023
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
203022
203024
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
203023
203025
  }
203024
203026
  return undefined;
203025
203027
  }
203026
203028
  /** double dispatch handler for strongly typed linestring. */
203027
203029
  handleLineString3d(lsA) {
203028
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
203030
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
203029
203031
  const lsB = this._geometryB;
203030
203032
  this.computeLineStringLineString(lsA, lsB, false);
203031
203033
  }
203032
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
203034
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
203033
203035
  this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
203034
203036
  }
203035
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
203037
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
203036
203038
  this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
203037
203039
  }
203038
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
203040
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
203039
203041
  this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203040
203042
  }
203041
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
203043
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
203042
203044
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
203043
203045
  }
203044
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
203046
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
203045
203047
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
203046
203048
  }
203047
203049
  return undefined;
203048
203050
  }
203049
203051
  /** Double dispatch handler for strongly typed arc. */
203050
203052
  handleArc3d(arc0) {
203051
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
203053
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
203052
203054
  this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
203053
203055
  }
203054
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
203056
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
203055
203057
  this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203056
203058
  }
203057
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
203059
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
203058
203060
  this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203059
203061
  }
203060
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
203062
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3d) {
203061
203063
  this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
203062
203064
  }
203063
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
203065
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
203064
203066
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
203065
203067
  }
203066
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
203068
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
203067
203069
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
203068
203070
  }
203069
203071
  return undefined;
203070
203072
  }
203071
203073
  /** Double dispatch handler for strongly typed bspline curve. */
203072
203074
  handleBSplineCurve3d(curve) {
203073
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
203075
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_12__.LineSegment3d) {
203074
203076
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
203075
203077
  }
203076
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
203078
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_13__.LineString3d) {
203077
203079
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
203078
203080
  }
203079
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
203081
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_14__.Arc3d) {
203080
203082
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
203081
203083
  }
203082
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3dBase) {
203084
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_15__.BSplineCurve3dBase) {
203083
203085
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
203084
203086
  }
203085
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
203087
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_8__.CurveCollection) {
203086
203088
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
203087
203089
  }
203088
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
203090
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
203089
203091
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
203090
203092
  }
203091
203093
  return undefined;
@@ -203094,7 +203096,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
203094
203096
  handleCurveChainWithDistanceIndex(chain) {
203095
203097
  super.handleCurveChainWithDistanceIndex(chain);
203096
203098
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
203097
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
203099
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
203098
203100
  }
203099
203101
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
203100
203102
  handleBSplineCurve3dH(_curve) {
@@ -203119,7 +203121,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
203119
203121
  return undefined;
203120
203122
  }
203121
203123
  }
203122
- CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__.Vector2d.create();
203124
+ CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_16__.Vector2d.create();
203123
203125
  CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
203124
203126
  CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
203125
203127
  CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
@@ -210018,7 +210020,7 @@ __webpack_require__.r(__webpack_exports__);
210018
210020
  /* harmony import */ var _bspline_SurfaceLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../bspline/SurfaceLocationDetail */ "../../core/geometry/lib/esm/bspline/SurfaceLocationDetail.js");
210019
210021
  /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
210020
210022
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
210021
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
210023
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
210022
210024
  /* harmony import */ var _Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
210023
210025
  /* harmony import */ var _Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
210024
210026
  /*---------------------------------------------------------------------------------------------
@@ -210193,9 +210195,9 @@ class BilinearPatch {
210193
210195
  // swap rows so that the equation with largest ray.direction coefficient is first.
210194
210196
  BilinearPatch.conditionalPivot(0, coffs, 0, 1);
210195
210197
  BilinearPatch.conditionalPivot(0, coffs, 0, 2);
210196
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[1], -1.0);
210197
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[2], -1.0);
210198
- 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]);
210198
+ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[1], -1.0);
210199
+ _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_2__.SmallSystem.eliminateFromPivot(coffs[0], 0, coffs[2], -1.0);
210200
+ 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]);
210199
210201
  if (uvArray) {
210200
210202
  const result = [];
210201
210203
  for (const uv of uvArray) {
@@ -227158,7 +227160,7 @@ __webpack_require__.r(__webpack_exports__);
227158
227160
  /* harmony export */ });
227159
227161
  /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
227160
227162
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
227161
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
227163
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
227162
227164
  /* harmony import */ var _Matrix3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
227163
227165
  /* harmony import */ var _Point2dVector2d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
227164
227166
  /* harmony import */ var _Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
@@ -227630,7 +227632,7 @@ class Ray3d {
227630
227632
  let fractionA, fractionB;
227631
227633
  let pointA, pointB;
227632
227634
  let pairType;
227633
- 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)) {
227635
+ 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)) {
227634
227636
  fractionA = intersectionFractions.x;
227635
227637
  fractionB = intersectionFractions.y;
227636
227638
  pointA = rayA.fractionToPoint(fractionA);
@@ -233954,14 +233956,11 @@ __webpack_require__.r(__webpack_exports__);
233954
233956
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
233955
233957
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
233956
233958
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
233957
- /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
233959
+ /* harmony import */ var _SmallSystem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
233958
233960
  /*---------------------------------------------------------------------------------------------
233959
233961
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
233960
233962
  * See LICENSE.md in the project root for license terms and full copyright notice.
233961
233963
  *--------------------------------------------------------------------------------------------*/
233962
- /** @packageDocumentation
233963
- * @module Numerics
233964
- */
233965
233964
 
233966
233965
 
233967
233966
 
@@ -234210,7 +234209,7 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
234210
234209
  const jCol1 = fA.vectorV;
234211
234210
  const fX = fA.origin;
234212
234211
  // 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:
234213
- if (_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(jCol0.x, jCol1.x, jCol0.y, jCol1.y, fX.x, fX.y, this._currentStep))
234212
+ if (_SmallSystem__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(jCol0.x, jCol1.x, jCol0.y, jCol1.y, fX.x, fX.y, this._currentStep))
234214
234213
  return true;
234215
234214
  return false;
234216
234215
  }
@@ -234487,19 +234486,19 @@ __webpack_require__.r(__webpack_exports__);
234487
234486
  /* harmony export */ "ImplicitLineXY": () => (/* binding */ ImplicitLineXY),
234488
234487
  /* harmony export */ "PowerPolynomial": () => (/* binding */ PowerPolynomial),
234489
234488
  /* harmony export */ "SineCosinePolynomial": () => (/* binding */ SineCosinePolynomial),
234490
- /* harmony export */ "SmallSystem": () => (/* binding */ SmallSystem),
234491
234489
  /* harmony export */ "SphereImplicit": () => (/* binding */ SphereImplicit),
234492
234490
  /* harmony export */ "TorusImplicit": () => (/* binding */ TorusImplicit),
234493
234491
  /* harmony export */ "TrigPolynomial": () => (/* binding */ TrigPolynomial)
234494
234492
  /* harmony export */ });
234495
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
234496
- /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
234497
- /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
234498
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
234499
- /* harmony import */ var _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/LongitudeLatitudeAltitude */ "../../core/geometry/lib/esm/geometry3d/LongitudeLatitudeAltitude.js");
234500
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
234501
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
234502
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
234493
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
234494
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
234495
+ /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
234496
+ /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
234497
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
234498
+ /* harmony import */ var _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/LongitudeLatitudeAltitude */ "../../core/geometry/lib/esm/geometry3d/LongitudeLatitudeAltitude.js");
234499
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
234500
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
234501
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
234503
234502
  /*---------------------------------------------------------------------------------------------
234504
234503
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
234505
234504
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -234515,9 +234514,8 @@ __webpack_require__.r(__webpack_exports__);
234515
234514
 
234516
234515
 
234517
234516
 
234518
- // cspell:word Cardano
234519
- // cspell:word CCminusSS
234520
- /* eslint-disable @typescript-eslint/naming-convention */
234517
+
234518
+ // cspell:words Cardano internaldocs
234521
234519
  /**
234522
234520
  * degree 2 (quadratic) polynomial in for y = c0 + c1*x + c2*x^2
234523
234521
  * @internal
@@ -234532,8 +234530,8 @@ class Degree2PowerPolynomial {
234532
234530
  * @returns 0, 1, or 2 solutions of the usual quadratic (a*x*x + b * x + c = 0)
234533
234531
  */
234534
234532
  static solveQuadratic(a, b, c) {
234535
- const b1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(b, a);
234536
- const c1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(c, a);
234533
+ const b1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(b, a);
234534
+ const c1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(c, a);
234537
234535
  if (b1 !== undefined && c1 !== undefined) {
234538
234536
  // now solving xx + b1*x + c1 = 0 -- i.e. implied "a" coefficient is 1 . .
234539
234537
  const q = b1 * b1 - 4 * c1;
@@ -234548,7 +234546,7 @@ class Degree2PowerPolynomial {
234548
234546
  return [root, root];
234549
234547
  }
234550
234548
  // "divide by a" failed. solve bx + c = 0
234551
- const x = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-c, b);
234549
+ const x = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-c, b);
234552
234550
  if (x !== undefined)
234553
234551
  return [x];
234554
234552
  return undefined;
@@ -234588,7 +234586,7 @@ class Degree2PowerPolynomial {
234588
234586
  }
234589
234587
  /** Factor the polynomial in to the form `y0 + c * (x-x0)^2)`, i.e. complete the square. */
234590
234588
  tryGetVertexFactorization() {
234591
- const x = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-this.coffs[1], 2.0 * this.coffs[2]);
234589
+ const x = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-this.coffs[1], 2.0 * this.coffs[2]);
234592
234590
  if (x !== undefined) {
234593
234591
  const y = this.evaluate(x);
234594
234592
  return { c: this.coffs[2], x0: x, y0: y };
@@ -234729,7 +234727,7 @@ class TorusImplicit {
234729
234727
  // theta=0 point
234730
234728
  const x0 = this.majorRadius + this.minorRadius * Math.cos(phiRadians);
234731
234729
  const z0 = this.minorRadius * Math.sin(phiRadians);
234732
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(c * x0, s * x0, z0);
234730
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(c * x0, s * x0, z0);
234733
234731
  }
234734
234732
  /** Evaluate partial derivatives at angles (int radians) on major and minor circles. */
234735
234733
  evaluateDerivativesThetaPhi(thetaRadians, phiRadians, dxdTheta, dxdPhi) {
@@ -234738,8 +234736,8 @@ class TorusImplicit {
234738
234736
  const bx = this.minorRadius * Math.cos(phiRadians);
234739
234737
  const bz = this.minorRadius * Math.sin(phiRadians);
234740
234738
  const x0 = this.majorRadius + bx;
234741
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-x0 * sTheta, x0 * cTheta, 0.0, dxdTheta);
234742
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-cTheta * bz, -sTheta * bz, bx, dxdPhi);
234739
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-x0 * sTheta, x0 * cTheta, 0.0, dxdTheta);
234740
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-cTheta * bz, -sTheta * bz, bx, dxdPhi);
234743
234741
  }
234744
234742
  /** Evaluate space point at major and minor angles (in radians) and distance from major hoop. */
234745
234743
  evaluateThetaPhiDistance(thetaRadians, phiRadians, distance) {
@@ -234748,7 +234746,7 @@ class TorusImplicit {
234748
234746
  // theta=0 point
234749
234747
  const x0 = this.majorRadius + distance * Math.cos(phiRadians);
234750
234748
  const z0 = distance * Math.sin(phiRadians);
234751
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(c * x0, s * x0, z0);
234749
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(c * x0, s * x0, z0);
234752
234750
  }
234753
234751
  /** Given an xyz coordinate in the local system of the toroid, compute the torus parametrization
234754
234752
  * * theta = angular coordinate in xy plane
@@ -234760,19 +234758,19 @@ class TorusImplicit {
234760
234758
  */
234761
234759
  xyzToThetaPhiDistance(xyz) {
234762
234760
  const rho = xyz.magnitudeXY();
234763
- const majorRadiusFactor = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(this.majorRadius, rho);
234761
+ const majorRadiusFactor = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(this.majorRadius, rho);
234764
234762
  let safeMajor;
234765
234763
  let majorCirclePoint;
234766
234764
  if (majorRadiusFactor) {
234767
234765
  safeMajor = true;
234768
- majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(majorRadiusFactor * xyz.x, majorRadiusFactor * xyz.y, 0.0);
234766
+ majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(majorRadiusFactor * xyz.x, majorRadiusFactor * xyz.y, 0.0);
234769
234767
  }
234770
234768
  else {
234771
234769
  safeMajor = false;
234772
- majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xyz.x, xyz.y, 0.0);
234770
+ majorCirclePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(xyz.x, xyz.y, 0.0);
234773
234771
  }
234774
234772
  const theta = safeMajor ? Math.atan2(xyz.y, xyz.x) : 0.0;
234775
- const vectorFromMajorCircle = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(majorCirclePoint, xyz);
234773
+ const vectorFromMajorCircle = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(majorCirclePoint, xyz);
234776
234774
  const distance = vectorFromMajorCircle.magnitude();
234777
234775
  const dRho = rho - this.majorRadius;
234778
234776
  let safePhi;
@@ -234836,10 +234834,10 @@ class SphereImplicit {
234836
234834
  }
234837
234835
  /** Return the range of a uv-aligned patch of the sphere. */
234838
234836
  static patchRangeStartEndRadians(center, radius, theta0Radians, theta1Radians, phi0Radians, phi1Radians, result) {
234839
- const thetaSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(theta0Radians, theta1Radians);
234840
- const phiSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.createStartEndRadians(phi0Radians, phi1Radians);
234841
- const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range3d.createNull(result);
234842
- const xyz = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
234837
+ const thetaSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(theta0Radians, theta1Radians);
234838
+ const phiSweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.createStartEndRadians(phi0Radians, phi1Radians);
234839
+ const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull(result);
234840
+ const xyz = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create();
234843
234841
  if (thetaSweep.isFullCircle && phiSweep.isFullLatitudeSweep) {
234844
234842
  // full sphere, no trimming -- build directly
234845
234843
  range.extendPoint(center);
@@ -234867,7 +234865,7 @@ class SphereImplicit {
234867
234865
  }
234868
234866
  // 4 boundary curves, each with 3 components ...
234869
234867
  // 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.
234870
- const axisRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createNull();
234868
+ const axisRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createNull();
234871
234869
  const cosPhi0 = Math.cos(phi0Radians);
234872
234870
  const cosPhi1 = Math.cos(phi1Radians);
234873
234871
  const sinPhi0 = Math.sin(phi0Radians);
@@ -234918,9 +234916,9 @@ class SphereImplicit {
234918
234916
  const ux = ray.direction.x;
234919
234917
  const uy = ray.direction.y;
234920
234918
  const uz = ray.direction.z;
234921
- const a0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(vx, vy, vz) - radius * radius;
234922
- const a1 = 2.0 * _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(ux, uy, uz, vx, vy, vz);
234923
- const a2 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(ux, uy, uz);
234919
+ const a0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseSquaredXYZ(vx, vy, vz) - radius * radius;
234920
+ const a1 = 2.0 * _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.dotProductXYZXYZ(ux, uy, uz, vx, vy, vz);
234921
+ const a2 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseSquaredXYZ(ux, uy, uz);
234924
234922
  const parameters = Degree2PowerPolynomial.solveQuadratic(a2, a1, a0);
234925
234923
  if (rayFractions !== undefined)
234926
234924
  rayFractions.length = 0;
@@ -234942,7 +234940,7 @@ class SphereImplicit {
234942
234940
  xyz.push(point);
234943
234941
  if (thetaPhiRadians !== undefined) {
234944
234942
  const data = sphere.xyzToThetaPhiR(point);
234945
- thetaPhiRadians.push(_geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_4__.LongitudeLatitudeNumber.createRadians(data.thetaRadians, data.phiRadians));
234943
+ thetaPhiRadians.push(_geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_5__.LongitudeLatitudeNumber.createRadians(data.thetaRadians, data.phiRadians));
234946
234944
  }
234947
234945
  }
234948
234946
  }
@@ -234976,7 +234974,7 @@ class SphereImplicit {
234976
234974
  const rs = this.radius * Math.sin(thetaRadians);
234977
234975
  const cosPhi = Math.cos(phiRadians);
234978
234976
  const sinPhi = Math.sin(phiRadians);
234979
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(rc * cosPhi, rs * cosPhi, this.radius * sinPhi, result);
234977
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Point3d.create(rc * cosPhi, rs * cosPhi, this.radius * sinPhi, result);
234980
234978
  }
234981
234979
  /**
234982
234980
  * * convert radians to xyz on unit sphere
@@ -235001,8 +234999,8 @@ class SphereImplicit {
235001
234999
  const rs = this.radius * Math.sin(thetaRadians);
235002
235000
  const cosPhi = Math.cos(phiRadians);
235003
235001
  const sinPhi = Math.sin(phiRadians);
235004
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-rs * cosPhi, rc * cosPhi, 0.0, dxdTheta);
235005
- _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-rc * sinPhi, -rs * sinPhi, this.radius * cosPhi, dxdPhi);
235002
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-rs * cosPhi, rc * cosPhi, 0.0, dxdTheta);
235003
+ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-rc * sinPhi, -rs * sinPhi, this.radius * cosPhi, dxdPhi);
235006
235004
  }
235007
235005
  }
235008
235006
  /** AnalyticRoots has static methods for solving quadratic, cubic, and quartic equations.
@@ -235131,7 +235129,7 @@ class AnalyticRoots {
235131
235129
  * @param values array to expand
235132
235130
  */
235133
235131
  static appendLinearRoot(c0, c1, values) {
235134
- AnalyticRoots.appendSolution(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-c0, c1), values);
235132
+ AnalyticRoots.appendSolution(_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-c0, c1), values);
235135
235133
  }
235136
235134
  /**
235137
235135
  * * Compute the mean of all the entries in `data`
@@ -235162,7 +235160,7 @@ class AnalyticRoots {
235162
235160
  */
235163
235161
  static appendQuadraticRoots(c, values) {
235164
235162
  // Normal form: x^2 + 2px + q = 0
235165
- const divFactor = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(1.0, c[2]);
235163
+ const divFactor = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(1.0, c[2]);
235166
235164
  if (!divFactor) {
235167
235165
  this.appendLinearRoot(c[0], c[1], values);
235168
235166
  return;
@@ -235178,8 +235176,8 @@ class AnalyticRoots {
235178
235176
  return;
235179
235177
  }
235180
235178
  else if (D > 0) {
235181
- const sqrt_D = Math.sqrt(D);
235182
- this.append2Solutions(sqrt_D - p, -sqrt_D - p, values);
235179
+ const sqrtD = Math.sqrt(D);
235180
+ this.append2Solutions(sqrtD - p, -sqrtD - p, values);
235183
235181
  return;
235184
235182
  }
235185
235183
  return;
@@ -235245,7 +235243,7 @@ class AnalyticRoots {
235245
235243
  */
235246
235244
  /*
235247
235245
  private static _appendCubicRootsUnsorted(c: Float64Array | number[], results: GrowableFloat64Array) {
235248
- let sq_A: number;
235246
+ let AA: number;
235249
235247
  let p: number;
235250
235248
  let q: number;
235251
235249
 
@@ -235266,9 +235264,9 @@ class AnalyticRoots {
235266
235264
  // f' = 3y^2 + p
235267
235265
  // local min/max at Y = +-sqrt (-p)
235268
235266
  // f(+Y) = -p sqrt(-p) + 3p sqrt (-p) + 2q = 2 p sqrt (-p) + 2q
235269
- sq_A = A * A;
235270
- p = (3.0 * B - sq_A) / 9.0;
235271
- q = 1.0 / 2 * (2.0 / 27 * A * sq_A - 1.0 / 3 * A * B + C);
235267
+ AA = A * A;
235268
+ p = (3.0 * B - AA) / 9.0;
235269
+ q = 1.0 / 2 * (2.0 / 27 * A * AA - 1.0 / 3 * A * B + C);
235272
235270
 
235273
235271
  // Use Cardano formula
235274
235272
  const cb_p: number = p * p * p;
@@ -235306,9 +235304,9 @@ class AnalyticRoots {
235306
235304
 
235307
235305
  return;
235308
235306
  } else { // One real solution
235309
- const sqrt_D = Math.sqrt(D);
235310
- const u = this.cbrt(sqrt_D - q);
235311
- const v = -(this.cbrt(sqrt_D + q));
235307
+ const sqrtD = Math.sqrt(D);
235308
+ const u = this.cbrt(sqrtD - q);
235309
+ const v = -(this.cbrt(sqrtD + q));
235312
235310
  results.push(origin + u + v);
235313
235311
  this.improveRoots(c, 3, results, false);
235314
235312
  return;
@@ -235317,7 +235315,7 @@ class AnalyticRoots {
235317
235315
  */
235318
235316
  /** Compute roots of cubic 'c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 */
235319
235317
  static appendCubicRoots(c, results) {
235320
- if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideCoordinate(1.0, c[3]) !== undefined) {
235318
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideCoordinate(1.0, c[3]) !== undefined) {
235321
235319
  this.appendFullCubicSolutions(c[3], c[2], c[1], c[0], results);
235322
235320
  // EDL April 5, 2020 replace classic GraphicsGems solver by RWDNickalls.
235323
235321
  // Don't know if improveRoots is needed.
@@ -235349,11 +235347,11 @@ class AnalyticRoots {
235349
235347
  const D = c[0] * coffScale[0];
235350
235348
  const origin = -0.25 * A;
235351
235349
  // substitute x = y - A/4 to eliminate cubic term: y^4 + py^2 + qy + r = 0
235352
- const sq_A = A * A;
235353
- const p = -0.375 * sq_A + B;
235354
- const q = 0.125 * sq_A * A - 0.5 * A * B + C;
235355
- const r = -0.01171875 * sq_A * sq_A + 0.0625 * sq_A * B - 0.25 * A * C + D;
235356
- const cubicSolutions = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array();
235350
+ const AA = A * A;
235351
+ const p = -0.375 * AA + B;
235352
+ const q = 0.125 * AA * A - 0.5 * A * B + C;
235353
+ const r = -0.01171875 * AA * AA + 0.0625 * AA * B - 0.25 * A * C + D;
235354
+ const cubicSolutions = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array();
235357
235355
  if (this.isZero(r)) { // no absolute term: y(y^3 + py + q) = 0
235358
235356
  coffs[0] = q;
235359
235357
  coffs[1] = p;
@@ -235531,17 +235529,16 @@ class PowerPolynomial {
235531
235529
  */
235532
235530
  class TrigPolynomial {
235533
235531
  /**
235534
- * Solve a polynomial created from trigonometric condition using Trig.S, Trig.C, Trig.W.
235535
- * * Polynomial is of degree 4:
235536
- * `p(t) = coff[0] + coff[1] * t + coff[2] * t^2 + coff[3] * t^3 + coff[4] * t^4`
235537
- * * Solution logic includes inferring angular roots corresponding zero leading coefficients
235538
- * (roots at infinity).
235539
- * @param coff coefficients.
235540
- * @param nominalDegree degree of the polynomial under most complex root case. If there are
235541
- * any zero coefficients up to this degree, a single root "at infinity" is recorded as its
235542
- * corresponding angular parameter at negative pi/2.
235543
- * @param referenceCoefficient a number which represents the size of coefficients at various
235544
- * stages of computation. A small fraction of this will be used as a zero tolerance
235532
+ * Find the roots of a univariate polynomial created from substituting the rational parameterization of the unit
235533
+ * circle into a trigonometric polynomial. Roots are returned as radian angles.
235534
+ * * Currently implemented for polynomials of degree <= 4.
235535
+ * * For example, the ellipse-ellipse intersection problem reduces to finding the roots of a quartic polynomial:
235536
+ * `p(t) = coff[0] + coff[1] t + coff[2] t^2 + coff[3] t^3 + coff[4] t^4`.
235537
+ * * Particular care is given to report a root at t = +/-infinity, which corresponds to the returned angle -pi/2.
235538
+ * @param coff coefficients in the power basis
235539
+ * @param nominalDegree degree of the polynomial under the most complex root case.
235540
+ * @param referenceCoefficient a number which represents the size of coefficients at various stages of computation.
235541
+ * A small fraction of this number will be used as a zero tolerance.
235545
235542
  * @param radians roots are placed here.
235546
235543
  * @return false if equation is all zeros. This usually means any angle is a solution.
235547
235544
  */
@@ -235559,7 +235556,7 @@ class TrigPolynomial {
235559
235556
  let degree = nominalDegree;
235560
235557
  while (degree > 0 && (Math.abs(coff[degree]) <= coffTol))
235561
235558
  degree--;
235562
- const roots = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array();
235559
+ const roots = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array();
235563
235560
  if (degree === -1) {
235564
235561
  // do nothing
235565
235562
  }
@@ -235581,41 +235578,42 @@ class TrigPolynomial {
235581
235578
  }
235582
235579
  else {
235583
235580
  // TODO: WORK WITH BEZIER SOLVER
235581
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Unimplemented degree in trig solver");
235584
235582
  }
235585
235583
  if (roots.length > 0) {
235586
- // Each solution t represents an angle with Math.Cos(theta) = C(t)/W(t) and sin(theta) = S(t)/W(t)
235587
- // Division by W has no effect on atan2 calculations, so we just compute S(t),C(t)
235584
+ // each solution t represents an angle with Math.Cos(theta) = C(t)/W(t) and sin(theta) = S(t)/W(t)
235585
+ // division by W has no effect on atan2 calculations, so we just compute S(t),C(t)
235588
235586
  for (let i = 0; i < roots.length; i++) {
235589
235587
  const ss = PowerPolynomial.evaluate(this.S, roots.atUncheckedIndex(i));
235590
235588
  const cc = PowerPolynomial.evaluate(this.C, roots.atUncheckedIndex(i));
235591
235589
  radians.push(Math.atan2(ss, cc));
235592
235590
  }
235593
- // each leading zero at the front of the coefficient array corresponds to a root at -PI/2.
235594
- // only make one entry because we don't report multiplicity.
235595
- if (degree < nominalDegree)
235596
- radians.push(-0.5 * Math.PI);
235597
235591
  }
235592
+ // If the tail of the coff array is zero, we solved a polynomial of lesser degree above, and
235593
+ // we report the skipped "root at infinity" as the corresponding angle -pi/2 (without multiplicity).
235594
+ // See core\geometry\internaldocs\unitCircleEllipseIntersection.md for details.
235595
+ if (degree < nominalDegree)
235596
+ radians.push(-0.5 * Math.PI);
235598
235597
  }
235599
235598
  return radians.length > 0;
235600
235599
  }
235601
235600
  /**
235602
- * Compute intersections of unit circle `x^2 + y^2 = 1` with general quadric
235603
- * `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y + a = 0`
235604
- * Solutions are returned as angles. Sine and Cosine of the angles are the x, y results.
235601
+ * Compute intersections of the unit circle `x^2 + y^2 = 1` with the general quadric (conic)
235602
+ * `axx x^2 + axy xy + ayy y^2 + ax x + ay y + a = 0`.
235605
235603
  * @param axx coefficient of x^2
235606
235604
  * @param axy coefficient of xy
235607
235605
  * @param ayy coefficient of y^2
235608
235606
  * @param ax coefficient of x
235609
235607
  * @param ay coefficient of y
235610
235608
  * @param a constant coefficient
235611
- * @param radians solution angles
235609
+ * @param radians up to 4 solution angles t in the quadric parameterization: x = cos(t), y = sin(t)
235612
235610
  */
235613
235611
  static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a, radians) {
235614
235612
  const coffs = new Float64Array(5);
235615
235613
  PowerPolynomial.zero(coffs);
235616
235614
  let degree;
235617
235615
  // see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients
235618
- if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXYZ(ax, ay, a)) {
235616
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXYZ(ax, ay, a)) {
235619
235617
  PowerPolynomial.accumulate(coffs, this.CW, ax);
235620
235618
  PowerPolynomial.accumulate(coffs, this.SW, ay);
235621
235619
  PowerPolynomial.accumulate(coffs, this.WW, a);
@@ -235663,9 +235661,9 @@ class TrigPolynomial {
235663
235661
  const acs = 2.0 * (ux * vx + uy * vy);
235664
235662
  const ass = vx * vx + vy * vy;
235665
235663
  const ac = 2.0 * (ux * cx + uy * cy);
235666
- const asi = 2.0 * (vx * cx + vy * cy);
235664
+ const as = 2.0 * (vx * cx + vy * cy);
235667
235665
  const a = cx * cx + cy * cy - 1.0;
235668
- const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, asi, a, ellipseRadians);
235666
+ const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, as, a, ellipseRadians);
235669
235667
  for (const radians of ellipseRadians) {
235670
235668
  const cc = Math.cos(radians);
235671
235669
  const ss = Math.sin(radians);
@@ -235732,328 +235730,8 @@ TrigPolynomial.CC = Float64Array.from([1.0, -4.0, 4.0]);
235732
235730
  /** Standard Basis coefficients for W(t) * W(t). */
235733
235731
  TrigPolynomial.WW = Float64Array.from([1.0, -4.0, 8.0, -8.0, 4.0]);
235734
235732
  /** Standard Basis coefficients for C(t) * C(t) - S(t) * S(t). */
235735
- TrigPolynomial.CCminusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]);
235733
+ TrigPolynomial.CCMinusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]); // eslint-disable-line @typescript-eslint/naming-convention
235736
235734
  TrigPolynomial._coefficientRelTol = 1.0e-12;
235737
- /**
235738
- * static methods for commonly appearing sets of equations in 2 or 3 variables
235739
- * @public
235740
- */
235741
- class SmallSystem {
235742
- /**
235743
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.
235744
- * Return the fractional (not xy) coordinates in result.x, result.y
235745
- * @param a0 start point of line a
235746
- * @param a1 end point of line a
235747
- * @param b0 start point of line b
235748
- * @param b1 end point of line b
235749
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235750
- */
235751
- static lineSegment2dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
235752
- const ux = a1.x - a0.x;
235753
- const uy = a1.y - a0.y;
235754
- const vx = b1.x - b0.x;
235755
- const vy = b1.y - b0.y;
235756
- const cx = b0.x - a0.x;
235757
- const cy = b0.y - a0.y;
235758
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
235759
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
235760
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
235761
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
235762
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
235763
- if (s !== undefined && t !== undefined) {
235764
- result.set(s, -t);
235765
- return true;
235766
- }
235767
- result.set(0, 0);
235768
- return false;
235769
- }
235770
- /**
235771
- * * (ax0,ay0) to (ax0+ux,ay0+uy) are line A.
235772
- * * (bx0,by0) to (bx0+vx,by0+vy) are lineB.
235773
- * * Return true if the lines have a simple intersection.
235774
- * * Return the fractional (not xy) coordinates in result.x, result.y
235775
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235776
- */
235777
- static lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, result) {
235778
- const cx = bx0 - ax0;
235779
- const cy = by0 - ay0;
235780
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
235781
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
235782
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
235783
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
235784
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
235785
- if (s !== undefined && t !== undefined) {
235786
- result.set(s, -t);
235787
- return true;
235788
- }
235789
- result.set(0, 0);
235790
- return false;
235791
- }
235792
- /**
235793
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts
235794
- * Return the fractional (not xy) coordinates in result.x, result.y
235795
- * @param a0 start point of line a
235796
- * @param a1 end point of line a
235797
- * @param b0 start point of line b
235798
- * @param b1 end point of line b
235799
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235800
- */
235801
- static lineSegment3dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
235802
- const ux = a1.x - a0.x;
235803
- const uy = a1.y - a0.y;
235804
- const vx = b1.x - b0.x;
235805
- const vy = b1.y - b0.y;
235806
- const cx = b0.x - a0.x;
235807
- const cy = b0.y - a0.y;
235808
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
235809
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
235810
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
235811
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
235812
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
235813
- if (s !== undefined && t !== undefined) {
235814
- result.set(s, -t);
235815
- return true;
235816
- }
235817
- result.set(0, 0);
235818
- return false;
235819
- }
235820
- /**
235821
- * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points
235822
- * Return the fractional (not xy) coordinates in result.x, result.y
235823
- * @param hA0 homogeneous start point of line a
235824
- * @param hA1 homogeneous end point of line a
235825
- * @param hB0 homogeneous start point of line b
235826
- * @param hB1 homogeneous end point of line b
235827
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235828
- */
235829
- static lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1, result) {
235830
- // Considering only x,y,w parts....
235831
- // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`
235832
- // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)
235833
- 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);
235834
- 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);
235835
- const fractionB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);
235836
- if (fractionB !== undefined) {
235837
- 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);
235838
- 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);
235839
- const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);
235840
- if (fractionA !== undefined)
235841
- return _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Vector2d.create(fractionA, fractionB, result);
235842
- }
235843
- return undefined;
235844
- }
235845
- /**
235846
- * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.
235847
- * @param hA0 homogeneous start point of line a
235848
- * @param hA1 homogeneous end point of line a
235849
- * @param spacePoint homogeneous point in space
235850
- */
235851
- static lineSegment3dHXYClosestPointUnbounded(hA0, hA1, spacePoint) {
235852
- // Considering only x,y,w parts....
235853
- // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.
235854
- // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection
235855
- // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`
235856
- // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.
235857
- const tx = hA1.x * hA0.w - hA0.x * hA1.w;
235858
- const ty = hA1.y * hA0.w - hA0.y * hA1.w;
235859
- const det0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, -ty, spacePoint.x, hA0.y, tx, spacePoint.y, hA0.w, 0, spacePoint.w);
235860
- const det1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA1.x, -ty, spacePoint.x, hA1.y, tx, spacePoint.y, hA1.w, 0, spacePoint.w);
235861
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-det0, det1 - det0);
235862
- }
235863
- /**
235864
- * Return the line fraction at which the line is closest to a space point as viewed in xy only.
235865
- * @param pointA0 start point
235866
- * @param pointA1 end point
235867
- * @param spacePoint point in space
235868
- */
235869
- static lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, spacePoint) {
235870
- // Considering only x,y parts....
235871
- const ux = pointA1.x - pointA0.x;
235872
- const uy = pointA1.y - pointA0.y;
235873
- const uu = ux * ux + uy * uy;
235874
- const vx = spacePoint.x - pointA0.x;
235875
- const vy = spacePoint.y - pointA0.y;
235876
- const uv = ux * vx + uy * vy;
235877
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
235878
- }
235879
- /**
235880
- * Return the line fraction at which the line is closest to a space point
235881
- * @param pointA0 start point
235882
- * @param pointA1 end point
235883
- * @param spacePoint point in space
235884
- */
235885
- static lineSegment3dClosestPointUnbounded(pointA0, pointA1, spacePoint) {
235886
- const ux = pointA1.x - pointA0.x;
235887
- const uy = pointA1.y - pointA0.y;
235888
- const uz = pointA1.z - pointA0.z;
235889
- const uu = ux * ux + uy * uy + uz * uz;
235890
- const vx = spacePoint.x - pointA0.x;
235891
- const vy = spacePoint.y - pointA0.y;
235892
- const vz = spacePoint.z - pointA0.z;
235893
- const uv = ux * vx + uy * vy + uz * vz;
235894
- return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
235895
- }
235896
- /**
235897
- * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d
235898
- * Return the fractional (not xy) coordinates in result.x, result.y
235899
- * @param a0 start point of line a
235900
- * @param a1 end point of line a
235901
- * @param b0 start point of line b
235902
- * @param b1 end point of line b
235903
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235904
- */
235905
- static lineSegment3dClosestApproachUnbounded(a0, a1, b0, b1, result) {
235906
- 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);
235907
- }
235908
- /**
235909
- * Return true if the given rays have closest approach (go by each other) in 3d
235910
- * Return the fractional (not xy) coordinates as x and y parts of a Point2d.
235911
- * @param ax x-coordinate of the origin of the first ray
235912
- * @param ay y-coordinate of the origin of the first ray
235913
- * @param az z-coordinate of the origin of the first ray
235914
- * @param au x-coordinate of the direction vector of the first ray
235915
- * @param av y-coordinate of the direction vector of the first ray
235916
- * @param aw z-coordinate of the direction vector of the first ray
235917
- * @param bx x-coordinate of the origin of the second ray
235918
- * @param by y-coordinate of the origin of the second ray
235919
- * @param bz z-coordinate of the origin of the second ray
235920
- * @param bu x-coordinate of the direction vector of the second ray
235921
- * @param bv y-coordinate of the direction vector of the second ray
235922
- * @param bw z-coordinate of the direction vector of the second ray
235923
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
235924
- */
235925
- static ray3dXYZUVWClosestApproachUnbounded(ax, ay, az, au, av, aw, bx, by, bz, bu, bv, bw, result) {
235926
- const cx = bx - ax;
235927
- const cy = by - ay;
235928
- const cz = bz - az;
235929
- const uu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(au, av, aw);
235930
- const vv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(bu, bv, bw);
235931
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);
235932
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);
235933
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);
235934
- return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);
235935
- }
235936
- /**
235937
- * Solve the pair of linear equations
235938
- * * `ux * x + vx * y = cx`
235939
- * * `uy * x + vy * y = cy`
235940
- * @param ux xx coefficient
235941
- * @param vx xy coefficient
235942
- * @param uy yx coefficient
235943
- * @param vy yy coefficient
235944
- * @param cx x right hand side
235945
- * @param cy y right hand side
235946
- * @param result (x,y) solution (MUST be preallocated by caller)
235947
- */
235948
- static linearSystem2d(ux, vx, // first row of matrix
235949
- uy, vy, // second row of matrix
235950
- cx, cy, // right side
235951
- result) {
235952
- const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
235953
- const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
235954
- const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
235955
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
235956
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
235957
- if (s !== undefined && t !== undefined) {
235958
- result.set(s, t);
235959
- return true;
235960
- }
235961
- result.set(0, 0);
235962
- return false;
235963
- }
235964
- /**
235965
- * Solve a linear system:
235966
- * * x equation: `axx * u + axy * v + axz * w = cx`
235967
- * * y equation: `ayx * u + ayy * v + ayz * w = cy`
235968
- * * z equation: `azx * u + azy * v + azz * w = cz`
235969
- * @param axx row 0, column 0 coefficient
235970
- * @param axy row 0, column 1 coefficient
235971
- * @param axz row 0, column 1 coefficient
235972
- * @param ayx row 1, column 0 coefficient
235973
- * @param ayy row 1, column 1 coefficient
235974
- * @param ayz row 1, column 2 coefficient
235975
- * @param azx row 2, column 0 coefficient
235976
- * @param azy row 2, column 1 coefficient
235977
- * @param azz row 2, column 2 coefficient
235978
- * @param cx right hand side row 0 coefficient
235979
- * @param cy right hand side row 1 coefficient
235980
- * @param cz right hand side row 2 coefficient
235981
- * @param result optional result.
235982
- * @returns solution vector (u,v,w) or `undefined` if system is singular.
235983
- */
235984
- static linearSystem3d(axx, axy, axz, // first row of matrix
235985
- ayx, ayy, ayz, // second row of matrix
235986
- azx, azy, azz, // second row of matrix
235987
- cx, cy, cz, // right side
235988
- result) {
235989
- // determinants of various combinations of columns ...
235990
- const detXYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);
235991
- const detCYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);
235992
- const detXCZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);
235993
- const detXYC = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);
235994
- const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detCYZ, detXYZ);
235995
- const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXCZ, detXYZ);
235996
- const u = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXYC, detXYZ);
235997
- if (s !== undefined && t !== undefined && u !== undefined) {
235998
- return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(s, t, u, result);
235999
- }
236000
- return undefined;
236001
- }
236002
- /**
236003
- * Compute the intersection of three planes.
236004
- * @param xyzA point on the first plane
236005
- * @param normalA normal of the first plane
236006
- * @param xyzB point on the second plane
236007
- * @param normalB normal of the second plane
236008
- * @param xyzC point on the third plane
236009
- * @param normalC normal of the third plane
236010
- * @param result optional result
236011
- * @returns intersection point of the three planes (as a Vector3d), or undefined if at least two planes are parallel.
236012
- */
236013
- static intersect3Planes(xyzA, normalA, xyzB, normalB, xyzC, normalC, result) {
236014
- 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);
236015
- }
236016
- /**
236017
- * * in rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j>pivot`
236018
- * @param rowA row that does not change
236019
- * @param pivotIndex index of pivot (divisor) in rowA.
236020
- * @param rowB row where elimination occurs.
236021
- */
236022
- static eliminateFromPivot(rowA, pivotIndex, rowB, a) {
236023
- const n = rowA.length;
236024
- let q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);
236025
- if (q === undefined)
236026
- return false;
236027
- q *= a;
236028
- for (let j = pivotIndex + 1; j < n; j++)
236029
- rowB[j] += q * rowA[j];
236030
- return true;
236031
- }
236032
- /**
236033
- * Solve a pair of bilinear equations
236034
- * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
236035
- * * Second equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
236036
- */
236037
- static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
236038
- // constant linear, and quadratic coefficients for c0 + c1 * u + c2 * u*u = 0
236039
- const e0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(a0, a1, c0, c1);
236040
- const e1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(b0, b1, c0, c1) + _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(a0, a1, d0, d1);
236041
- const e2 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(b0, b1, d0, d1);
236042
- const uRoots = Degree2PowerPolynomial.solveQuadratic(e2, e1, e0);
236043
- if (uRoots === undefined)
236044
- return undefined;
236045
- const uv = [];
236046
- for (const u of uRoots) {
236047
- const v0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-(a0 + b0 * u), c0 + d0 * u);
236048
- const v1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-(a1 + b1 * u), c1 + d1 * u);
236049
- if (v0 !== undefined)
236050
- uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Point2d.create(u, v0));
236051
- else if (v1 !== undefined)
236052
- uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_6__.Point2d.create(u, v1));
236053
- }
236054
- return uv;
236055
- }
236056
- }
236057
235735
  /**
236058
235736
  * * bilinear expression
236059
235737
  * * `f(u,v) = a + b * u * c * v + d * u * v`
@@ -236084,6 +235762,30 @@ class BilinearPolynomial {
236084
235762
  static createUnitSquareValues(f00, f10, f01, f11) {
236085
235763
  return new BilinearPolynomial(f00, f10, f10, f11 - f10 - f01);
236086
235764
  }
235765
+ /**
235766
+ * Solve a pair of bilinear equations
235767
+ * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
235768
+ * * Second equation: `a1 + b1 * u + c1 * v + d1 * u * v = 0`
235769
+ */
235770
+ static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
235771
+ // constant linear, and quadratic coefficients for c0 + c1 * u + c2 * u*u = 0
235772
+ const e0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(a0, a1, c0, c1);
235773
+ const e1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(b0, b1, c0, c1) + _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(a0, a1, d0, d1);
235774
+ const e2 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.crossProductXYXY(b0, b1, d0, d1);
235775
+ const uRoots = Degree2PowerPolynomial.solveQuadratic(e2, e1, e0);
235776
+ if (uRoots === undefined)
235777
+ return undefined;
235778
+ const uv = [];
235779
+ for (const u of uRoots) {
235780
+ const v0 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-(a0 + b0 * u), c0 + d0 * u);
235781
+ const v1 = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideFraction(-(a1 + b1 * u), c1 + d1 * u);
235782
+ if (v0 !== undefined)
235783
+ uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Point2d.create(u, v0));
235784
+ else if (v1 !== undefined)
235785
+ uv.push(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_7__.Point2d.create(u, v1));
235786
+ }
235787
+ return uv;
235788
+ }
236087
235789
  /**
236088
235790
  * Solve the simultaneous equations
236089
235791
  * * `p(u,v) = pValue`
@@ -236094,7 +235796,7 @@ class BilinearPolynomial {
236094
235796
  * @param qValue
236095
235797
  */
236096
235798
  static solvePair(p, pValue, q, qValue) {
236097
- return SmallSystem.solveBilinearPair(p.a - pValue, p.b, p.c, p.d, q.a - qValue, q.b, q.c, q.d);
235799
+ return BilinearPolynomial.solveBilinearPair(p.a - pValue, p.b, p.c, p.d, q.a - qValue, q.b, q.c, q.d);
236098
235800
  }
236099
235801
  }
236100
235802
  /**
@@ -236125,21 +235827,21 @@ class SineCosinePolynomial {
236125
235827
  }
236126
235828
  /** Return the range of function values over the entire angle range. */
236127
235829
  range(result) {
236128
- const q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXY(this.cosineCoff, this.sineCoff);
236129
- return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createXX(this.a - q, this.a + q, result);
235830
+ const q = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.hypotenuseXY(this.cosineCoff, this.sineCoff);
235831
+ return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createXX(this.a - q, this.a + q, result);
236130
235832
  }
236131
235833
  /** Return the min and max values of the function over theta range from radians0 to radians1 inclusive. */
236132
235834
  rangeInStartEndRadians(radians0, radians1, result) {
236133
- if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_7__.Angle.isFullCircleRadians(radians1 - radians0))
235835
+ if (_geometry3d_Angle__WEBPACK_IMPORTED_MODULE_8__.Angle.isFullCircleRadians(radians1 - radians0))
236134
235836
  return this.range(result);
236135
- result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_3__.Range1d.createXX(this.evaluateRadians(radians0), this.evaluateRadians(radians1), result);
235837
+ result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createXX(this.evaluateRadians(radians0), this.evaluateRadians(radians1), result);
236136
235838
  // angles of min and max ...
236137
235839
  // angles for min and max of the sine wave . ..
236138
235840
  const alphaA = Math.atan2(this.sineCoff, this.cosineCoff);
236139
235841
  const alphaB = alphaA + Math.PI;
236140
- if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.isRadiansInStartEnd(alphaA, radians0, radians1))
235842
+ if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.isRadiansInStartEnd(alphaA, radians0, radians1))
236141
235843
  result.extendX(this.evaluateRadians(alphaA));
236142
- if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.isRadiansInStartEnd(alphaB, radians0, radians1))
235844
+ if (_geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_3__.AngleSweep.isRadiansInStartEnd(alphaB, radians0, radians1))
236143
235845
  result.extendX(this.evaluateRadians(alphaB));
236144
235846
  return result;
236145
235847
  }
@@ -236175,14 +235877,14 @@ class ImplicitLineXY {
236175
235877
  */
236176
235878
  convertToSegmentPoints(b) {
236177
235879
  const q = Math.sqrt(this.ax * this.ax + this.ay * this.ay);
236178
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideCoordinate(1.0, q, 1.0e10);
235880
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.conditionalDivideCoordinate(1.0, q, 1.0e10);
236179
235881
  if (alpha === undefined)
236180
235882
  return undefined;
236181
235883
  const ux = alpha * this.ax;
236182
235884
  const uy = alpha * this.ay;
236183
235885
  const px = -alpha * ux;
236184
235886
  const py = -alpha * uy;
236185
- 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)];
235887
+ 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)];
236186
235888
  }
236187
235889
  /**
236188
235890
  * Evaluate the half-space function at an xy point
@@ -236794,6 +236496,341 @@ function compareRange1dLexicalLowHigh(a, b) {
236794
236496
  }
236795
236497
 
236796
236498
 
236499
+ /***/ }),
236500
+
236501
+ /***/ "../../core/geometry/lib/esm/numerics/SmallSystem.js":
236502
+ /*!***********************************************************!*\
236503
+ !*** ../../core/geometry/lib/esm/numerics/SmallSystem.js ***!
236504
+ \***********************************************************/
236505
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
236506
+
236507
+ "use strict";
236508
+ __webpack_require__.r(__webpack_exports__);
236509
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
236510
+ /* harmony export */ "SmallSystem": () => (/* binding */ SmallSystem)
236511
+ /* harmony export */ });
236512
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
236513
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
236514
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
236515
+ /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
236516
+ /*---------------------------------------------------------------------------------------------
236517
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
236518
+ * See LICENSE.md in the project root for license terms and full copyright notice.
236519
+ *--------------------------------------------------------------------------------------------*/
236520
+ /** @packageDocumentation
236521
+ * @module Numerics
236522
+ */
236523
+
236524
+
236525
+
236526
+
236527
+ // cspell:word XYUV
236528
+ /**
236529
+ * static methods for commonly appearing sets of equations in 2 or 3 variables
236530
+ * @public
236531
+ */
236532
+ class SmallSystem {
236533
+ /**
236534
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.
236535
+ * Return the fractional (not xy) coordinates in result.x, result.y
236536
+ * @param a0 start point of line a
236537
+ * @param a1 end point of line a
236538
+ * @param b0 start point of line b
236539
+ * @param b1 end point of line b
236540
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236541
+ */
236542
+ static lineSegment2dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
236543
+ const ux = a1.x - a0.x;
236544
+ const uy = a1.y - a0.y;
236545
+ const vx = b1.x - b0.x;
236546
+ const vy = b1.y - b0.y;
236547
+ const cx = b0.x - a0.x;
236548
+ const cy = b0.y - a0.y;
236549
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
236550
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
236551
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
236552
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
236553
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
236554
+ if (s !== undefined && t !== undefined) {
236555
+ result.set(s, -t);
236556
+ return true;
236557
+ }
236558
+ result.set(0, 0);
236559
+ return false;
236560
+ }
236561
+ /**
236562
+ * * (ax0,ay0) to (ax0+ux,ay0+uy) are line A.
236563
+ * * (bx0,by0) to (bx0+vx,by0+vy) are lineB.
236564
+ * * Return true if the lines have a simple intersection.
236565
+ * * Return the fractional (not xy) coordinates in result.x, result.y
236566
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236567
+ */
236568
+ static lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, result) {
236569
+ const cx = bx0 - ax0;
236570
+ const cy = by0 - ay0;
236571
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
236572
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
236573
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
236574
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
236575
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
236576
+ if (s !== undefined && t !== undefined) {
236577
+ result.set(s, -t);
236578
+ return true;
236579
+ }
236580
+ result.set(0, 0);
236581
+ return false;
236582
+ }
236583
+ /**
236584
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts
236585
+ * Return the fractional (not xy) coordinates in result.x, result.y
236586
+ * @param a0 start point of line a
236587
+ * @param a1 end point of line a
236588
+ * @param b0 start point of line b
236589
+ * @param b1 end point of line b
236590
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236591
+ */
236592
+ static lineSegment3dXYTransverseIntersectionUnbounded(a0, a1, b0, b1, result) {
236593
+ const ux = a1.x - a0.x;
236594
+ const uy = a1.y - a0.y;
236595
+ const vx = b1.x - b0.x;
236596
+ const vy = b1.y - b0.y;
236597
+ const cx = b0.x - a0.x;
236598
+ const cy = b0.y - a0.y;
236599
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
236600
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
236601
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
236602
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
236603
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
236604
+ if (s !== undefined && t !== undefined) {
236605
+ result.set(s, -t);
236606
+ return true;
236607
+ }
236608
+ result.set(0, 0);
236609
+ return false;
236610
+ }
236611
+ /**
236612
+ * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points
236613
+ * Return the fractional (not xy) coordinates in result.x, result.y
236614
+ * @param hA0 homogeneous start point of line a
236615
+ * @param hA1 homogeneous end point of line a
236616
+ * @param hB0 homogeneous start point of line b
236617
+ * @param hB1 homogeneous end point of line b
236618
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236619
+ */
236620
+ static lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1, result) {
236621
+ // Considering only x,y,w parts....
236622
+ // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`
236623
+ // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)
236624
+ 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);
236625
+ 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);
236626
+ const fractionB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);
236627
+ if (fractionB !== undefined) {
236628
+ 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);
236629
+ 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);
236630
+ const fractionA = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);
236631
+ if (fractionA !== undefined)
236632
+ return _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(fractionA, fractionB, result);
236633
+ }
236634
+ return undefined;
236635
+ }
236636
+ /**
236637
+ * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.
236638
+ * @param hA0 homogeneous start point of line a
236639
+ * @param hA1 homogeneous end point of line a
236640
+ * @param spacePoint homogeneous point in space
236641
+ */
236642
+ static lineSegment3dHXYClosestPointUnbounded(hA0, hA1, spacePoint) {
236643
+ // Considering only x,y,w parts....
236644
+ // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.
236645
+ // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection
236646
+ // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`
236647
+ // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.
236648
+ const tx = hA1.x * hA0.w - hA0.x * hA1.w;
236649
+ const ty = hA1.y * hA0.w - hA0.y * hA1.w;
236650
+ const det0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA0.x, -ty, spacePoint.x, hA0.y, tx, spacePoint.y, hA0.w, 0, spacePoint.w);
236651
+ const det1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(hA1.x, -ty, spacePoint.x, hA1.y, tx, spacePoint.y, hA1.w, 0, spacePoint.w);
236652
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(-det0, det1 - det0);
236653
+ }
236654
+ /**
236655
+ * Return the line fraction at which the line is closest to a space point as viewed in xy only.
236656
+ * @param pointA0 start point
236657
+ * @param pointA1 end point
236658
+ * @param spacePoint point in space
236659
+ */
236660
+ static lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, spacePoint) {
236661
+ // Considering only x,y parts....
236662
+ const ux = pointA1.x - pointA0.x;
236663
+ const uy = pointA1.y - pointA0.y;
236664
+ const uu = ux * ux + uy * uy;
236665
+ const vx = spacePoint.x - pointA0.x;
236666
+ const vy = spacePoint.y - pointA0.y;
236667
+ const uv = ux * vx + uy * vy;
236668
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
236669
+ }
236670
+ /**
236671
+ * Return the line fraction at which the line is closest to a space point
236672
+ * @param pointA0 start point
236673
+ * @param pointA1 end point
236674
+ * @param spacePoint point in space
236675
+ */
236676
+ static lineSegment3dClosestPointUnbounded(pointA0, pointA1, spacePoint) {
236677
+ const ux = pointA1.x - pointA0.x;
236678
+ const uy = pointA1.y - pointA0.y;
236679
+ const uz = pointA1.z - pointA0.z;
236680
+ const uu = ux * ux + uy * uy + uz * uz;
236681
+ const vx = spacePoint.x - pointA0.x;
236682
+ const vy = spacePoint.y - pointA0.y;
236683
+ const vz = spacePoint.z - pointA0.z;
236684
+ const uv = ux * vx + uy * vy + uz * vz;
236685
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(uv, uu);
236686
+ }
236687
+ /**
236688
+ * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d
236689
+ * Return the fractional (not xy) coordinates in result.x, result.y
236690
+ * @param a0 start point of line a
236691
+ * @param a1 end point of line a
236692
+ * @param b0 start point of line b
236693
+ * @param b1 end point of line b
236694
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236695
+ */
236696
+ static lineSegment3dClosestApproachUnbounded(a0, a1, b0, b1, result) {
236697
+ 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);
236698
+ }
236699
+ /**
236700
+ * Return true if the given rays have closest approach (go by each other) in 3d
236701
+ * Return the fractional (not xy) coordinates as x and y parts of a Point2d.
236702
+ * @param ax x-coordinate of the origin of the first ray
236703
+ * @param ay y-coordinate of the origin of the first ray
236704
+ * @param az z-coordinate of the origin of the first ray
236705
+ * @param au x-coordinate of the direction vector of the first ray
236706
+ * @param av y-coordinate of the direction vector of the first ray
236707
+ * @param aw z-coordinate of the direction vector of the first ray
236708
+ * @param bx x-coordinate of the origin of the second ray
236709
+ * @param by y-coordinate of the origin of the second ray
236710
+ * @param bz z-coordinate of the origin of the second ray
236711
+ * @param bu x-coordinate of the direction vector of the second ray
236712
+ * @param bv y-coordinate of the direction vector of the second ray
236713
+ * @param bw z-coordinate of the direction vector of the second ray
236714
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.
236715
+ */
236716
+ static ray3dXYZUVWClosestApproachUnbounded(ax, ay, az, au, av, aw, bx, by, bz, bu, bv, bw, result) {
236717
+ const cx = bx - ax;
236718
+ const cy = by - ay;
236719
+ const cz = bz - az;
236720
+ const uu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(au, av, aw);
236721
+ const vv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseSquaredXYZ(bu, bv, bw);
236722
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);
236723
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);
236724
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);
236725
+ return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);
236726
+ }
236727
+ /**
236728
+ * Solve the pair of linear equations
236729
+ * * `ux * x + vx * y = cx`
236730
+ * * `uy * x + vy * y = cy`
236731
+ * @param ux xx coefficient
236732
+ * @param vx xy coefficient
236733
+ * @param uy yx coefficient
236734
+ * @param vy yy coefficient
236735
+ * @param cx x right hand side
236736
+ * @param cy y right hand side
236737
+ * @param result (x,y) solution (MUST be preallocated by caller)
236738
+ */
236739
+ static linearSystem2d(ux, vx, // first row of matrix
236740
+ uy, vy, // second row of matrix
236741
+ cx, cy, // right side
236742
+ result) {
236743
+ const uv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, vx, vy);
236744
+ const cv = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(cx, cy, vx, vy);
236745
+ const cu = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.crossProductXYXY(ux, uy, cx, cy);
236746
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cv, uv);
236747
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(cu, uv);
236748
+ if (s !== undefined && t !== undefined) {
236749
+ result.set(s, t);
236750
+ return true;
236751
+ }
236752
+ result.set(0, 0);
236753
+ return false;
236754
+ }
236755
+ /**
236756
+ * Solve a linear system:
236757
+ * * x equation: `axx * u + axy * v + axz * w = cx`
236758
+ * * y equation: `ayx * u + ayy * v + ayz * w = cy`
236759
+ * * z equation: `azx * u + azy * v + azz * w = cz`
236760
+ * @param axx row 0, column 0 coefficient
236761
+ * @param axy row 0, column 1 coefficient
236762
+ * @param axz row 0, column 1 coefficient
236763
+ * @param ayx row 1, column 0 coefficient
236764
+ * @param ayy row 1, column 1 coefficient
236765
+ * @param ayz row 1, column 2 coefficient
236766
+ * @param azx row 2, column 0 coefficient
236767
+ * @param azy row 2, column 1 coefficient
236768
+ * @param azz row 2, column 2 coefficient
236769
+ * @param cx right hand side row 0 coefficient
236770
+ * @param cy right hand side row 1 coefficient
236771
+ * @param cz right hand side row 2 coefficient
236772
+ * @param result optional result.
236773
+ * @returns solution vector (u,v,w) or `undefined` if system is singular.
236774
+ */
236775
+ static linearSystem3d(axx, axy, axz, // first row of matrix
236776
+ ayx, ayy, ayz, // second row of matrix
236777
+ azx, azy, azz, // second row of matrix
236778
+ cx, cy, cz, // right side
236779
+ result) {
236780
+ // determinants of various combinations of columns ...
236781
+ const detXYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);
236782
+ const detCYZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);
236783
+ const detXCZ = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);
236784
+ const detXYC = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);
236785
+ const s = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detCYZ, detXYZ);
236786
+ const t = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXCZ, detXYZ);
236787
+ const u = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(detXYC, detXYZ);
236788
+ if (s !== undefined && t !== undefined && u !== undefined) {
236789
+ return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(s, t, u, result);
236790
+ }
236791
+ return undefined;
236792
+ }
236793
+ /**
236794
+ * Compute the intersection of three planes.
236795
+ * @param xyzA point on the first plane
236796
+ * @param normalA normal of the first plane
236797
+ * @param xyzB point on the second plane
236798
+ * @param normalB normal of the second plane
236799
+ * @param xyzC point on the third plane
236800
+ * @param normalC normal of the third plane
236801
+ * @param result optional result
236802
+ * @returns intersection point of the three planes (as a Vector3d), or undefined if at least two planes are parallel.
236803
+ */
236804
+ static intersect3Planes(xyzA, normalA, xyzB, normalB, xyzC, normalC, result) {
236805
+ 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);
236806
+ }
236807
+ /**
236808
+ * * in rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j>pivot`
236809
+ * @param rowA row that does not change
236810
+ * @param pivotIndex index of pivot (divisor) in rowA.
236811
+ * @param rowB row where elimination occurs.
236812
+ */
236813
+ static eliminateFromPivot(rowA, pivotIndex, rowB, a) {
236814
+ const n = rowA.length;
236815
+ let q = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);
236816
+ if (q === undefined)
236817
+ return false;
236818
+ q *= a;
236819
+ for (let j = pivotIndex + 1; j < n; j++)
236820
+ rowB[j] += q * rowA[j];
236821
+ return true;
236822
+ }
236823
+ /**
236824
+ * Solve a pair of bilinear equations
236825
+ * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`
236826
+ * * Second equation: `a1 + b1 * u + c1 * v + d1 * u * v = 0`
236827
+ */
236828
+ static solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1) {
236829
+ return _Polynomials__WEBPACK_IMPORTED_MODULE_3__.BilinearPolynomial.solveBilinearPair(a0, b0, c0, d0, a1, b1, c1, d1);
236830
+ }
236831
+ }
236832
+
236833
+
236797
236834
  /***/ }),
236798
236835
 
236799
236836
  /***/ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js":
@@ -247343,16 +247380,16 @@ __webpack_require__.r(__webpack_exports__);
247343
247380
  /* harmony export */ "OffsetMeshContext": () => (/* binding */ OffsetMeshContext),
247344
247381
  /* harmony export */ "SectorOffsetProperties": () => (/* binding */ SectorOffsetProperties)
247345
247382
  /* harmony export */ });
247346
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
247383
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
247384
+ /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
247347
247385
  /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
247348
247386
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
247349
247387
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
247388
+ /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
247350
247389
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
247390
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
247351
247391
  /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
247352
247392
  /* harmony import */ var _topology_HalfEdgeGraphFromIndexedLoopsContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../topology/HalfEdgeGraphFromIndexedLoopsContext */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js");
247353
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
247354
- /* harmony import */ var _geometry3d_PolylineCompressionByEdgeOffset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/PolylineCompressionByEdgeOffset */ "../../core/geometry/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js");
247355
- /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
247356
247393
  /*---------------------------------------------------------------------------------------------
247357
247394
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
247358
247395
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -248093,7 +248130,7 @@ class OffsetMeshContext {
248093
248130
  const sectorA = nodeA.edgeTag;
248094
248131
  const sectorB = nodeB.edgeTag;
248095
248132
  const sectorC = nodeC.edgeTag;
248096
- const vector = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
248133
+ const vector = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
248097
248134
  return vector;
248098
248135
  }
248099
248136
  /** Compute the point of intersection of the planes in the sectors of 3 half edges */
@@ -248106,7 +248143,7 @@ class OffsetMeshContext {
248106
248143
  for (const sector of [sectorA, sectorB, sectorC])
248107
248144
  emitSector(sector);
248108
248145
  }
248109
- const vector = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
248146
+ const vector = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorC.xyz, sectorC.normal, result);
248110
248147
  if (OffsetMeshContext.stringDebugFunction !== undefined) {
248111
248148
  if (vector === undefined)
248112
248149
  OffsetMeshContext.stringDebugFunction(" NO INTERSECTION");
@@ -248120,7 +248157,7 @@ class OffsetMeshContext {
248120
248157
  const sectorA = nodeA.edgeTag;
248121
248158
  const sectorB = nodeB.edgeTag;
248122
248159
  const normalC = sectorA.normal.crossProduct(sectorB.normal);
248123
- return _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorB.xyz, normalC, result);
248160
+ return _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.intersect3Planes(sectorA.xyz, sectorA.normal, sectorB.xyz, sectorB.normal, sectorB.xyz, normalC, result);
248124
248161
  }
248125
248162
  /**
248126
248163
  * * at input, graph has all original faces and edges
@@ -263058,7 +263095,7 @@ __webpack_require__.r(__webpack_exports__);
263058
263095
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
263059
263096
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
263060
263097
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
263061
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
263098
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
263062
263099
  /* harmony import */ var _MaskManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MaskManager */ "../../core/geometry/lib/esm/topology/MaskManager.js");
263063
263100
  /*---------------------------------------------------------------------------------------------
263064
263101
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -264151,7 +264188,7 @@ class HalfEdge {
264151
264188
  // (nodeA1.x - nodeA0.x)ta + (nodeB0.x - nodeB1.x)tb = nodeB0.x - nodeA0.x
264152
264189
  // (nodeA1.y - nodeA0.y)ta + (nodeB0.y - nodeB1.y)tb = nodeB0.y - nodeA0.y
264153
264190
  // Proof can be found at geometry/internaldocs/Graph.md
264154
- 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))
264191
+ 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))
264155
264192
  return result;
264156
264193
  return undefined;
264157
264194
  }
@@ -266266,7 +266303,7 @@ __webpack_require__.r(__webpack_exports__);
266266
266303
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
266267
266304
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
266268
266305
  /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
266269
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
266306
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
266270
266307
  /* harmony import */ var _Graph__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
266271
266308
  /* harmony import */ var _HalfEdgeMarkSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HalfEdgeMarkSet */ "../../core/geometry/lib/esm/topology/HalfEdgeMarkSet.js");
266272
266309
  /* harmony import */ var _HalfEdgePointInGraphSearch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./HalfEdgePointInGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgePointInGraphSearch.js");
@@ -266370,7 +266407,7 @@ class InsertAndRetriangulateContext {
266370
266407
  let distanceC;
266371
266408
  for (const nodeA of this._graph.allHalfEdges) {
266372
266409
  const nodeB = nodeA.faceSuccessor;
266373
- fractionC = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(nodeA, nodeB, xyz);
266410
+ fractionC = _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(nodeA, nodeB, xyz);
266374
266411
  if (fractionC !== undefined) {
266375
266412
  if (fractionC > 1.0) {
266376
266413
  distanceC = xyz.distanceXY(nodeB);
@@ -266736,7 +266773,7 @@ __webpack_require__.r(__webpack_exports__);
266736
266773
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
266737
266774
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
266738
266775
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
266739
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
266776
+ /* harmony import */ var _numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../numerics/SmallSystem */ "../../core/geometry/lib/esm/numerics/SmallSystem.js");
266740
266777
  /* harmony import */ var _Graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
266741
266778
  /* harmony import */ var _HalfEdgePriorityQueue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HalfEdgePriorityQueue */ "../../core/geometry/lib/esm/topology/HalfEdgePriorityQueue.js");
266742
266779
  /* harmony import */ var _RegularizeFace__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./RegularizeFace */ "../../core/geometry/lib/esm/topology/RegularizeFace.js");
@@ -267214,7 +267251,7 @@ class HalfEdgeGraphMerge {
267214
267251
  const vx = nodeB1.x - bx0;
267215
267252
  const vy = nodeB1.y - by0;
267216
267253
  // cspell:word lineSegmentXYUVTransverseIntersectionUnbounded
267217
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, fractions)) {
267254
+ if (_numerics_SmallSystem__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegmentXYUVTransverseIntersectionUnbounded(ax0, ay0, ux, uy, bx0, by0, vx, vy, fractions)) {
267218
267255
  pointA.x = ax0 + fractions.x * ux;
267219
267256
  pointA.y = ay0 + fractions.x * uy;
267220
267257
  pointB.x = bx0 + fractions.y * vx;
@@ -304206,7 +304243,7 @@ var loadLanguages = instance.loadLanguages;
304206
304243
  /***/ ((module) => {
304207
304244
 
304208
304245
  "use strict";
304209
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.10.0-dev.26","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.26","@itwin/core-bentley":"workspace:^4.10.0-dev.26","@itwin/core-common":"workspace:^4.10.0-dev.26","@itwin/core-geometry":"workspace:^4.10.0-dev.26","@itwin/core-orbitgt":"workspace:^4.10.0-dev.26","@itwin/core-quantity":"workspace:^4.10.0-dev.26"},"//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"}}');
304246
+ 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"}}');
304210
304247
 
304211
304248
  /***/ })
304212
304249