@itwin/ecschema-rpcinterface-tests 4.3.0-dev.22 → 4.3.0-dev.24

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.
@@ -28598,6 +28598,7 @@ var ChangesetType;
28598
28598
  "use strict";
28599
28599
  __webpack_require__.r(__webpack_exports__);
28600
28600
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28601
+ /* harmony export */ ClipIntersectionStyle: () => (/* binding */ ClipIntersectionStyle),
28601
28602
  /* harmony export */ ClipStyle: () => (/* binding */ ClipStyle),
28602
28603
  /* harmony export */ CutStyle: () => (/* binding */ CutStyle)
28603
28604
  /* harmony export */ });
@@ -28605,6 +28606,7 @@ __webpack_require__.r(__webpack_exports__);
28605
28606
  /* harmony import */ var _RgbColor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RgbColor */ "../../core/common/lib/esm/RgbColor.js");
28606
28607
  /* harmony import */ var _HiddenLine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HiddenLine */ "../../core/common/lib/esm/HiddenLine.js");
28607
28608
  /* harmony import */ var _FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FeatureSymbology */ "../../core/common/lib/esm/FeatureSymbology.js");
28609
+ /* harmony import */ var _ColorDef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorDef */ "../../core/common/lib/esm/ColorDef.js");
28608
28610
  /*---------------------------------------------------------------------------------------------
28609
28611
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
28610
28612
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -28616,6 +28618,7 @@ __webpack_require__.r(__webpack_exports__);
28616
28618
 
28617
28619
 
28618
28620
 
28621
+
28619
28622
  /** As part of a [[ClipStyle]], describes how section-cut graphics should be displayed.
28620
28623
  * @note Section-cut graphics are only produced if [[ClipStyle.produceCutGeometry]] is `true`.
28621
28624
  * @public
@@ -28668,30 +28671,89 @@ class CutStyle {
28668
28671
  /** The default CutStyle, configured to draw the section-cut graphics using the view's settings, with no overrides. */
28669
28672
  CutStyle.defaults = new CutStyle();
28670
28673
 
28674
+ /** As part of a [[ClipStyle]], describes how to colorize geometry intersecting the clip planes.
28675
+ * @note Edges are highlighted only if [[ClipStyle.ClipIntersectionStyle]] is `true`.
28676
+ * @public
28677
+ * @extensions
28678
+ */
28679
+ class ClipIntersectionStyle {
28680
+ constructor(color = _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromColorDef(_ColorDef__WEBPACK_IMPORTED_MODULE_4__.ColorDef.white), width = 1) {
28681
+ this.color = color;
28682
+ this.width = width;
28683
+ }
28684
+ /** Create a highlight from its components. */
28685
+ static create(color, width) {
28686
+ if (!color && !width)
28687
+ return this.defaults;
28688
+ return new ClipIntersectionStyle(color, width);
28689
+ }
28690
+ static fromJSON(props) {
28691
+ if (props === undefined) {
28692
+ return ClipIntersectionStyle.defaults;
28693
+ }
28694
+ const color = props.color ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.color) : _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromColorDef(_ColorDef__WEBPACK_IMPORTED_MODULE_4__.ColorDef.white);
28695
+ const width = props.width ? props.width : 1;
28696
+ return new ClipIntersectionStyle(color, width);
28697
+ }
28698
+ /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */
28699
+ toJSON() {
28700
+ const props = {};
28701
+ if (this.matchesDefaults) {
28702
+ return undefined;
28703
+ }
28704
+ if (this.color)
28705
+ props.color = this.color.toJSON();
28706
+ if (this.width)
28707
+ props.width = this.width;
28708
+ return props;
28709
+ }
28710
+ get matchesDefaults() {
28711
+ if (this === ClipIntersectionStyle.defaults)
28712
+ return true;
28713
+ return !this.color && !this.width;
28714
+ }
28715
+ }
28716
+ ClipIntersectionStyle.defaults = new ClipIntersectionStyle();
28717
+
28671
28718
  /** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].
28672
28719
  * @see [[DisplayStyleSettings.clipStyle]].
28673
28720
  * @public
28674
28721
  */
28675
28722
  class ClipStyle {
28676
- constructor(produceCutGeometry, cutStyle, inside, outside) {
28723
+ constructor(produceCutGeometry, colorizeIntersection, cutStyle, inside, outside, intersectionStyle) {
28677
28724
  this.produceCutGeometry = produceCutGeometry;
28725
+ this.colorizeIntersection = colorizeIntersection;
28678
28726
  this.cutStyle = cutStyle;
28679
28727
  this.insideColor = inside;
28680
28728
  this.outsideColor = outside;
28729
+ this.intersectionStyle = intersectionStyle;
28681
28730
  }
28682
- /** Create a style from its components. */
28683
- static create(produceCutGeometry, cutStyle, insideColor, outsideColor) {
28684
- if (!produceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor)
28731
+ /** @internal */
28732
+ static create(styleOrProduceCutGeometry, cutStyle, insideColor, outsideColor) {
28733
+ if (typeof styleOrProduceCutGeometry === "boolean") {
28734
+ cutStyle = cutStyle === undefined ? CutStyle.defaults : cutStyle;
28735
+ if (!styleOrProduceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor) {
28736
+ return this.defaults;
28737
+ }
28738
+ return new ClipStyle(styleOrProduceCutGeometry, false, cutStyle, insideColor, outsideColor, undefined);
28739
+ }
28740
+ const style = styleOrProduceCutGeometry;
28741
+ if (!style.produceCutGeometry && !style.colorizeIntersection && (!style.cutStyle || style.cutStyle.matchesDefaults) && !style.insideColor && !style.outsideColor && !style.intersectionStyle)
28685
28742
  return this.defaults;
28686
- return new ClipStyle(produceCutGeometry, cutStyle, insideColor, outsideColor);
28743
+ const produceCutGeometry = style.produceCutGeometry ? true : false;
28744
+ const colorizeIntersection = style.colorizeIntersection ? true : false;
28745
+ cutStyle = style.cutStyle === undefined ? CutStyle.defaults : style.cutStyle;
28746
+ return new ClipStyle(produceCutGeometry, colorizeIntersection, cutStyle, style.insideColor, style.outsideColor, style.intersectionStyle);
28687
28747
  }
28688
28748
  static fromJSON(props) {
28689
28749
  if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isNonEmptyObject(props)) {
28690
28750
  const produceCutGeometry = props.produceCutGeometry ?? false;
28751
+ const colorizeIntersection = props.colorizeIntersection ? true : false;
28691
28752
  const cutStyle = CutStyle.fromJSON(props.cutStyle);
28692
- const inside = props.insideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.insideColor) : undefined;
28693
- const outside = props.outsideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.outsideColor) : undefined;
28694
- return this.create(produceCutGeometry, cutStyle, inside, outside);
28753
+ const insideColor = props.insideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.insideColor) : undefined;
28754
+ const outsideColor = props.outsideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.outsideColor) : undefined;
28755
+ const intersectionStyle = props.intersectionStyle ? ClipIntersectionStyle.fromJSON(props.intersectionStyle) : undefined;
28756
+ return this.create({ produceCutGeometry, colorizeIntersection, cutStyle, insideColor, outsideColor, intersectionStyle });
28695
28757
  }
28696
28758
  return this.defaults;
28697
28759
  }
@@ -28702,6 +28764,8 @@ class ClipStyle {
28702
28764
  const props = {};
28703
28765
  if (this.produceCutGeometry)
28704
28766
  props.produceCutGeometry = true;
28767
+ if (this.colorizeIntersection)
28768
+ props.colorizeIntersection = true;
28705
28769
  const cutStyle = this.cutStyle.toJSON();
28706
28770
  if (cutStyle) {
28707
28771
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!this.cutStyle.matchesDefaults);
@@ -28711,17 +28775,19 @@ class ClipStyle {
28711
28775
  props.insideColor = this.insideColor.toJSON();
28712
28776
  if (this.outsideColor)
28713
28777
  props.outsideColor = this.outsideColor.toJSON();
28778
+ if (this.intersectionStyle)
28779
+ props.intersectionStyle = this.intersectionStyle.toJSON();
28714
28780
  return props;
28715
28781
  }
28716
28782
  /** Returns true if this style matches the [[ClipStyle.defaults]] - that is, it overrides no settings from the view. */
28717
28783
  get matchesDefaults() {
28718
28784
  if (this === ClipStyle.defaults)
28719
28785
  return true;
28720
- return !this.produceCutGeometry && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults;
28786
+ return !this.produceCutGeometry && !this.colorizeIntersection && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults && !this.intersectionStyle;
28721
28787
  }
28722
28788
  }
28723
28789
  /** The default style, which overrides none of the view's settings. */
28724
- ClipStyle.defaults = new ClipStyle(false, CutStyle.defaults, undefined, undefined);
28790
+ ClipStyle.defaults = new ClipStyle(false, false, CutStyle.defaults, undefined, undefined, undefined);
28725
28791
 
28726
28792
 
28727
28793
 
@@ -44245,6 +44311,7 @@ __webpack_require__.r(__webpack_exports__);
44245
44311
  /* harmony export */ ChangedValueState: () => (/* reexport safe */ _ECSqlTypes__WEBPACK_IMPORTED_MODULE_21__.ChangedValueState),
44246
44312
  /* harmony export */ ChangesetType: () => (/* reexport safe */ _ChangesetProps__WEBPACK_IMPORTED_MODULE_11__.ChangesetType),
44247
44313
  /* harmony export */ ChannelConstraintError: () => (/* reexport safe */ _IModelError__WEBPACK_IMPORTED_MODULE_62__.ChannelConstraintError),
44314
+ /* harmony export */ ClipIntersectionStyle: () => (/* reexport safe */ _ClipStyle__WEBPACK_IMPORTED_MODULE_12__.ClipIntersectionStyle),
44248
44315
  /* harmony export */ ClipStyle: () => (/* reexport safe */ _ClipStyle__WEBPACK_IMPORTED_MODULE_12__.ClipStyle),
44249
44316
  /* harmony export */ Code: () => (/* reexport safe */ _Code__WEBPACK_IMPORTED_MODULE_13__.Code),
44250
44317
  /* harmony export */ CodeScopeSpec: () => (/* reexport safe */ _Code__WEBPACK_IMPORTED_MODULE_13__.CodeScopeSpec),
@@ -99873,6 +99940,7 @@ const extensionExports = {
99873
99940
  ChangedValueState: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ChangedValueState,
99874
99941
  ChangesetType: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ChangesetType,
99875
99942
  ClipEventType: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.ClipEventType,
99943
+ ClipIntersectionStyle: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ClipIntersectionStyle,
99876
99944
  Cluster: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.Cluster,
99877
99945
  ColorByName: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorByName,
99878
99946
  ColorDef: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef,
@@ -110608,6 +110676,10 @@ class ClipStack {
110608
110676
  this._outsideColor = _FloatRGBA__WEBPACK_IMPORTED_MODULE_3__.FloatRgba.from(0, 0, 0, 0);
110609
110677
  /** For detecting whether the transform changed from one invocation of setViewClip to the next. */
110610
110678
  this._prevTransform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createZero();
110679
+ /** True if we want to colorize geometry intersecting clip planes */
110680
+ this._colorizeIntersection = false;
110681
+ /** The style to colorize the geometry intersecting clip planes */
110682
+ this._intersectionStyle = _FloatRGBA__WEBPACK_IMPORTED_MODULE_3__.FloatRgba.from(0, 0, 0, 0);
110611
110683
  this._getTransform = getTransform;
110612
110684
  this._wantViewClip = wantViewClip;
110613
110685
  this._numTotalRows = this._numRowsInUse = 0;
@@ -110623,6 +110695,15 @@ class ClipStack {
110623
110695
  get hasOutsideColor() {
110624
110696
  return this.outsideColor.alpha !== 0;
110625
110697
  }
110698
+ get colorizeIntersection() {
110699
+ return this._colorizeIntersection;
110700
+ }
110701
+ set colorizeIntersection(b) {
110702
+ this._colorizeIntersection = b;
110703
+ }
110704
+ get intersectionStyle() {
110705
+ return this._intersectionStyle;
110706
+ }
110626
110707
  get bytesUsed() {
110627
110708
  return this._texture ? this._texture.bytesUsed : 0;
110628
110709
  }
@@ -110630,6 +110711,7 @@ class ClipStack {
110630
110711
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._stack.length === 1);
110631
110712
  this.updateColor(style.insideColor, this._insideColor);
110632
110713
  this.updateColor(style.outsideColor, this._outsideColor);
110714
+ this.updateIntersectionStyle(style.colorizeIntersection, style.intersectionStyle, this._intersectionStyle);
110633
110715
  const transform = this._getTransform();
110634
110716
  if (!transform.isAlmostEqual(this._prevTransform)) {
110635
110717
  transform.clone(this._prevTransform);
@@ -110766,6 +110848,15 @@ class ClipStack {
110766
110848
  if (rgb)
110767
110849
  rgba.setRgbColor(rgb);
110768
110850
  }
110851
+ updateIntersectionStyle(colorizeIntersection, style, _thisStyle) {
110852
+ this._colorizeIntersection = colorizeIntersection === true ? true : false;
110853
+ if (style !== undefined) {
110854
+ if (style.color !== undefined)
110855
+ _thisStyle.setRgbColor(style.color);
110856
+ if (style.width !== undefined)
110857
+ _thisStyle.alpha = style.width;
110858
+ }
110859
+ }
110769
110860
  }
110770
110861
 
110771
110862
 
@@ -121014,6 +121105,7 @@ var Convert;
121014
121105
  case 8 /* VariableType.Sampler2D */: return "sampler2D";
121015
121106
  case 9 /* VariableType.SamplerCube */: return "samplerCube";
121016
121107
  case 10 /* VariableType.Uint */: return "uint";
121108
+ case 11 /* VariableType.BVec2 */: return "bvec2";
121017
121109
  default:
121018
121110
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
121019
121111
  return "undefined";
@@ -121224,6 +121316,7 @@ class ShaderVariables {
121224
121316
  variableSize = 1;
121225
121317
  break;
121226
121318
  case 3 /* VariableType.Vec2 */:
121319
+ case 11 /* VariableType.BVec2 */:
121227
121320
  variableSize = 2;
121228
121321
  break;
121229
121322
  case 4 /* VariableType.Vec3 */:
@@ -121290,6 +121383,7 @@ class ShaderVariables {
121290
121383
  variableSize = 1;
121291
121384
  break;
121292
121385
  case 3 /* VariableType.Vec2 */:
121386
+ case 11 /* VariableType.BVec2 */:
121293
121387
  variableSize = 2;
121294
121388
  break;
121295
121389
  case 4 /* VariableType.Vec3 */:
@@ -121673,9 +121767,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
121673
121767
  const applyClipping = this.get(10 /* FragmentShaderComponent.ApplyClipping */);
121674
121768
  if (undefined !== applyClipping) {
121675
121769
  prelude.addline("vec3 g_clipColor;\n");
121676
- prelude.addFunction("bool applyClipping(vec4 baseColor)", applyClipping);
121677
- main.addline(" bool hasClipColor = applyClipping(baseColor);");
121678
- main.addline(" if (hasClipColor) { baseColor.rgb = g_clipColor; } else {");
121770
+ prelude.addFunction("bvec2 applyClipping(vec4 baseColor)", applyClipping);
121771
+ main.addline(" g_hasClipColor = applyClipping(baseColor);");
121772
+ main.addline(" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {");
121679
121773
  clipIndent = " ";
121680
121774
  }
121681
121775
  const applyMaterialOverrides = this.get(2 /* FragmentShaderComponent.ApplyMaterialOverrides */);
@@ -121731,6 +121825,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
121731
121825
  prelude.addFunction("vec4 applyLighting(vec4 baseColor)", applyLighting);
121732
121826
  main.addline(" baseColor = applyLighting(baseColor);");
121733
121827
  }
121828
+ if (undefined !== applyClipping) {
121829
+ main.addline(" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } ");
121830
+ }
121734
121831
  const reverseWoW = this.get(9 /* FragmentShaderComponent.ReverseWhiteOnWhite */);
121735
121832
  if (undefined !== reverseWoW) {
121736
121833
  prelude.addFunction("vec4 reverseWhiteOnWhite(vec4 baseColor)", reverseWoW);
@@ -129574,7 +129671,9 @@ __webpack_require__.r(__webpack_exports__);
129574
129671
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
129575
129672
  /* harmony import */ var _RenderFlags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../RenderFlags */ "../../core/frontend/lib/esm/render/webgl/RenderFlags.js");
129576
129673
  /* harmony import */ var _Common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Common */ "../../core/frontend/lib/esm/render/webgl/glsl/Common.js");
129577
- /* harmony import */ var _Vertex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Vertex */ "../../core/frontend/lib/esm/render/webgl/glsl/Vertex.js");
129674
+ /* harmony import */ var _FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FeatureSymbology */ "../../core/frontend/lib/esm/render/webgl/glsl/FeatureSymbology.js");
129675
+ /* harmony import */ var _Translucency__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Translucency */ "../../core/frontend/lib/esm/render/webgl/glsl/Translucency.js");
129676
+ /* harmony import */ var _Vertex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Vertex */ "../../core/frontend/lib/esm/render/webgl/glsl/Vertex.js");
129578
129677
  /*---------------------------------------------------------------------------------------------
129579
129678
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
129580
129679
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -129586,11 +129685,11 @@ __webpack_require__.r(__webpack_exports__);
129586
129685
 
129587
129686
 
129588
129687
 
129688
+
129689
+
129589
129690
  const getClipPlaneFloat = `
129590
129691
  vec4 getClipPlane(int index) {
129591
- float x = 0.5;
129592
- float y = (float(index) + 0.5) / float(u_clipParams[2]);
129593
- return TEXTURE(s_clipSampler, vec2(x, y));
129692
+ return texelFetch(s_clipSampler, ivec2(0, index), 0);
129594
129693
  }
129595
129694
  `;
129596
129695
  const unpackFloat = `
@@ -129611,57 +129710,112 @@ float calcClipPlaneDist(vec3 camPos, vec4 plane) {
129611
129710
  return dot(vec4(camPos, 1.0), plane);
129612
129711
  }
129613
129712
  `;
129713
+ const applyClipPlanesLoop = `
129714
+ for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
129715
+ `;
129716
+ const applyClipPlanesLoopBody = `
129717
+ vec4 plane = getClipPlane(i);
129718
+ if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
129719
+ if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
129720
+ break;
129721
+
129722
+ numPlaneSets = 1;
129723
+ numSetsClippedBy = 0;
129724
+ clippedByCurrentPlaneSet = false;
129725
+ } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
129726
+ numPlaneSets = numPlaneSets + 1;
129727
+ numSetsClippedBy += int(clippedByCurrentPlaneSet);
129728
+ clippedByCurrentPlaneSet = false;
129729
+ } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
129730
+ clippedByCurrentPlaneSet = true;
129731
+ }
129732
+ `;
129733
+ const applyClipPlanesIntersectionLoopBody = `
129734
+ if ((i <= u_clipParams[1] - 2) && (!clippedByCurrentPlaneSet)) {
129735
+
129736
+ //Obtaining closest point on plane to current frag in eyespace
129737
+ vec3 pointOnPlane = v_eyeSpace - (abs(calcClipPlaneDist(v_eyeSpace, plane)) * plane.xyz);
129738
+
129739
+ //determining whether to colorize
129740
+ if (distance(v_eyeSpace, pointOnPlane) <= (kFrustumType_Perspective == u_frustum.z ? -pointOnPlane.z * widthFactor : widthFactor)) {
129741
+ colorizeIntersection = true;
129742
+ }
129743
+ }
129744
+ }
129745
+
129746
+ //Need to pull this condition out of the loop for when there are multiple clip planes defined
129747
+ if (colorizeIntersection && !clippedByCurrentPlaneSet) {
129748
+ g_clipColor = u_clipIntersection.rgb;
129749
+ return bvec2(true, true);
129750
+ }
129751
+ `;
129614
129752
  const applyClipPlanesPrelude = `
129615
129753
  int numPlaneSets = 1;
129616
129754
  int numSetsClippedBy = 0;
129617
129755
  bool clippedByCurrentPlaneSet = false;
129618
- `;
129619
- const applyClipPlanesLoop = `
129620
- for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
129756
+ bool colorizeIntersection = false;
129757
+ if (u_colorizeIntersection) {
129758
+ float widthFactor = u_pixelWidthFactor * 2.0 * u_clipIntersection.a;
129759
+ ${applyClipPlanesLoop}${applyClipPlanesLoopBody}${applyClipPlanesIntersectionLoopBody}
129760
+ } else {
129761
+ ${applyClipPlanesLoop}${applyClipPlanesLoopBody} }\n
129762
+ }
129621
129763
  `;
129622
129764
  const applyClipPlanesPostlude = `
129623
- vec4 plane = getClipPlane(i);
129624
- if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
129625
- if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
129626
- break;
129627
-
129628
- numPlaneSets = 1;
129629
- numSetsClippedBy = 0;
129630
- clippedByCurrentPlaneSet = false;
129631
- } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
129632
- numPlaneSets = numPlaneSets + 1;
129633
- numSetsClippedBy += int(clippedByCurrentPlaneSet);
129634
- clippedByCurrentPlaneSet = false;
129635
- } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
129636
- clippedByCurrentPlaneSet = true;
129637
- }
129638
- }
129639
129765
 
129640
129766
  numSetsClippedBy += int(clippedByCurrentPlaneSet);
129641
129767
  if (numSetsClippedBy == numPlaneSets) {
129642
129768
  if (u_outsideRgba.a > 0.0) {
129643
129769
  g_clipColor = u_outsideRgba.rgb;
129644
- return true;
129770
+ return bvec2(true,false);
129645
129771
  } else {
129646
129772
  discard;
129647
129773
  }
129648
129774
  } else if (u_insideRgba.a > 0.0) {
129649
129775
  g_clipColor = u_insideRgba.rgb;
129650
- return true;
129776
+ return bvec2(true,false);
129651
129777
  }
129652
129778
 
129653
- return false;
129779
+ return bvec2(false,false);
129654
129780
  `;
129655
- const applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesLoop + applyClipPlanesPostlude;
129781
+ const assignFragData = `
129782
+ if (g_hasClipColor.y) {
129783
+ vec4 output0 = vec4(g_clipColor, 1.0);
129784
+ vec4 output1 = vec4(1.0, 1.0, 0.0, 1.0);
129785
+
129786
+ FragColor0 = output0;
129787
+ FragColor1 = output1;
129788
+ } else {
129789
+ ${_Translucency__WEBPACK_IMPORTED_MODULE_4__.computeOutputs}
129790
+
129791
+ FragColor0 = output0;
129792
+ FragColor1 = output1;
129793
+ }
129794
+ `;
129795
+ const applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesPostlude;
129656
129796
  const clipParams = new Int32Array(3);
129657
129797
  /** @internal */
129658
129798
  function addClipping(prog) {
129659
129799
  const frag = prog.frag;
129660
129800
  const vert = prog.vert;
129661
129801
  (0,_Common__WEBPACK_IMPORTED_MODULE_2__.addEyeSpace)(prog);
129802
+ prog.addUniform("u_outsideRgba", 5 /* VariableType.Vec4 */, (program) => {
129803
+ program.addGraphicUniform("u_outsideRgba", (uniform, params) => {
129804
+ params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);
129805
+ });
129806
+ });
129807
+ prog.addUniform("u_insideRgba", 5 /* VariableType.Vec4 */, (program) => {
129808
+ program.addGraphicUniform("u_insideRgba", (uniform, params) => {
129809
+ params.target.uniforms.branch.clipStack.insideColor.bind(uniform);
129810
+ });
129811
+ });
129812
+ (0,_Common__WEBPACK_IMPORTED_MODULE_2__.addFrustum)(prog);
129813
+ (0,_FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__.addPixelWidthFactor)(frag);
129814
+ (0,_Vertex__WEBPACK_IMPORTED_MODULE_5__.addModelViewMatrix)(vert);
129662
129815
  // [0] = index of first plane
129663
129816
  // [1] = index of last plane (one past the end)
129664
129817
  // [2] = texture height
129818
+ prog.frag.addGlobal("g_hasClipColor", 11 /* VariableType.BVec2 */);
129665
129819
  prog.addUniformArray("u_clipParams", 1 /* VariableType.Int */, 3, (program) => {
129666
129820
  program.addGraphicUniform("u_clipParams", (uniform, params) => {
129667
129821
  // Set this to false to visualize pre-shader culling of geometry.
@@ -129674,17 +129828,16 @@ function addClipping(prog) {
129674
129828
  uniform.setUniform1iv(clipParams);
129675
129829
  });
129676
129830
  });
129677
- prog.addUniform("u_outsideRgba", 5 /* VariableType.Vec4 */, (program) => {
129678
- program.addGraphicUniform("u_outsideRgba", (uniform, params) => {
129679
- params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);
129831
+ prog.frag.addUniform("u_colorizeIntersection", 0 /* VariableType.Boolean */, (program) => {
129832
+ program.addProgramUniform("u_colorizeIntersection", (uniform, params) => {
129833
+ uniform.setUniform1i(params.target.uniforms.branch.clipStack.colorizeIntersection ? 1 : 0);
129680
129834
  });
129681
129835
  });
129682
- prog.addUniform("u_insideRgba", 5 /* VariableType.Vec4 */, (program) => {
129683
- program.addGraphicUniform("u_insideRgba", (uniform, params) => {
129684
- params.target.uniforms.branch.clipStack.insideColor.bind(uniform);
129836
+ prog.frag.addUniform("u_clipIntersection", 5 /* VariableType.Vec4 */, (program) => {
129837
+ program.addGraphicUniform("u_clipIntersection", (uniform, params) => {
129838
+ params.target.uniforms.branch.clipStack.intersectionStyle.bind(uniform);
129685
129839
  });
129686
129840
  });
129687
- (0,_Vertex__WEBPACK_IMPORTED_MODULE_3__.addModelViewMatrix)(vert);
129688
129841
  frag.addFunction(getClipPlaneFloat);
129689
129842
  frag.addFunction(calcClipPlaneDist);
129690
129843
  frag.addUniform("s_clipSampler", 8 /* VariableType.Sampler2D */, (program) => {
@@ -129696,6 +129849,9 @@ function addClipping(prog) {
129696
129849
  });
129697
129850
  }, 3 /* VariablePrecision.High */);
129698
129851
  frag.set(10 /* FragmentShaderComponent.ApplyClipping */, applyClipPlanes);
129852
+ // modify translucent shaders
129853
+ if (frag.findFunction(_Translucency__WEBPACK_IMPORTED_MODULE_4__.computeAlphaWeight))
129854
+ frag.set(16 /* FragmentShaderComponent.AssignFragData */, assignFragData);
129699
129855
  }
129700
129856
 
129701
129857
 
@@ -130162,10 +130318,10 @@ const computeTranslucentColor = `
130162
130318
  vec4 computeColor() {
130163
130319
  vec4 opaque = computeOpaqueColor();
130164
130320
  vec4 accum = TEXTURE(u_accumulation, v_texCoord);
130165
- float r = TEXTURE(u_revealage, v_texCoord).r;
130321
+ vec2 rg = TEXTURE(u_revealage, v_texCoord).rg;
130166
130322
 
130167
- vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a);
130168
- vec4 col = (1.0 - transparent.a) * transparent + transparent.a * opaque;
130323
+ vec4 transparent = vec4(accum.rgb / clamp(rg.r, 1e-4, 5e4), accum.a);
130324
+ vec4 col = mix((1.0 - transparent.a) * transparent + transparent.a * opaque, vec4(u_clipIntersection.rgb, 1.0), rg.g);
130169
130325
  return col;
130170
130326
  }
130171
130327
  `;
@@ -130213,6 +130369,11 @@ function createCompositeProgram(flags, context) {
130213
130369
  _Texture__WEBPACK_IMPORTED_MODULE_2__.Texture2DHandle.bindSampler(uniform, params.geometry.reveal, _RenderFlags__WEBPACK_IMPORTED_MODULE_1__.TextureUnit.Two);
130214
130370
  });
130215
130371
  });
130372
+ builder.frag.addUniform("u_clipIntersection", 5 /* VariableType.Vec4 */, (program) => {
130373
+ program.addGraphicUniform("u_clipIntersection", (uniform, params) => {
130374
+ params.target.uniforms.branch.clipStack.intersectionStyle.bind(uniform);
130375
+ });
130376
+ });
130216
130377
  frag.addFunction(computeTranslucentColor);
130217
130378
  if (!wantHilite) {
130218
130379
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeTranslucentBaseColor);
@@ -131355,6 +131516,7 @@ __webpack_require__.r(__webpack_exports__);
131355
131516
  /* harmony export */ addHiliter: () => (/* binding */ addHiliter),
131356
131517
  /* harmony export */ addMaxAlpha: () => (/* binding */ addMaxAlpha),
131357
131518
  /* harmony export */ addOvrFlagConstants: () => (/* binding */ addOvrFlagConstants),
131519
+ /* harmony export */ addPixelWidthFactor: () => (/* binding */ addPixelWidthFactor),
131358
131520
  /* harmony export */ addRenderOrder: () => (/* binding */ addRenderOrder),
131359
131521
  /* harmony export */ addRenderOrderConstants: () => (/* binding */ addRenderOrderConstants),
131360
131522
  /* harmony export */ addSurfaceDiscard: () => (/* binding */ addSurfaceDiscard),
@@ -135819,7 +135981,9 @@ function addThematicDisplay(builder, isForPointClouds = false, isForTerrainMesh
135819
135981
  "use strict";
135820
135982
  __webpack_require__.r(__webpack_exports__);
135821
135983
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
135822
- /* harmony export */ addTranslucency: () => (/* binding */ addTranslucency)
135984
+ /* harmony export */ addTranslucency: () => (/* binding */ addTranslucency),
135985
+ /* harmony export */ computeAlphaWeight: () => (/* binding */ computeAlphaWeight),
135986
+ /* harmony export */ computeOutputs: () => (/* binding */ computeOutputs)
135823
135987
  /* harmony export */ });
135824
135988
  /* harmony import */ var _Common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Common */ "../../core/frontend/lib/esm/render/webgl/glsl/Common.js");
135825
135989
  /* harmony import */ var _Fragment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Fragment */ "../../core/frontend/lib/esm/render/webgl/glsl/Fragment.js");
@@ -135857,7 +136021,7 @@ const computeOutputs = `
135857
136021
  float outputScale = (u_shaderFlags[kShaderBit_OITScaleOutput] ? 1.0 / 3001.040604 : 1.0);
135858
136022
 
135859
136023
  vec4 output0 = vec4(Ci * wzi * outputScale, ai);
135860
- vec4 output1 = vec4(ai * wzi * outputScale);
136024
+ vec4 output1 = vec4(ai * wzi * outputScale, 0.0, 0.0, ai * wzi * outputScale);
135861
136025
  `;
135862
136026
  const assignFragData = `${computeOutputs}
135863
136027
  FragColor0 = output0;
@@ -170465,9 +170629,10 @@ class Geometry {
170465
170629
  // (c0,s0) is the closest approach of the line to the circle center (origin)
170466
170630
  const c0 = da2b2 * cosCoff; // -ad/(a^2+b^2)
170467
170631
  const s0 = da2b2 * sinCoff; // -bd/(a^2+b^2)
170468
- if (criterion <= 0.0) { // nSolution = 1
170469
- // We observed criterion = -2.22e-16 in a rotated tangent system, therefore for negative criteria near
170470
- // zero, return the near-tangency; for tiny positive criteria, fall through to return both solutions.
170632
+ if (criterion <= Geometry.smallMetricDistanceSquared) { // nSolution = 1
170633
+ // We observed criterion = -2.22e-16 in a rotated tangent system, and criterion = 4.44e-16 in a
170634
+ // transverse line-arc intersectXYZ near-tangency, therefore for criteria near zero (on either side),
170635
+ // return the (near) tangency; any larger criteria fall through to return both solutions.
170471
170636
  result = [_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(c0, s0)];
170472
170637
  }
170473
170638
  else { // nSolution = 2
@@ -181596,43 +181761,42 @@ class LineStringOffsetClipperContext {
181596
181761
  "use strict";
181597
181762
  __webpack_require__.r(__webpack_exports__);
181598
181763
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
181599
- /* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.AbstractNewtonIterator),
181600
- /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3d),
181601
- /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3dOptions),
181602
- /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.AnalyticRoots),
181764
+ /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3d),
181765
+ /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3dOptions),
181766
+ /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.AnalyticRoots),
181603
181767
  /* harmony export */ Angle: () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
181604
181768
  /* harmony export */ AngleSweep: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
181605
- /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.AnnotatedLineString3d),
181606
- /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.Arc3d),
181607
- /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannel),
181608
- /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelData),
181609
- /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelDataType),
181769
+ /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.AnnotatedLineString3d),
181770
+ /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__.Arc3d),
181771
+ /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannel),
181772
+ /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelData),
181773
+ /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelDataType),
181610
181774
  /* harmony export */ AxisIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisIndex),
181611
181775
  /* harmony export */ AxisOrder: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisOrder),
181612
181776
  /* harmony export */ AxisScaleSelect: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisScaleSelect),
181613
- /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__.BSpline1dNd),
181614
- /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSpline2dNd),
181615
- /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3d),
181616
- /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3dBase),
181617
- /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__.BSplineCurve3dH),
181618
- /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__.BSplineCurveOps),
181619
- /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3d),
181620
- /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3dH),
181621
- /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.BSplineWrapMode),
181622
- /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
181777
+ /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__.BSpline1dNd),
181778
+ /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSpline2dNd),
181779
+ /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3d),
181780
+ /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3dBase),
181781
+ /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3dH),
181782
+ /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__.BSplineCurveOps),
181783
+ /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3d),
181784
+ /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3dH),
181785
+ /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.BSplineWrapMode),
181786
+ /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.BagOfCurves),
181623
181787
  /* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
181624
- /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
181625
- /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__.Bezier1dNd),
181788
+ /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__.BentleyGeometryFlatBuffer),
181789
+ /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__.Bezier1dNd),
181626
181790
  /* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
181627
- /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3d),
181628
- /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__.BezierCurve3dH),
181629
- /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__.BezierCurveBase),
181791
+ /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__.BezierCurve3d),
181792
+ /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3dH),
181793
+ /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__.BezierCurveBase),
181630
181794
  /* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
181631
181795
  /* harmony export */ BilinearPatch: () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
181632
- /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.BilinearPolynomial),
181796
+ /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.BilinearPolynomial),
181633
181797
  /* harmony export */ BooleanClipFactory: () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
181634
- /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_89__.Box),
181635
- /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__.BoxTopology),
181798
+ /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_88__.Box),
181799
+ /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__.BoxTopology),
181636
181800
  /* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipMaskXYZRangePlanes),
181637
181801
  /* harmony export */ ClipPlane: () => (/* reexport safe */ _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__.ClipPlane),
181638
181802
  /* harmony export */ ClipPlaneContainment: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipPlaneContainment),
@@ -181642,109 +181806,103 @@ __webpack_require__.r(__webpack_exports__);
181642
181806
  /* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
181643
181807
  /* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
181644
181808
  /* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
181645
- /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
181809
+ /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.ClippedPolyfaceBuilders),
181646
181810
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
181647
- /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
181648
- /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
181649
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
181811
+ /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__.Complex),
181812
+ /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_89__.Cone),
181813
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.ConsolidateAdjacentCurvePrimitivesOptions),
181650
181814
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
181651
- /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
181815
+ /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__.ConstructCurveBetweenCurves),
181652
181816
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
181653
- /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.ConvexFacetLocationDetail),
181817
+ /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.ConvexFacetLocationDetail),
181654
181818
  /* harmony export */ ConvexPolygon2d: () => (/* reexport safe */ _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__.ConvexPolygon2d),
181655
- /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__.CoordinateXYZ),
181656
- /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveChain),
181657
- /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.CurveChainWithDistanceIndex),
181658
- /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveCollection),
181659
- /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__.CurveCurve),
181660
- /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveCurveApproachType),
181661
- /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendMode),
181662
- /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendOptions),
181663
- /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.CurveFactory),
181664
- /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveIntervalRole),
181665
- /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetail),
181666
- /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailArrayPair),
181667
- /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailPair),
181668
- /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__.CurveOps),
181669
- /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__.CurvePrimitive),
181670
- /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveSearchStatus),
181819
+ /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__.CoordinateXYZ),
181820
+ /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveChain),
181821
+ /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.CurveChainWithDistanceIndex),
181822
+ /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveCollection),
181823
+ /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__.CurveCurve),
181824
+ /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveCurveApproachType),
181825
+ /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendMode),
181826
+ /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendOptions),
181827
+ /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.CurveFactory),
181828
+ /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveIntervalRole),
181829
+ /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetail),
181830
+ /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailArrayPair),
181831
+ /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailPair),
181832
+ /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__.CurveOps),
181833
+ /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__.CurvePrimitive),
181834
+ /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveSearchStatus),
181671
181835
  /* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
181672
181836
  /* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
181673
- /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
181674
- /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
181675
- /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
181676
- /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
181677
- /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__.DirectSpiral3d),
181678
- /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
181837
+ /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__.DeepCompare),
181838
+ /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree2PowerPolynomial),
181839
+ /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree3PowerPolynomial),
181840
+ /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree4PowerPolynomial),
181841
+ /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__.DirectSpiral3d),
181842
+ /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.DuplicateFacetClusterSelector),
181679
181843
  /* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
181680
181844
  /* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
181681
- /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__.FacetFaceData),
181682
- /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.FacetIntersectOptions),
181845
+ /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__.FacetFaceData),
181846
+ /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetIntersectOptions),
181683
181847
  /* harmony export */ FrameBuilder: () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
181684
- /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.GaussMapper),
181848
+ /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.GaussMapper),
181685
181849
  /* harmony export */ GeodesicPathPoint: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
181686
181850
  /* harmony export */ GeodesicPathSolver: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
181687
181851
  /* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
181688
181852
  /* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
181689
- /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__.GeometryQuery),
181690
- /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSet),
181691
- /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__.GriddedRaggedRange2dSetWithOverflow),
181853
+ /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__.GeometryQuery),
181854
+ /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__.GriddedRaggedRange2dSet),
181855
+ /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSetWithOverflow),
181692
181856
  /* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
181693
181857
  /* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
181694
181858
  /* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
181695
181859
  /* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
181696
- /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
181697
- /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
181698
- /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
181699
- /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
181700
- /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
181860
+ /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdge),
181861
+ /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeGraph),
181862
+ /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeMask),
181863
+ /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__.IModelJson),
181864
+ /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.ImplicitLineXY),
181701
181865
  /* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
181702
- /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.IndexedPolyface),
181703
- /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceSubsetVisitor),
181704
- /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceVisitor),
181866
+ /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
181867
+ /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceSubsetVisitor),
181868
+ /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceVisitor),
181705
181869
  /* harmony export */ IndexedReadWriteXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedReadWriteXYZCollection),
181706
181870
  /* harmony export */ IndexedXYCollection: () => (/* reexport safe */ _geometry3d_IndexedXYCollection__WEBPACK_IMPORTED_MODULE_14__.IndexedXYCollection),
181707
181871
  /* harmony export */ IndexedXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedXYZCollection),
181708
181872
  /* harmony export */ IndexedXYZCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedXYZCollectionInterval),
181709
181873
  /* harmony export */ IndexedXYZCollectionPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.IndexedXYZCollectionPolygonOps),
181710
- /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__.IntegratedSpiral3d),
181711
- /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3d),
181712
- /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3dOptions),
181874
+ /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__.IntegratedSpiral3d),
181875
+ /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3d),
181876
+ /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3dOptions),
181713
181877
  /* harmony export */ InverseMatrixState: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.InverseMatrixState),
181714
- /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.JointOptions),
181715
- /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.KnotVector),
181716
- /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__.LineSegment3d),
181717
- /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.LineString3d),
181718
- /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__.LinearSweep),
181878
+ /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.JointOptions),
181879
+ /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.KnotVector),
181880
+ /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__.LineSegment3d),
181881
+ /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.LineString3d),
181882
+ /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__.LinearSweep),
181719
181883
  /* harmony export */ LongitudeLatitudeNumber: () => (/* reexport safe */ _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_2__.LongitudeLatitudeNumber),
181720
- /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.Loop),
181721
- /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.LoopCurveLoopCurve),
181884
+ /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.Loop),
181885
+ /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.LoopCurveLoopCurve),
181722
181886
  /* harmony export */ Map4d: () => (/* reexport safe */ _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__.Map4d),
181723
181887
  /* harmony export */ Matrix3d: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.Matrix3d),
181724
181888
  /* harmony export */ Matrix4d: () => (/* reexport safe */ _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__.Matrix4d),
181725
- /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.MiteredSweepOutputSelect),
181889
+ /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.MiteredSweepOutputSelect),
181726
181890
  /* harmony export */ MomentData: () => (/* reexport safe */ _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__.MomentData),
181727
- /* harmony export */ Newton1dUnbounded: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnbounded),
181728
- /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnboundedApproximateDerivative),
181729
- /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton2dUnboundedWithDerivative),
181730
- /* harmony export */ NewtonEvaluatorRRtoRRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRRtoRRD),
181731
- /* harmony export */ NewtonEvaluatorRtoR: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoR),
181732
- /* harmony export */ NewtonEvaluatorRtoRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoRD),
181733
- /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.NonConvexFacetLocationDetail),
181891
+ /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.NonConvexFacetLocationDetail),
181734
181892
  /* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
181735
181893
  /* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
181736
- /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
181737
- /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.OffsetOptions),
181894
+ /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.OffsetMeshOptions),
181895
+ /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.OffsetOptions),
181738
181896
  /* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
181739
181897
  /* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
181740
181898
  /* harmony export */ Order4Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order4Bezier),
181741
181899
  /* harmony export */ Order5Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order5Bezier),
181742
181900
  /* harmony export */ OrderedRotationAngles: () => (/* reexport safe */ _geometry3d_OrderedRotationAngles__WEBPACK_IMPORTED_MODULE_17__.OrderedRotationAngles),
181743
181901
  /* harmony export */ PackedMatrix3dOps: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.PackedMatrix3dOps),
181744
- /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__.ParityRegion),
181745
- /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__.PascalCoefficients),
181746
- /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_78__.Path),
181747
- /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.PathFragment),
181902
+ /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__.ParityRegion),
181903
+ /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__.PascalCoefficients),
181904
+ /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_77__.Path),
181905
+ /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.PathFragment),
181748
181906
  /* harmony export */ Plane3d: () => (/* reexport safe */ _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_18__.Plane3d),
181749
181907
  /* harmony export */ Plane3dByOriginAndUnitNormal: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_19__.Plane3dByOriginAndUnitNormal),
181750
181908
  /* harmony export */ Plane3dByOriginAndVectors: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_20__.Plane3dByOriginAndVectors),
@@ -181758,78 +181916,77 @@ __webpack_require__.r(__webpack_exports__);
181758
181916
  /* harmony export */ Point3dArrayPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayPolygonOps),
181759
181917
  /* harmony export */ Point4d: () => (/* reexport safe */ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__.Point4d),
181760
181918
  /* harmony export */ Point4dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point4dArray),
181761
- /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__.PointString3d),
181762
- /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.Polyface),
181763
- /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.PolyfaceAuxData),
181764
- /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
181765
- /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
181766
- /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
181767
- /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
181919
+ /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__.PointString3d),
181920
+ /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.Polyface),
181921
+ /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.PolyfaceAuxData),
181922
+ /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__.PolyfaceBuilder),
181923
+ /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.PolyfaceClip),
181924
+ /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__.PolyfaceData),
181925
+ /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.PolyfaceQuery),
181768
181926
  /* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
181769
181927
  /* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
181770
181928
  /* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
181771
181929
  /* harmony export */ PolylineOps: () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
181772
- /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.PowerPolynomial),
181773
- /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__.ProxyCurve),
181774
- /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.Quadrature),
181930
+ /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.PowerPolynomial),
181931
+ /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__.ProxyCurve),
181932
+ /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.Quadrature),
181775
181933
  /* harmony export */ Range1d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
181776
- /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.Range1dArray),
181934
+ /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.Range1dArray),
181777
181935
  /* harmony export */ Range2d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
181778
181936
  /* harmony export */ Range3d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
181779
181937
  /* harmony export */ RangeBase: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
181780
181938
  /* harmony export */ Ray2d: () => (/* reexport safe */ _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__.Ray2d),
181781
181939
  /* harmony export */ Ray3d: () => (/* reexport safe */ _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__.Ray3d),
181782
181940
  /* harmony export */ RecurseToCurvesGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.RecurseToCurvesGeometryHandler),
181783
- /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessor),
181784
- /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessorWithStack),
181785
- /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionBinaryOpType),
181786
- /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__.RegionMomentsXY),
181787
- /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionOps),
181788
- /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__.RotationalSweep),
181789
- /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__.RuledSweep),
181790
- /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
181941
+ /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessor),
181942
+ /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessorWithStack),
181943
+ /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionBinaryOpType),
181944
+ /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__.RegionMomentsXY),
181945
+ /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionOps),
181946
+ /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__.RotationalSweep),
181947
+ /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__.RuledSweep),
181948
+ /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.Sample),
181791
181949
  /* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
181792
- /* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
181793
- /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
181794
- /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
181950
+ /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SineCosinePolynomial),
181951
+ /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SmallSystem),
181795
181952
  /* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
181796
- /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__.SolidPrimitive),
181797
- /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
181798
- /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__.Sphere),
181799
- /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
181953
+ /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
181954
+ /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__.SpacePolygonTriangulation),
181955
+ /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
181956
+ /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SphereImplicit),
181800
181957
  /* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
181801
- /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
181958
+ /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.SteppedIndexFunctionFactory),
181802
181959
  /* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
181803
- /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__.StrokeCountMap),
181804
- /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__.StrokeOptions),
181805
- /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__.SweepContour),
181806
- /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
181807
- /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
181808
- /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
181809
- /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
181810
- /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__.TorusPipe),
181960
+ /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__.StrokeCountMap),
181961
+ /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__.StrokeOptions),
181962
+ /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__.SweepContour),
181963
+ /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.SweepLineStringToFacetsOptions),
181964
+ /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericConstants),
181965
+ /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericData),
181966
+ /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TorusImplicit),
181967
+ /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__.TorusPipe),
181811
181968
  /* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
181812
- /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__.TransitionSpiral3d),
181813
- /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
181969
+ /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__.TransitionSpiral3d),
181970
+ /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__.TriDiagonalSystem),
181814
181971
  /* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
181815
- /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.TriangularFacetLocationDetail),
181816
- /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
181817
- /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
181818
- /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.UVSelect),
181972
+ /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.TriangularFacetLocationDetail),
181973
+ /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__.Triangulator),
181974
+ /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TrigPolynomial),
181975
+ /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.UVSelect),
181819
181976
  /* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
181820
181977
  /* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
181821
- /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__.UnionRegion),
181978
+ /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__.UnionRegion),
181822
181979
  /* harmony export */ UnivariateBezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.UnivariateBezier),
181823
181980
  /* harmony export */ Vector2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d),
181824
181981
  /* harmony export */ Vector3d: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.Vector3d),
181825
181982
  /* harmony export */ Vector3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Vector3dArray),
181826
- /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.WeightStyle),
181983
+ /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.WeightStyle),
181827
181984
  /* harmony export */ XY: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.XY),
181828
181985
  /* harmony export */ XYAndZ: () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
181829
181986
  /* harmony export */ XYZ: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
181830
181987
  /* harmony export */ YawPitchRollAngles: () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
181831
- /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.compareRange1dLexicalLowHigh),
181832
- /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.interpolateColor)
181988
+ /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh),
181989
+ /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.interpolateColor)
181833
181990
  /* harmony export */ });
181834
181991
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
181835
181992
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -181884,83 +182041,82 @@ __webpack_require__.r(__webpack_exports__);
181884
182041
  /* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
181885
182042
  /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
181886
182043
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
181887
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
181888
- /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
181889
- /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
181890
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
181891
- /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
181892
- /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
181893
- /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
181894
- /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
181895
- /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
181896
- /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
181897
- /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
181898
- /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
181899
- /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
181900
- /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
181901
- /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
181902
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
181903
- /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
181904
- /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
181905
- /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
181906
- /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
181907
- /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
181908
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
181909
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
181910
- /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
181911
- /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
181912
- /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
181913
- /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
181914
- /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
181915
- /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
181916
- /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
181917
- /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
181918
- /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
181919
- /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
181920
- /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
181921
- /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
181922
- /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
181923
- /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
181924
- /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
181925
- /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
181926
- /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
181927
- /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
181928
- /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
181929
- /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
181930
- /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
181931
- /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
181932
- /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
181933
- /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
181934
- /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
181935
- /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
181936
- /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
181937
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
181938
- /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
181939
- /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
181940
- /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
181941
- /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
181942
- /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
181943
- /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
181944
- /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
181945
- /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
181946
- /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
181947
- /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
181948
- /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
181949
- /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
181950
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
181951
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
181952
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
181953
- /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
181954
- /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
181955
- /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
181956
- /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
181957
- /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
181958
- /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
181959
- /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
181960
- /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
181961
- /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
181962
- /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
181963
- /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
182044
+ /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
182045
+ /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
182046
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
182047
+ /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
182048
+ /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
182049
+ /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
182050
+ /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
182051
+ /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
182052
+ /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
182053
+ /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
182054
+ /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
182055
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
182056
+ /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
182057
+ /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
182058
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
182059
+ /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
182060
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
182061
+ /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
182062
+ /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
182063
+ /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
182064
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
182065
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
182066
+ /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
182067
+ /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
182068
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
182069
+ /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
182070
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
182071
+ /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
182072
+ /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
182073
+ /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
182074
+ /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
182075
+ /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
182076
+ /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
182077
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
182078
+ /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
182079
+ /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
182080
+ /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
182081
+ /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
182082
+ /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
182083
+ /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
182084
+ /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
182085
+ /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
182086
+ /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
182087
+ /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
182088
+ /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
182089
+ /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
182090
+ /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
182091
+ /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
182092
+ /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
182093
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
182094
+ /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
182095
+ /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
182096
+ /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
182097
+ /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
182098
+ /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
182099
+ /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
182100
+ /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
182101
+ /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
182102
+ /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
182103
+ /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
182104
+ /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
182105
+ /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
182106
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
182107
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
182108
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
182109
+ /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
182110
+ /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
182111
+ /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
182112
+ /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
182113
+ /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
182114
+ /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
182115
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
182116
+ /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
182117
+ /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
182118
+ /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
182119
+ /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
181964
182120
  /*---------------------------------------------------------------------------------------------
181965
182121
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
181966
182122
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -182210,8 +182366,6 @@ __webpack_require__.r(__webpack_exports__);
182210
182366
 
182211
182367
 
182212
182368
 
182213
-
182214
-
182215
182369
 
182216
182370
 
182217
182371
 
@@ -182461,13 +182615,13 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
182461
182615
  static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
182462
182616
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointB);
182463
182617
  const vectorAC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointC);
182464
- const ab = vectorAB.magnitude();
182465
- const bc = vectorAC.magnitude();
182466
- const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(ab * bc));
182618
+ const ab2 = vectorAB.magnitudeSquared();
182619
+ const ac2 = vectorAC.magnitudeSquared();
182620
+ const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
182467
182621
  if (normal) {
182468
182622
  const vectorToCenter = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.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
182469
- 0.5 * ab * ab, // vectorToCenter DOT vectorBA = 0.5 * vectorBA DOT vectorBA (Rayleigh quotient)
182470
- 0.5 * bc * bc); // vectorToCenter DOT vectorBC = 0.5 * vectorBC DOT vectorBC (Rayleigh quotient)
182623
+ 0.5 * ab2, // vectorToCenter DOT vectorAB = 0.5 * vectorAB DOT vectorAB (Rayleigh quotient)
182624
+ 0.5 * ac2);
182471
182625
  if (vectorToCenter) {
182472
182626
  const center = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(pointA.x, pointA.y, pointA.z).plus(vectorToCenter);
182473
182627
  const vectorX = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(center, pointA);
@@ -188114,6 +188268,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
188114
188268
  /**
188115
188269
  * Evaluate a point a fractional position and derivative with respect to fraction along this linestring.
188116
188270
  * * See `LineString3d` class comments for description of how fraction relates to the linestring points.
188271
+ * * At interior corners and the end point, the left derivative is returned; at the start point, the right derivative is returned.
188117
188272
  * @param fraction fractional position
188118
188273
  * @param result optional result
188119
188274
  */
@@ -194168,16 +194323,17 @@ __webpack_require__.r(__webpack_exports__);
194168
194323
  /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
194169
194324
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
194170
194325
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
194171
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194172
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194326
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194327
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194173
194328
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
194174
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194329
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
194330
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194175
194331
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
194176
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
194177
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
194332
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
194333
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
194178
194334
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
194179
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194180
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194335
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194336
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194181
194337
  /*---------------------------------------------------------------------------------------------
194182
194338
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
194183
194339
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -194199,7 +194355,8 @@ __webpack_require__.r(__webpack_exports__);
194199
194355
 
194200
194356
 
194201
194357
 
194202
- // cspell:word XYRR
194358
+
194359
+ // cspell:word XYRR currentdFdX
194203
194360
  /**
194204
194361
  * Handler class for XY close approach between _geometryB and another geometry.
194205
194362
  * * Approach means the XY distance (z is ignored) between _geometryB and another geometry.
@@ -194534,10 +194691,44 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194534
194691
  this.testAndRecordProjection(cpB, fB1, pointB1, cpA, fA0, fA1, !reversed);
194535
194692
  }
194536
194693
  }
194694
+ /**
194695
+ * Return XY closest approach between a curve primitive and a point.
194696
+ * Currently, this function only supports Arc3d and LineSegment.
194697
+ * Note that this function doesn't handle endpoints.
194698
+ */
194699
+ getPointCurveClosestApproachXYNewton(curveP, pointQ) {
194700
+ if (!(curveP instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) && !(curveP instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d)) {
194701
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"getPointCurveClosestApproachXYNewton only supports Arc3d and LineSegment");
194702
+ return undefined;
194703
+ }
194704
+ const seeds = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: arcs have up to 4 perpendiculars; lines have only 1
194705
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurvePointCloseApproachXYRtoRD(curveP, pointQ);
194706
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton1dUnbounded(newtonEvaluator);
194707
+ let minCloseApproachLength = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.largeCoordinateResult;
194708
+ let minCurvePFraction;
194709
+ let minPointP;
194710
+ for (const seed of seeds) {
194711
+ newtonSearcher.setX(seed);
194712
+ if (newtonSearcher.runIterations()) {
194713
+ const curvePFraction = newtonSearcher.getX();
194714
+ if (this.acceptFraction(curvePFraction)) {
194715
+ const pointP = curveP.fractionToPoint(curvePFraction);
194716
+ const closeApproachLength = pointP.distanceSquaredXY(pointQ);
194717
+ if (closeApproachLength < minCloseApproachLength) {
194718
+ minCloseApproachLength = closeApproachLength;
194719
+ minCurvePFraction = curvePFraction;
194720
+ minPointP = pointP;
194721
+ }
194722
+ }
194723
+ }
194724
+ }
194725
+ if (minCurvePFraction && minPointP)
194726
+ return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(curveP, minCurvePFraction, minPointP);
194727
+ return undefined;
194728
+ }
194537
194729
  /** Find the closest approach between pointA and cpB. Add the approach if it's within fB0 and fB1. */
194538
194730
  testAndRecordProjection(cpA, fA, pointA, cpB, fB0, fB1, reversed) {
194539
- // NO NO NO -- this is 3D closest point --- need 2d !!
194540
- const detail = cpB.closestPoint(pointA, false);
194731
+ const detail = this.getPointCurveClosestApproachXYNewton(cpB, pointA);
194541
194732
  if (detail) {
194542
194733
  const fB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.restrictToInterval(detail.fraction, fB0, fB1);
194543
194734
  if (fB === detail.fraction) { // if fraction is within fB0 and fB1
@@ -194566,13 +194757,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194566
194757
  this.computeSegmentSegment3D(cpA, pointA0, fractionA0, pointA1, fractionA1, cpB, pointB0, fractionB0, pointB1, fractionB1, reversed);
194567
194758
  }
194568
194759
  /**
194569
- * Low level dispatch of segment with arc.
194760
+ * Low level dispatch of line segment with arc.
194570
194761
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
194571
194762
  * To consider:
194572
194763
  * 1) intersection between arc and segment.
194573
- * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
194574
- * 3) line parallel to arc tangent.
194575
- * @param cpA curve A (line segment or line string)
194764
+ * 2) endpoints to endpoints or endpoints projection to the other curve.
194765
+ * 3) arc tangent parallel to line segment (or line string).
194766
+ * @param cpA curve A (line segment or line string; if it is a line string, then the fractions must specify a segment)
194576
194767
  * @param pointA0 start point of the segment
194577
194768
  * @param fractionA0 fraction of the start of the segment
194578
194769
  * @param pointA1 end point of the segment
@@ -194581,7 +194772,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194581
194772
  * @param reversed whether to reverse the details in the pair (e.g., so that detailB refers to geometryB).
194582
194773
  */
194583
194774
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
194584
- // 1) intersection between arc and segment
194775
+ // 1) intersection between arc and line segment (or string).
194585
194776
  // Suppose:
194586
194777
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
194587
194778
  // Line: contains points A0 and A1
@@ -194597,15 +194788,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194597
194788
  const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1); // det(A0, A1, C)
194598
194789
  const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0); // det(A0, A1, U)
194599
194790
  const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0); // det(A0, A1, V)
194600
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194601
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194602
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194603
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
194791
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194792
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194793
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194794
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
194604
194795
  alpha, beta, gamma, cosines, sines, radians);
194605
194796
  for (let i = 0; i < numRoots; i++) {
194606
194797
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
194607
194798
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
194608
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194799
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194609
194800
  // only add if the point is within the start and end fractions of both line segment and arc
194610
194801
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
194611
194802
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
@@ -194614,9 +194805,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194614
194805
  }
194615
194806
  if (intersectionFound)
194616
194807
  return;
194617
- // 2) endpoints to endpoints or endpoints projection to the other curve
194618
- this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
194619
- // 3) line parallel to arc tangent.
194808
+ // 2) endpoints to endpoints or endpoints projection to the other curve.
194809
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, true, reversed);
194810
+ // 3) arc tangent parallel to line segment (or string).
194620
194811
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
194621
194812
  // point where the tangent line on arc at that point is parallel to the line.
194622
194813
  const dotUT = data.vector0.crossProductStartEndXY(pointA0, pointA1);
@@ -194625,94 +194816,71 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194625
194816
  for (const radians1 of [parallelRadians, parallelRadians + Math.PI]) {
194626
194817
  const arcPoint = data.center.plus2Scaled(data.vector0, Math.cos(radians1), data.vector90, Math.sin(radians1));
194627
194818
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians1);
194628
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194819
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194629
194820
  // only add if the point is within the start and end fractions of both line segment and arc
194630
194821
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
194631
194822
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
194632
194823
  }
194633
194824
  }
194634
194825
  }
194635
- /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
194636
- dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
194637
- const c = cpA.center.distance(cpB.center);
194638
- const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance;
194639
- if (c > radiusA + radiusB + e) // distance between circles is more than max distance
194640
- return;
194641
- // TODO: 1) intersection between arcs
194642
- // 2) endpoints to endpoints
194643
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
194644
- // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
194645
- if (!_Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isSmallMetricDistance(c)) {
194646
- const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(cpA.center, cpB.center);
194647
- vectorAB.scaleInPlace(1.0 / c);
194648
- for (const rA of [-radiusA, radiusA]) {
194649
- for (const rB of [-radiusB, radiusB]) {
194650
- const tangentDistance = c - rA + rB;
194651
- if (tangentDistance < e) {
194652
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
194653
- if (detailA) {
194654
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
194655
- if (detailB)
194656
- this.captureDetailPair(detailA, detailB, reversed);
194657
- }
194826
+ /** Solve Newton for 2 arcs and the given newtonEvaluator. */
194827
+ solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator) {
194828
+ const seedsU = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: 2 arcs have up to 4 perpendiculars/intersections
194829
+ const seedsV = [0.2, 0.4, 0.6, 0.8];
194830
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton2dUnboundedWithDerivative(newtonEvaluator);
194831
+ for (const seedU of seedsU) {
194832
+ for (const seedV of seedsV) {
194833
+ newtonSearcher.setUV(seedU, seedV);
194834
+ if (newtonSearcher.runIterations()) {
194835
+ const curvePFraction = newtonSearcher.getU();
194836
+ const curveQFraction = newtonSearcher.getV();
194837
+ if (this.acceptFraction(curvePFraction) && this.acceptFraction(curveQFraction)) {
194838
+ this.recordPointWithLocalFractions(curvePFraction, curveP, 0, 1, curveQFraction, curveQ, 0, 1, reversed);
194658
194839
  }
194659
194840
  }
194660
194841
  }
194661
194842
  }
194662
194843
  }
194663
- /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
194664
- resolveDirectionToArcXYFraction(arc, radialVector, scale) {
194665
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
194666
- const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
194667
- const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
194668
- const radians = Math.atan2(s, c);
194669
- const fraction = arc.sweep.radiansToPositivePeriodicFraction(radians, 0);
194670
- if (fraction < 1.0)
194671
- return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
194672
- return undefined;
194844
+ /** Find and store perpendicular line between 2 arcs. */
194845
+ findPerpLineXYArcArcNewton(curveP, curveQ, reversed) {
194846
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurveCurveCloseApproachXYRRtoRRD(curveP, curveQ);
194847
+ this.solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator);
194673
194848
  }
194674
- /** Low level dispatch of arc with arc. Only circular arcs are supported. */
194849
+ /** Low level dispatch of arc with Arc3d. */
194675
194850
  dispatchArcArc(cpA, cpB, reversed) {
194676
194851
  const rangeA = cpA.range();
194677
194852
  const rangeB = cpB.range();
194678
194853
  rangeA.expandInPlace(this._maxDistanceToAccept);
194679
194854
  if (!rangeB.intersectsRangeXY(rangeA))
194680
194855
  return;
194681
- if (this._circularArcB) {
194682
- const radiusB = this._circularRadiusB;
194683
- const radiusA = cpA.circularRadiusXY();
194684
- if (radiusA !== undefined) {
194685
- if (radiusA >= radiusB)
194686
- this.dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed);
194687
- else
194688
- this.dispatchCircularCircularOrdered(cpB, radiusB, cpA, radiusA, !reversed);
194689
- return;
194690
- }
194691
- }
194856
+ // 1) endpoints to endpoints or endpoints projection to the other curve
194857
+ this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, cpB, 0, 1, true, reversed);
194858
+ // 2) perpendicular line between 2 arcs (includes intersections)
194859
+ this.findPerpLineXYArcArcNewton(cpA, cpB, reversed);
194692
194860
  }
194693
194861
  /** Low level dispatch of arc with (beziers of) a bspline curve */
194694
194862
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
194695
- const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194863
+ const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194696
194864
  cpB.emitStrokes(ls);
194697
194865
  this.computeArcLineString(cpA, ls, reversed);
194698
194866
  }
194699
194867
  /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
194700
194868
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
194701
- const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194869
+ const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194702
194870
  bcurveA.emitStrokes(lsA);
194703
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194871
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194704
194872
  bcurveB.emitStrokes(lsB);
194705
194873
  this.computeLineStringLineString(lsA, lsB, reversed);
194706
194874
  }
194707
194875
  /** Low level dispatch of linestring with (beziers of) a bspline curve */
194708
194876
  dispatchLineStringBSplineCurve(lsA, curveB, reversed) {
194709
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194877
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194710
194878
  curveB.emitStrokes(lsB);
194711
194879
  this.computeLineStringLineString(lsA, lsB, reversed);
194712
194880
  }
194713
194881
  /** Low level dispatch of segment with (beziers of) a bspline curve */
194714
194882
  dispatchSegmentBsplineCurve(segA, curveB, reversed) {
194715
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194883
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194716
194884
  curveB.emitStrokes(lsB);
194717
194885
  this.computeSegmentLineString(segA, lsB, reversed);
194718
194886
  }
@@ -194759,7 +194927,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194759
194927
  /** Low level dispatch of curve collection. */
194760
194928
  dispatchCurveCollection(geomA, geomAHandler) {
194761
194929
  const geomB = this._geometryB; // save
194762
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection))
194930
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection))
194763
194931
  return;
194764
194932
  for (const child of geomB.children) {
194765
194933
  this.resetGeometry(child);
@@ -194769,9 +194937,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194769
194937
  }
194770
194938
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
194771
194939
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
194772
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
194940
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
194773
194941
  return;
194774
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194942
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194775
194943
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
194776
194944
  return;
194777
194945
  }
@@ -194782,15 +194950,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194782
194950
  geomAHandler(geomA);
194783
194951
  }
194784
194952
  this.resetGeometry(geomB); // restore
194785
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
194953
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
194786
194954
  }
194787
194955
  /** Double dispatch handler for strongly typed segment. */
194788
194956
  handleLineSegment3d(segmentA) {
194789
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
194957
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194790
194958
  const segmentB = this._geometryB;
194791
194959
  this.dispatchSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
194792
194960
  }
194793
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
194961
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194794
194962
  this.computeSegmentLineString(segmentA, this._geometryB, false);
194795
194963
  }
194796
194964
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194799,10 +194967,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194799
194967
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194800
194968
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
194801
194969
  }
194802
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
194970
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194803
194971
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
194804
194972
  }
194805
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194973
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194806
194974
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
194807
194975
  }
194808
194976
  return undefined;
@@ -194885,11 +195053,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194885
195053
  }
194886
195054
  /** Double dispatch handler for strongly typed linestring. */
194887
195055
  handleLineString3d(lsA) {
194888
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
195056
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194889
195057
  const lsB = this._geometryB;
194890
195058
  this.computeLineStringLineString(lsA, lsB, false);
194891
195059
  }
194892
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195060
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194893
195061
  this.computeSegmentLineString(this._geometryB, lsA, true);
194894
195062
  }
194895
195063
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194898,20 +195066,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194898
195066
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194899
195067
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
194900
195068
  }
194901
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
195069
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194902
195070
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
194903
195071
  }
194904
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
195072
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194905
195073
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
194906
195074
  }
194907
195075
  return undefined;
194908
195076
  }
194909
195077
  /** Double dispatch handler for strongly typed arc. */
194910
195078
  handleArc3d(arc0) {
194911
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195079
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194912
195080
  this.dispatchSegmentArc(this._geometryB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, arc0, true);
194913
195081
  }
194914
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
195082
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194915
195083
  this.computeArcLineString(arc0, this._geometryB, false);
194916
195084
  }
194917
195085
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194920,20 +195088,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194920
195088
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194921
195089
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
194922
195090
  }
194923
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
195091
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194924
195092
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
194925
195093
  }
194926
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
195094
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194927
195095
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
194928
195096
  }
194929
195097
  return undefined;
194930
195098
  }
194931
195099
  /** Double dispatch handler for strongly typed bspline curve. */
194932
195100
  handleBSplineCurve3d(curve) {
194933
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195101
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194934
195102
  this.dispatchSegmentBsplineCurve(this._geometryB, curve, true);
194935
195103
  }
194936
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
195104
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194937
195105
  this.dispatchLineStringBSplineCurve(this._geometryB, curve, true);
194938
195106
  }
194939
195107
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194942,10 +195110,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194942
195110
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
194943
195111
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
194944
195112
  }
194945
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
195113
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194946
195114
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
194947
195115
  }
194948
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
195116
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194949
195117
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
194950
195118
  }
194951
195119
  return undefined;
@@ -194954,7 +195122,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194954
195122
  handleCurveChainWithDistanceIndex(chain) {
194955
195123
  super.handleCurveChainWithDistanceIndex(chain);
194956
195124
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
194957
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
195125
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
194958
195126
  }
194959
195127
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
194960
195128
  handleBSplineCurve3dH(_curve) {
@@ -194974,11 +195142,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194974
195142
  return undefined;
194975
195143
  }
194976
195144
  }
194977
- CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194978
- CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194979
- CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194980
- CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194981
- CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
195145
+ CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
195146
+ CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
195147
+ CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
195148
+ CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
195149
+ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194982
195150
 
194983
195151
 
194984
195152
 
@@ -194993,29 +195161,27 @@ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMP
194993
195161
  "use strict";
194994
195162
  __webpack_require__.r(__webpack_exports__);
194995
195163
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
194996
- /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* binding */ BezierBezierIntersectionXYRRToRRD),
194997
195164
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
194998
195165
  /* harmony export */ });
194999
195166
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
195000
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195001
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195002
- /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
195003
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195004
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
195005
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
195006
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195007
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195008
- /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
195009
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
195010
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
195011
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
195012
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195013
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195014
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
195015
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
195016
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195017
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195018
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195167
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195168
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195169
+ /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
195170
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195171
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
195172
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
195173
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195174
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195175
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
195176
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
195177
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
195178
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195179
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195180
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
195181
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
195182
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195183
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195184
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195019
195185
  /*---------------------------------------------------------------------------------------------
195020
195186
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
195021
195187
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -195042,35 +195208,14 @@ __webpack_require__.r(__webpack_exports__);
195042
195208
 
195043
195209
 
195044
195210
 
195045
-
195046
195211
  // cspell:word XYRR
195047
- /**
195048
- * Private class for refining bezier-bezier intersections.
195049
- * * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
195050
- * @internal
195051
- */
195052
- class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.NewtonEvaluatorRRtoRRD {
195053
- constructor(curveA, curveB) {
195054
- super();
195055
- this._curveA = curveA;
195056
- this._curveB = curveB;
195057
- this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
195058
- this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
195059
- }
195060
- evaluate(fractionA, fractionB) {
195061
- this._curveA.fractionToPointAndDerivative(fractionA, this._rayA);
195062
- this._curveB.fractionToPointAndDerivative(fractionB, this._rayB);
195063
- this.currentF.setOriginAndVectorsXYZ(this._rayB.origin.x - this._rayA.origin.x, this._rayB.origin.y - this._rayA.origin.y, 0.0, -this._rayA.direction.x, -this._rayA.direction.y, 0.0, this._rayB.direction.x, this._rayB.direction.y, 0.0);
195064
- return true;
195065
- }
195066
- }
195067
195212
  /**
195068
195213
  * Handler class for XY intersections between _geometryB and another geometry.
195069
195214
  * * Instances are initialized and called from CurveCurve.
195070
195215
  * * geometryB is saved for later reference.
195071
195216
  * @internal
195072
195217
  */
195073
- class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.RecurseToCurvesGeometryHandler {
195218
+ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.RecurseToCurvesGeometryHandler {
195074
195219
  /**
195075
195220
  * The constructor.
195076
195221
  * @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
@@ -195079,7 +195224,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195079
195224
  * @param extendB flag for extension of geometryB.
195080
195225
  * @param tolerance optional distance tolerance for coincidence.
195081
195226
  */
195082
- constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
195227
+ constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
195083
195228
  super();
195084
195229
  this._extendA = extendA;
195085
195230
  this._geometryB = geometryB;
@@ -195091,7 +195236,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195091
195236
  if (!this._worldToLocalAffine)
195092
195237
  this._worldToLocalPerspective = worldToLocal.clone();
195093
195238
  }
195094
- this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__.CoincidentGeometryQuery.create(tolerance);
195239
+ this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__.CoincidentGeometryQuery.create(tolerance);
195095
195240
  this._results = [];
195096
195241
  }
195097
195242
  /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
@@ -195106,12 +195251,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195106
195251
  return true;
195107
195252
  }
195108
195253
  /** Test the fraction by strict parameter, but allow toleranced distance test at ends. */
195109
- acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
195254
+ acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
195110
195255
  if (!extend0 && fraction < 0) {
195111
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
195256
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
195112
195257
  }
195113
195258
  else if (!extend1 && fraction > 1.0)
195114
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
195259
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
195115
195260
  return true;
195116
195261
  }
195117
195262
  /**
@@ -195144,14 +195289,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195144
195289
  intervalDetails.detailA.hasFraction1 &&
195145
195290
  intervalDetails.detailB.hasFraction1;
195146
195291
  if (isInterval) {
195147
- globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
195148
- globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
195149
- globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
195150
- globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
195292
+ globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
195293
+ globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
195294
+ globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
195295
+ globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
195151
195296
  }
195152
195297
  else {
195153
- globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195154
- globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195298
+ globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195299
+ globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195155
195300
  }
195156
195301
  // ignore duplicate of most recent pair
195157
195302
  const numPrevious = this._results.length;
@@ -195169,21 +195314,21 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195169
195314
  return;
195170
195315
  }
195171
195316
  }
195172
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
195173
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
195317
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
195318
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
195174
195319
  if (isInterval) {
195175
195320
  detailA.captureFraction1Point1(globalFractionA1, cpA.fractionToPoint(globalFractionA1));
195176
195321
  detailB.captureFraction1Point1(globalFractionB1, cpB.fractionToPoint(globalFractionB1));
195177
195322
  }
195178
195323
  else {
195179
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
195180
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
195324
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
195325
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
195181
195326
  }
195182
195327
  if (reversed) {
195183
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailB, detailA));
195328
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailB, detailA));
195184
195329
  }
195185
195330
  else {
195186
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailA, detailB));
195331
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailA, detailB));
195187
195332
  }
195188
195333
  }
195189
195334
  /**
@@ -195213,7 +195358,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195213
195358
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
195214
195359
  }
195215
195360
  }
195216
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
195361
+ else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
195217
195362
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
195218
195363
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
195219
195364
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -195233,7 +195378,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195233
195378
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
195234
195379
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
195235
195380
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
195236
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
195381
+ const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
195237
195382
  if (fractionAB !== undefined) {
195238
195383
  const fractionA = fractionAB.x;
195239
195384
  const fractionB = fractionAB.y;
@@ -195276,17 +195421,17 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195276
195421
  const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
195277
195422
  const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
195278
195423
  const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
195279
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
195280
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
195281
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
195282
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195283
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195284
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195285
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195424
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
195425
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
195426
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
195427
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195428
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195429
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195430
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195286
195431
  for (let i = 0; i < numRoots; i++) {
195287
195432
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
195288
195433
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
195289
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
195434
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
195290
195435
  if (lineFraction !== undefined &&
195291
195436
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
195292
195437
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -195302,19 +195447,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195302
195447
  pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
195303
195448
  pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
195304
195449
  }
195305
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
195306
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
195307
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
195308
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195309
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195310
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195311
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195450
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
195451
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
195452
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
195453
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195454
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195455
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195456
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195312
195457
  const lineFractionTol = 1.0e-10;
195313
195458
  const arcFractionTol = 1.0e-7;
195314
195459
  for (let i = 0; i < numRoots; i++) {
195315
195460
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
195316
195461
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
195317
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
195462
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
195318
195463
  if (lineFraction !== undefined &&
195319
195464
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
195320
195465
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -195323,65 +195468,66 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195323
195468
  }
195324
195469
  }
195325
195470
  }
195326
- // Caller accesses data from two arcs.
195327
- // Each matrix has [U V C] in (x,y,w) form from projection.
195328
- // Invert the projection matrix matrixA.
195329
- // Apply the inverse to matrixB. Then arc b is an ellipse in the circular space of A.
195330
- dispatchArcArcThisOrder(cpA, matrixA, // homogeneous xyw projection !!!
195331
- extendA, cpB, matrixB, // homogeneous xyw projection !!!
195332
- extendB, reversed) {
195471
+ /**
195472
+ * Compute the intersection of two xy-arcs.
195473
+ * * Each matrix has [U V C] in (x,y,w) form from homogeneous projection (local to world).
195474
+ * * Arcs are ordered so that matrixA is better conditioned.
195475
+ */
195476
+ dispatchArcArcThisOrder(cpA, // arc closer to being circular
195477
+ matrixA, extendA, cpB, matrixB, extendB, reversed) {
195478
+ // inverseA transforms arcA to its local coordinates, where it is the unit xy-circle.
195333
195479
  const inverseA = matrixA.inverse();
195334
195480
  if (inverseA) {
195335
- const localB = inverseA.multiplyMatrixMatrix(matrixB); // localB->localA transform
195481
+ // localB defines the arc formed by transforming arcB into the local coordinates of arcA
195482
+ const localB = inverseA.multiplyMatrixMatrix(matrixB);
195336
195483
  const ellipseRadians = [];
195337
195484
  const circleRadians = [];
195338
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
195485
+ // find the intersection of the transformed arcs
195486
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
195339
195487
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
195340
195488
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
195341
195489
  ellipseRadians, circleRadians);
195490
+ // the intersections are transform-invariant, so the solution angles apply directly to the input arcs
195342
195491
  for (let i = 0; i < ellipseRadians.length; i++) {
195343
195492
  const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
195344
195493
  const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
195345
- // hm .. do we really need to check the fractions? We know they are internal to the beziers
195346
195494
  if (this.acceptFraction(extendA, fractionA, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
195347
195495
  this.recordPointWithLocalFractions(fractionA, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
195348
195496
  }
195349
195497
  }
195350
195498
  }
195351
195499
  }
195352
- // Caller accesses data from two arcs.
195353
- // Selects the best conditioned arc (in xy parts) as "circle after inversion".
195354
- // Solves the arc-arc equations.
195500
+ /**
195501
+ * We have 2 xy-arcs.
195502
+ * 1- We pick the arc that is closest to circular (larger condition number is closer to circular).
195503
+ * 2- Transform it to local coords, where it becomes the unit xy-circle.
195504
+ * 3- Use the same map to transform the other arc.
195505
+ * 4- Find the intersection of arc and unit circle.
195506
+ * 5- Convert intersection angles to fractions and record intersections.
195507
+ */
195355
195508
  dispatchArcArc(cpA, extendA, cpB, extendB, reversed) {
195356
- // Arc: X = C + cU + sV
195357
- // Line: contains points A0,A1
195358
- // Arc point colinear with line if det (A0, A1, X) = 0
195359
- // with homogeneous xyw points and vectors.
195360
- // With equational X: det (A0, A1, C) + c det (A0, A1, U) + s det (A0, A1, V) = 0.
195361
- // solve for theta.
195362
- // evaluate points.
195363
- // project back to line.
195364
195509
  let matrixA;
195365
195510
  let matrixB;
195366
195511
  if (this._worldToLocalPerspective) {
195367
195512
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
195368
195513
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
195369
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195370
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
195514
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195515
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
195371
195516
  }
195372
195517
  else {
195373
195518
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
195374
195519
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
195375
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195376
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
195520
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195521
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
195377
195522
  }
195378
195523
  const conditionA = matrixA.conditionNumber();
195379
195524
  const conditionB = matrixB.conditionNumber();
195525
+ // pick the arc that is closest to circular.
195380
195526
  if (conditionA > conditionB)
195381
195527
  this.dispatchArcArcThisOrder(cpA, matrixA, extendA, cpB, matrixB, extendB, reversed);
195382
195528
  else
195383
195529
  this.dispatchArcArcThisOrder(cpB, matrixB, extendB, cpA, matrixA, extendA, !reversed);
195384
- // overlap handling .. perspective is not handled . . .
195530
+ // overlap handling. perspective is not handled.
195385
195531
  if (!this._coincidentGeometryContext) {
195386
195532
  // do nothing
195387
195533
  }
@@ -195403,11 +195549,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195403
195549
  let matrixA;
195404
195550
  if (this._worldToLocalPerspective) {
195405
195551
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
195406
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195552
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195407
195553
  }
195408
195554
  else {
195409
195555
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
195410
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195556
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195411
195557
  }
195412
195558
  // The worldToLocal has moved the arc vectors into local space.
195413
195559
  // matrixA captures the xyw parts (ignoring z)
@@ -195418,7 +195564,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195418
195564
  const orderF = cpB.order; // order of the beziers for simple coordinates
195419
195565
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
195420
195566
  const coffF = new Float64Array(orderF);
195421
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderG);
195567
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderG);
195422
195568
  const axx = matrixAInverse.at(0, 0);
195423
195569
  const axy = matrixAInverse.at(0, 1);
195424
195570
  const axz = 0.0;
@@ -195489,13 +195635,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195489
195635
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
195490
195636
  reversed) {
195491
195637
  if (!this._xyzwA0)
195492
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195638
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195493
195639
  if (!this._xyzwA1)
195494
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195640
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195495
195641
  if (!this._xyzwPlane)
195496
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195642
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195497
195643
  if (!this._xyzwB)
195498
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195644
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195499
195645
  /*
195500
195646
  const roots = univariateBezierG.roots(0.0, true);
195501
195647
  if (roots) {
@@ -195521,7 +195667,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195521
195667
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
195522
195668
  f1 = i * df;
195523
195669
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
195524
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195670
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195525
195671
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
195526
195672
  let errors = 0;
195527
195673
  const roots = univariateBezierB.roots(0.0, true);
@@ -195529,35 +195675,22 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195529
195675
  for (const r of roots) {
195530
195676
  let bezierBFraction = r;
195531
195677
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
195532
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195533
- if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195534
- let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(f0, segmentAFraction, f1);
195535
- const xyMatchingFunction = new BezierBezierIntersectionXYRRToRRD(bezierA, bezierB);
195536
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195678
+ const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195679
+ if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195680
+ let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(f0, segmentAFraction, f1);
195681
+ // We have a near intersection at fractions on the two beziers
195682
+ // Iterate on the curves for a true intersection
195683
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
195684
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195537
195685
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
195538
195686
  if (newtonSearcher.runIterations()) {
195539
195687
  bezierAFraction = newtonSearcher.getU();
195540
195688
  bezierBFraction = newtonSearcher.getV();
195541
195689
  }
195542
- // We have a near intersection at fractions on the two beziers !!!
195543
- // Iterate on the curves for a true intersection ....
195544
- // NEEDS WORK -- just accept . . .
195545
195690
  const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
195546
195691
  const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
195547
- const xyzA0 = bezierA.fractionToPoint(bezierAFraction);
195548
- const xyzA1 = bcurveA.fractionToPoint(bcurveAFraction);
195549
- const xyzB0 = bezierB.fractionToPoint(bezierBFraction);
195550
- const xyzB1 = bcurveB.fractionToPoint(bcurveBFraction);
195551
- if (!xyzA0.isAlmostEqualXY(xyzA1))
195552
- errors++;
195553
- if (!xyzB0.isAlmostEqualXY(xyzB1))
195554
- errors++;
195555
- if (errors > 0 && !xyzA0.isAlmostEqual(xyzB0))
195556
- errors++;
195557
- if (errors > 0 && !xyzA1.isAlmostEqual(xyzB1))
195558
- errors++;
195559
- if (this.acceptFraction(false, bcurveAFraction, false) &&
195560
- this.acceptFraction(false, bcurveBFraction, false)) {
195692
+ if (false) {}
195693
+ if (this.acceptFraction(false, bcurveAFraction, false) && this.acceptFraction(false, bcurveBFraction, false)) {
195561
195694
  this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
195562
195695
  }
195563
195696
  }
@@ -195576,8 +195709,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195576
195709
  const rangeB = this.getRanges(bezierSpanB);
195577
195710
  const orderA = bcurveA.order;
195578
195711
  const orderB = bcurveB.order;
195579
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderA);
195580
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderB);
195712
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderA);
195713
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderB);
195581
195714
  for (let a = 0; a < numA; a++) {
195582
195715
  for (let b = 0; b < numB; b++) {
195583
195716
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -195601,7 +195734,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195601
195734
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
195602
195735
  if (this._worldToLocalAffine)
195603
195736
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
195604
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createFromPointAndWeight(xyz, w);
195737
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createFromPointAndWeight(xyz, w);
195605
195738
  }
195606
195739
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
195607
195740
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -195625,7 +195758,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195625
195758
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB, reversed) {
195626
195759
  const pointA0H = this.projectPoint(pointA0);
195627
195760
  const pointA1H = this.projectPoint(pointA1);
195628
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195761
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195629
195762
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
195630
195763
  // NOW .. we have a plane in world space. Intersect it with the bspline:
195631
195764
  const intersections = [];
@@ -195637,7 +195770,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195637
195770
  const fractionB = detail.fraction;
195638
195771
  const curvePoint = detail.point;
195639
195772
  const curvePointH = this.projectPoint(curvePoint);
195640
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195773
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195641
195774
  if (lineFraction !== undefined) {
195642
195775
  if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB, fractionB, extendB)) {
195643
195776
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
@@ -195745,7 +195878,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195745
195878
  /** Low level dispatch of curve collection. */
195746
195879
  dispatchCurveCollection(geomA, geomAHandler) {
195747
195880
  const geomB = this._geometryB; // save
195748
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
195881
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
195749
195882
  return;
195750
195883
  for (const child of geomB.children) {
195751
195884
  this.resetGeometry(child);
@@ -195753,11 +195886,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195753
195886
  }
195754
195887
  this._geometryB = geomB; // restore
195755
195888
  }
195756
- /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
195889
+ /** Low level dispatch of CurveChainWithDistanceIndex. */
195757
195890
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
195758
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex))
195891
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
195759
195892
  return;
195760
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195893
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195761
195894
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
195762
195895
  return;
195763
195896
  }
@@ -195768,94 +195901,94 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195768
195901
  geomAHandler(geomA);
195769
195902
  }
195770
195903
  this.resetGeometry(geomB); // restore
195771
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
195904
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
195772
195905
  }
195773
195906
  /** Double dispatch handler for strongly typed segment. */
195774
195907
  handleLineSegment3d(segmentA) {
195775
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195908
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195776
195909
  const segmentB = this._geometryB;
195777
195910
  this.dispatchSegmentSegment(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, segmentB, this._extendB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB, false);
195778
195911
  }
195779
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195912
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195780
195913
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
195781
195914
  }
195782
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195915
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195783
195916
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
195784
195917
  }
195785
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195918
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195786
195919
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
195787
195920
  }
195788
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195921
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195789
195922
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
195790
195923
  }
195791
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195924
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195792
195925
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
195793
195926
  }
195794
195927
  return undefined;
195795
195928
  }
195796
195929
  /** Double dispatch handler for strongly typed linestring. */
195797
195930
  handleLineString3d(lsA) {
195798
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195931
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195799
195932
  const lsB = this._geometryB;
195800
195933
  this.computeLineStringLineString(lsA, lsB, false);
195801
195934
  }
195802
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195935
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195803
195936
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195804
195937
  }
195805
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195938
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195806
195939
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195807
195940
  }
195808
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195941
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195809
195942
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
195810
195943
  }
195811
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195944
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195812
195945
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
195813
195946
  }
195814
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195947
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195815
195948
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
195816
195949
  }
195817
195950
  return undefined;
195818
195951
  }
195819
195952
  /** Double dispatch handler for strongly typed arc. */
195820
195953
  handleArc3d(arc0) {
195821
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195954
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195822
195955
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
195823
195956
  }
195824
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195957
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195825
195958
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
195826
195959
  }
195827
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195960
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195828
195961
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
195829
195962
  }
195830
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195963
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195831
195964
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
195832
195965
  }
195833
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195966
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195834
195967
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
195835
195968
  }
195836
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195969
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195837
195970
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
195838
195971
  }
195839
195972
  return undefined;
195840
195973
  }
195841
195974
  /** Double dispatch handler for strongly typed bspline curve. */
195842
195975
  handleBSplineCurve3d(curve) {
195843
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195976
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195844
195977
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
195845
195978
  }
195846
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195979
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195847
195980
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
195848
195981
  }
195849
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195982
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195850
195983
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
195851
195984
  }
195852
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
195985
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3dBase) {
195853
195986
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
195854
195987
  }
195855
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195988
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195856
195989
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
195857
195990
  }
195858
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195991
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195859
195992
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
195860
195993
  }
195861
195994
  return undefined;
@@ -195864,7 +195997,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195864
195997
  handleCurveChainWithDistanceIndex(chain) {
195865
195998
  super.handleCurveChainWithDistanceIndex(chain);
195866
195999
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
195867
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
196000
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
195868
196001
  }
195869
196002
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
195870
196003
  handleBSplineCurve3dH(_curve) {
@@ -195884,19 +196017,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195884
196017
  return undefined;
195885
196018
  }
195886
196019
  }
195887
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__.Vector2d.create();
195888
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195889
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195890
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195891
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195892
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195893
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195894
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195895
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195896
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195897
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195898
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195899
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
196020
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__.Vector2d.create();
196021
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
196022
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
196023
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
196024
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
196025
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196026
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196027
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196028
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196029
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196030
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196031
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
196032
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195900
196033
 
195901
196034
 
195902
196035
 
@@ -196075,11 +196208,12 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
196075
196208
  return undefined;
196076
196209
  }
196077
196210
  // Caller accesses data from a linestring or segment and passes it here.
196078
- // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
196211
+ // The line in question might be (a) a full line segment or (b) a fragment within a linestring.
196079
196212
  // The fraction and extend parameters allow all combinations to be passed in.
196080
196213
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
196081
196214
  const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(pointA0, pointA1);
196082
- const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, 0.94, arc.perpendicularVector, arc.vector0);
196215
+ const cosValue = 0.94; // cosine of 20 degrees
196216
+ const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, cosValue, arc.perpendicularVector, arc.vector0);
196083
196217
  if (plane !== undefined) {
196084
196218
  const candidates = [];
196085
196219
  arc.appendPlaneIntersectionPoints(plane, candidates);
@@ -226045,6 +226179,9 @@ class ConvexPolygon2d {
226045
226179
  __webpack_require__.r(__webpack_exports__);
226046
226180
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
226047
226181
  /* harmony export */ AbstractNewtonIterator: () => (/* binding */ AbstractNewtonIterator),
226182
+ /* harmony export */ CurveCurveCloseApproachXYRRtoRRD: () => (/* binding */ CurveCurveCloseApproachXYRRtoRRD),
226183
+ /* harmony export */ CurveCurveIntersectionXYRRToRRD: () => (/* binding */ CurveCurveIntersectionXYRRToRRD),
226184
+ /* harmony export */ CurvePointCloseApproachXYRtoRD: () => (/* binding */ CurvePointCloseApproachXYRtoRD),
226048
226185
  /* harmony export */ Newton1dUnbounded: () => (/* binding */ Newton1dUnbounded),
226049
226186
  /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* binding */ Newton1dUnboundedApproximateDerivative),
226050
226187
  /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* binding */ Newton2dUnboundedWithDerivative),
@@ -226056,6 +226193,7 @@ __webpack_require__.r(__webpack_exports__);
226056
226193
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
226057
226194
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
226058
226195
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
226196
+ /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
226059
226197
  /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
226060
226198
  /*---------------------------------------------------------------------------------------------
226061
226199
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -226068,7 +226206,8 @@ __webpack_require__.r(__webpack_exports__);
226068
226206
 
226069
226207
 
226070
226208
 
226071
- // cspell:word currentdFdX
226209
+
226210
+ // cspell:word currentdFdX XYRR
226072
226211
  /**
226073
226212
  * Base class for Newton iterations in various dimensions.
226074
226213
  * Dimension-specific classes carry all dimension-related data and answer generalized queries from this base class.
@@ -226122,6 +226261,7 @@ class AbstractNewtonIterator {
226122
226261
  this.numIterations = 0;
226123
226262
  while (this.numIterations++ < this._maxIterations && this.computeStep()) {
226124
226263
  if (this.testConvergence(this.currentStepSize()) && this.applyCurrentStep(true)) {
226264
+ // console.log("iter: " + this.numIterations); // print number of Newton iterations for debug
226125
226265
  return true;
226126
226266
  }
226127
226267
  this.applyCurrentStep(false);
@@ -226171,7 +226311,7 @@ class Newton1dUnbounded extends AbstractNewtonIterator {
226171
226311
  // console.log(this._currentX - this._currentStep); // print approximations for debug
226172
226312
  return this.setX(this._currentX - this._currentStep);
226173
226313
  }
226174
- /** Compute the univariate newton step. */
226314
+ /** Compute the univariate newton step dx. */
226175
226315
  computeStep() {
226176
226316
  if (this._func.evaluate(this._currentX)) {
226177
226317
  const dx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(this._func.currentF - this._target, this._func.currentdFdX);
@@ -226224,7 +226364,7 @@ class Newton1dUnboundedApproximateDerivative extends AbstractNewtonIterator {
226224
226364
  // console.log(this._currentX - this._currentStep); // print approximations for debug
226225
226365
  return this.setX(this._currentX - this._currentStep);
226226
226366
  }
226227
- /** Univariate newton step computed with approximate derivative. */
226367
+ /** Univariate newton step dx, computed with approximate derivative. */
226228
226368
  computeStep() {
226229
226369
  if (this._func.evaluate(this._currentX)) {
226230
226370
  const fA = this._func.currentF; // f(x_n)
@@ -226262,7 +226402,7 @@ class NewtonEvaluatorRRtoRRD {
226262
226402
  * * Suppose we want to find the roots of `F(u,v) := (x(u,v), y(u,v))`. Writing `X := (u,v)` and `F(X)` as column vectors,
226263
226403
  * the 2D Newton's iteration to find a root of `F` is given by:
226264
226404
  * `X_{n+1} = X_n - dX = X_n - JInv(X_n)F(X_n)`, where `JInv` is the inverse of the Jacobian matrix `J`, and `J` is
226265
- * defined as:
226405
+ * defined by the partial derivatives of the component functions of F:
226266
226406
  *
226267
226407
  * `[dx/du dx/dv]`
226268
226408
  *
@@ -226275,7 +226415,8 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
226275
226415
  * @param func function that returns both function value and derivative.
226276
226416
  */
226277
226417
  constructor(func) {
226278
- super();
226418
+ const maxIterations = 100; // Was default (15). We observed 49 iters to achieve 1e-11 tol with tangent geometry.
226419
+ super(undefined, undefined, maxIterations);
226279
226420
  this._func = func;
226280
226421
  this._currentStep = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Vector2d.createZero();
226281
226422
  this._currentUV = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Point2d.createZero();
@@ -226307,7 +226448,10 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
226307
226448
  if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {
226308
226449
  const fA = this._func.currentF;
226309
226450
  if ( // 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:
226310
- _Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(fA.vectorU.x, fA.vectorV.x, fA.vectorU.y, fA.vectorV.y, fA.origin.x, fA.origin.y, this._currentStep))
226451
+ _Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(fA.vectorU.x, fA.vectorV.x, // x_u(X_n), x_v(X_n): 1st row of J evaluated at X_n
226452
+ fA.vectorU.y, fA.vectorV.y, // y_u(X_n), y_v(X_n): 2nd row of J evaluated at X_n
226453
+ fA.origin.x, fA.origin.y, // F(X_n) := (x(X_n), y(X_n))
226454
+ this._currentStep))
226311
226455
  return true;
226312
226456
  }
226313
226457
  return false;
@@ -226361,6 +226505,106 @@ class SimpleNewton {
226361
226505
  return undefined;
226362
226506
  }
226363
226507
  }
226508
+ /**
226509
+ * Class to evaluate XY intersection between 2 curve primitives using the Newton method.
226510
+ * @internal
226511
+ */
226512
+ class CurveCurveIntersectionXYRRToRRD extends NewtonEvaluatorRRtoRRD {
226513
+ constructor(curveP, curveQ) {
226514
+ super();
226515
+ this._curveP = curveP;
226516
+ this._curveQ = curveQ;
226517
+ this._rayP = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
226518
+ this._rayQ = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
226519
+ }
226520
+ evaluate(fractionU, fractionV) {
226521
+ /**
226522
+ * To find an intersection between xy-curves P(u) = (x_p(u), y_p(u)) and Q(v) = (x_q(v), y_q(v)) we should solve
226523
+ * F(u,v) := P(u) - Q(v) = (0,0)
226524
+ * Using the Newton method we can find the fractions u and v at the intersection via
226525
+ * [u_{n+1}] [u_n] [x_p'(u_n) -x_q'(v_n)] [x_p(u_n) - x_q(v_n)]
226526
+ * = - Inv( )
226527
+ * [v_{n+1}] [v_n] [y_p'(u_n) -y_q'(v_n)] [y_p(u_n) - y_q(v_n)]
226528
+ * Note that this is xy intersection so we can ignore z.
226529
+ */
226530
+ this._curveP.fractionToPointAndDerivative(fractionU, this._rayP);
226531
+ this._curveQ.fractionToPointAndDerivative(fractionV, this._rayQ);
226532
+ this.currentF.setOriginAndVectorsXYZ(this._rayP.origin.x - this._rayQ.origin.x, this._rayP.origin.y - this._rayQ.origin.y, 0.0, this._rayP.direction.x, this._rayP.direction.y, 0.0, -this._rayQ.direction.x, -this._rayQ.direction.y, 0.0);
226533
+ return true;
226534
+ }
226535
+ }
226536
+ /**
226537
+ * Class to evaluate XY close approach between a curve primitive and a point using the Newton method.
226538
+ * @internal
226539
+ */
226540
+ class CurvePointCloseApproachXYRtoRD extends NewtonEvaluatorRtoRD {
226541
+ constructor(curveP, pointQ) {
226542
+ super();
226543
+ this._curveP = curveP;
226544
+ this._pointQ = pointQ;
226545
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226546
+ }
226547
+ evaluate(fractionU) {
226548
+ /**
226549
+ * To find a close approach between xy-curve P(u) and xy-point q we should solve
226550
+ * F(u) := P'(u).(P(u) - q) = 0
226551
+ * For a solution u, the segment S(u) := P(u) - q is perpendicular to the curve tangent P'(u), which means S(u) is a close approach.
226552
+ * Using the Newton method we can find the fractions u at the close approach location via
226553
+ * u_{n+1} = u_n + F(u_n)/F'(u_n) = u_n + [ P'(u_n).S(u_n) ]/[ P''(u_n).S(u_n) + P'(u_n).P'(u_n) ]
226554
+ * Note that this is xy close approach so we can ignore z.
226555
+ */
226556
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
226557
+ const segX = this._planeP.origin.x - this._pointQ.x;
226558
+ const segY = this._planeP.origin.y - this._pointQ.y;
226559
+ const pDerivX = this._planeP.vectorU.x;
226560
+ const pDerivY = this._planeP.vectorU.y;
226561
+ const p2DerivX = this._planeP.vectorV.x;
226562
+ const p2DerivY = this._planeP.vectorV.y;
226563
+ this.currentF = pDerivX * segX + pDerivY * segY;
226564
+ this.currentdFdX = p2DerivX * segX + pDerivX * pDerivX + p2DerivY * segY + pDerivY * pDerivY;
226565
+ return true;
226566
+ }
226567
+ }
226568
+ /**
226569
+ * Class to evaluate XY close approach between 2 curve primitives using the Newton method.
226570
+ * @internal
226571
+ */
226572
+ class CurveCurveCloseApproachXYRRtoRRD extends NewtonEvaluatorRRtoRRD {
226573
+ constructor(curveP, curveQ) {
226574
+ super();
226575
+ this._curveP = curveP;
226576
+ this._curveQ = curveQ;
226577
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226578
+ this._planeQ = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226579
+ }
226580
+ evaluate(fractionU, fractionV) {
226581
+ /**
226582
+ * To find a close approach between xy-curves P(u) and Q(v) we should solve
226583
+ * F(u,v) := (P'(u).(P(u) - Q(v)), Q'(v).(P(u) - Q(v))) = (0,0)
226584
+ * For a solution (u,v), the segment S(u,v) := P(u) - Q(v) is perpendicular to the curve tangents P'(u) and Q'(v),
226585
+ * which means S(u,v) is a close approach.
226586
+ * Using the Newton method we can find the fractions u and v at the close approach location via
226587
+ * [u_{n+1}] [u_n] [P''(u_n).S(u_n,v_n) + P'(u_n).P'(u_n) -P'(u_n).Q'(v_n)] [P'(u_n).S(u_n,v_n)]
226588
+ * = - Inv( )
226589
+ * [v_{n+1}] [v_n] [Q'(v_n).P'(u_n) Q''(v_n).S(u_n,v_n) - Q'(v_n).Q'(v_n)] [Q'(v_n).S(u_n,v_n)]
226590
+ * Note that this is xy close approach so we can ignore z.
226591
+ */
226592
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
226593
+ this._curveQ.fractionToPointAnd2Derivatives(fractionV, this._planeQ);
226594
+ const segX = this._planeP.origin.x - this._planeQ.origin.x;
226595
+ const segY = this._planeP.origin.y - this._planeQ.origin.y;
226596
+ const pDerivX = this._planeP.vectorU.x;
226597
+ const pDerivY = this._planeP.vectorU.y;
226598
+ const qDerivX = this._planeQ.vectorU.x;
226599
+ const qDerivY = this._planeQ.vectorU.y;
226600
+ const p2DerivX = this._planeP.vectorV.x;
226601
+ const p2DerivY = this._planeP.vectorV.y;
226602
+ const q2DerivX = this._planeQ.vectorV.x;
226603
+ const q2DerivY = this._planeQ.vectorV.y;
226604
+ this.currentF.setOriginAndVectorsXYZ(pDerivX * segX + pDerivY * segY, qDerivX * segX + qDerivY * segY, 0.0, p2DerivX * segX + p2DerivY * segY + pDerivX * pDerivX + pDerivY * pDerivY, qDerivX * pDerivX + qDerivY * pDerivY, 0.0, -(pDerivX * qDerivX + pDerivY * qDerivY), q2DerivX * segX + q2DerivY * segY - qDerivX * qDerivX - qDerivY * qDerivY, 0.0);
226605
+ return true;
226606
+ }
226607
+ }
226364
226608
 
226365
226609
 
226366
226610
  /***/ }),
@@ -227549,10 +227793,8 @@ class TrigPolynomial {
227549
227793
  * @param referenceCoefficient A number which represents the size of coefficients
227550
227794
  * at various stages of computation. A small fraction of this will be used as a zero
227551
227795
  * tolerance
227552
- * @param angles Roots are placed here. Assumed preallocated with adequate size.
227553
- * @param numRoots Number of roots . Zero roots is possible. (Passed as array of size
227554
- * one to pass-by-reference)
227555
- * Returns false if equation is all zeros. This usually means any angle is a solution.
227796
+ * @param radians Roots are placed here
227797
+ * @return false if equation is all zeros. This usually means any angle is a solution.
227556
227798
  */
227557
227799
  static solveAngles(coff, nominalDegree, referenceCoefficient, radians) {
227558
227800
  let maxCoff = Math.abs(referenceCoefficient);
@@ -227630,7 +227872,6 @@ class TrigPolynomial {
227630
227872
  * @param ay Coefficient of y
227631
227873
  * @param a1 Constant coefficient
227632
227874
  * @param radians solution angles
227633
- * @param numAngle number of solution angles(Passed as array to make changes to reference)
227634
227875
  */
227635
227876
  static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a1, radians) {
227636
227877
  const Coffs = new Float64Array(5);
@@ -227696,9 +227937,8 @@ class TrigPolynomial {
227696
227937
  return status;
227697
227938
  }
227698
227939
  /**
227699
- * Compute intersections of unit circle x^2 + y^2 = w^2 with the ellipse
227700
- * (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)/ (cw + uw Math.Cos + vw * Math.Sin)
227701
- * Solutions are returned as angles in the ellipse space.
227940
+ * Compute intersections of unit circle `x^2 + y^2 = w^2` with the ellipse
227941
+ * `F(t) = (cx + ux cos(t) + vx sin(t), cy + uy cos(t) + vy sin(t)) / (cw + uw cos(t) + vw sin(t))`.
227702
227942
  * @param cx center x
227703
227943
  * @param cy center y
227704
227944
  * @param cw center w
@@ -289597,7 +289837,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
289597
289837
  /***/ ((module) => {
289598
289838
 
289599
289839
  "use strict";
289600
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.22","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.0-dev.22","@itwin/core-bentley":"workspace:^4.3.0-dev.22","@itwin/core-common":"workspace:^4.3.0-dev.22","@itwin/core-geometry":"workspace:^4.3.0-dev.22","@itwin/core-orbitgt":"workspace:^4.3.0-dev.22","@itwin/core-quantity":"workspace:^4.3.0-dev.22"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","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.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
289840
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.24","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.0-dev.24","@itwin/core-bentley":"workspace:^4.3.0-dev.24","@itwin/core-common":"workspace:^4.3.0-dev.24","@itwin/core-geometry":"workspace:^4.3.0-dev.24","@itwin/core-orbitgt":"workspace:^4.3.0-dev.24","@itwin/core-quantity":"workspace:^4.3.0-dev.24"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","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.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
289601
289841
 
289602
289842
  /***/ })
289603
289843