@itwin/rpcinterface-full-stack-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.
@@ -31343,6 +31343,7 @@ var ChangesetType;
31343
31343
  "use strict";
31344
31344
  __webpack_require__.r(__webpack_exports__);
31345
31345
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
31346
+ /* harmony export */ ClipIntersectionStyle: () => (/* binding */ ClipIntersectionStyle),
31346
31347
  /* harmony export */ ClipStyle: () => (/* binding */ ClipStyle),
31347
31348
  /* harmony export */ CutStyle: () => (/* binding */ CutStyle)
31348
31349
  /* harmony export */ });
@@ -31350,6 +31351,7 @@ __webpack_require__.r(__webpack_exports__);
31350
31351
  /* harmony import */ var _RgbColor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RgbColor */ "../../core/common/lib/esm/RgbColor.js");
31351
31352
  /* harmony import */ var _HiddenLine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HiddenLine */ "../../core/common/lib/esm/HiddenLine.js");
31352
31353
  /* harmony import */ var _FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FeatureSymbology */ "../../core/common/lib/esm/FeatureSymbology.js");
31354
+ /* harmony import */ var _ColorDef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorDef */ "../../core/common/lib/esm/ColorDef.js");
31353
31355
  /*---------------------------------------------------------------------------------------------
31354
31356
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
31355
31357
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -31361,6 +31363,7 @@ __webpack_require__.r(__webpack_exports__);
31361
31363
 
31362
31364
 
31363
31365
 
31366
+
31364
31367
  /** As part of a [[ClipStyle]], describes how section-cut graphics should be displayed.
31365
31368
  * @note Section-cut graphics are only produced if [[ClipStyle.produceCutGeometry]] is `true`.
31366
31369
  * @public
@@ -31413,30 +31416,89 @@ class CutStyle {
31413
31416
  /** The default CutStyle, configured to draw the section-cut graphics using the view's settings, with no overrides. */
31414
31417
  CutStyle.defaults = new CutStyle();
31415
31418
 
31419
+ /** As part of a [[ClipStyle]], describes how to colorize geometry intersecting the clip planes.
31420
+ * @note Edges are highlighted only if [[ClipStyle.ClipIntersectionStyle]] is `true`.
31421
+ * @public
31422
+ * @extensions
31423
+ */
31424
+ class ClipIntersectionStyle {
31425
+ constructor(color = _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromColorDef(_ColorDef__WEBPACK_IMPORTED_MODULE_4__.ColorDef.white), width = 1) {
31426
+ this.color = color;
31427
+ this.width = width;
31428
+ }
31429
+ /** Create a highlight from its components. */
31430
+ static create(color, width) {
31431
+ if (!color && !width)
31432
+ return this.defaults;
31433
+ return new ClipIntersectionStyle(color, width);
31434
+ }
31435
+ static fromJSON(props) {
31436
+ if (props === undefined) {
31437
+ return ClipIntersectionStyle.defaults;
31438
+ }
31439
+ 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);
31440
+ const width = props.width ? props.width : 1;
31441
+ return new ClipIntersectionStyle(color, width);
31442
+ }
31443
+ /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */
31444
+ toJSON() {
31445
+ const props = {};
31446
+ if (this.matchesDefaults) {
31447
+ return undefined;
31448
+ }
31449
+ if (this.color)
31450
+ props.color = this.color.toJSON();
31451
+ if (this.width)
31452
+ props.width = this.width;
31453
+ return props;
31454
+ }
31455
+ get matchesDefaults() {
31456
+ if (this === ClipIntersectionStyle.defaults)
31457
+ return true;
31458
+ return !this.color && !this.width;
31459
+ }
31460
+ }
31461
+ ClipIntersectionStyle.defaults = new ClipIntersectionStyle();
31462
+
31416
31463
  /** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].
31417
31464
  * @see [[DisplayStyleSettings.clipStyle]].
31418
31465
  * @public
31419
31466
  */
31420
31467
  class ClipStyle {
31421
- constructor(produceCutGeometry, cutStyle, inside, outside) {
31468
+ constructor(produceCutGeometry, colorizeIntersection, cutStyle, inside, outside, intersectionStyle) {
31422
31469
  this.produceCutGeometry = produceCutGeometry;
31470
+ this.colorizeIntersection = colorizeIntersection;
31423
31471
  this.cutStyle = cutStyle;
31424
31472
  this.insideColor = inside;
31425
31473
  this.outsideColor = outside;
31474
+ this.intersectionStyle = intersectionStyle;
31426
31475
  }
31427
- /** Create a style from its components. */
31428
- static create(produceCutGeometry, cutStyle, insideColor, outsideColor) {
31429
- if (!produceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor)
31476
+ /** @internal */
31477
+ static create(styleOrProduceCutGeometry, cutStyle, insideColor, outsideColor) {
31478
+ if (typeof styleOrProduceCutGeometry === "boolean") {
31479
+ cutStyle = cutStyle === undefined ? CutStyle.defaults : cutStyle;
31480
+ if (!styleOrProduceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor) {
31481
+ return this.defaults;
31482
+ }
31483
+ return new ClipStyle(styleOrProduceCutGeometry, false, cutStyle, insideColor, outsideColor, undefined);
31484
+ }
31485
+ const style = styleOrProduceCutGeometry;
31486
+ if (!style.produceCutGeometry && !style.colorizeIntersection && (!style.cutStyle || style.cutStyle.matchesDefaults) && !style.insideColor && !style.outsideColor && !style.intersectionStyle)
31430
31487
  return this.defaults;
31431
- return new ClipStyle(produceCutGeometry, cutStyle, insideColor, outsideColor);
31488
+ const produceCutGeometry = style.produceCutGeometry ? true : false;
31489
+ const colorizeIntersection = style.colorizeIntersection ? true : false;
31490
+ cutStyle = style.cutStyle === undefined ? CutStyle.defaults : style.cutStyle;
31491
+ return new ClipStyle(produceCutGeometry, colorizeIntersection, cutStyle, style.insideColor, style.outsideColor, style.intersectionStyle);
31432
31492
  }
31433
31493
  static fromJSON(props) {
31434
31494
  if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.isNonEmptyObject(props)) {
31435
31495
  const produceCutGeometry = props.produceCutGeometry ?? false;
31496
+ const colorizeIntersection = props.colorizeIntersection ? true : false;
31436
31497
  const cutStyle = CutStyle.fromJSON(props.cutStyle);
31437
- const inside = props.insideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.insideColor) : undefined;
31438
- const outside = props.outsideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.outsideColor) : undefined;
31439
- return this.create(produceCutGeometry, cutStyle, inside, outside);
31498
+ const insideColor = props.insideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.insideColor) : undefined;
31499
+ const outsideColor = props.outsideColor ? _RgbColor__WEBPACK_IMPORTED_MODULE_1__.RgbColor.fromJSON(props.outsideColor) : undefined;
31500
+ const intersectionStyle = props.intersectionStyle ? ClipIntersectionStyle.fromJSON(props.intersectionStyle) : undefined;
31501
+ return this.create({ produceCutGeometry, colorizeIntersection, cutStyle, insideColor, outsideColor, intersectionStyle });
31440
31502
  }
31441
31503
  return this.defaults;
31442
31504
  }
@@ -31447,6 +31509,8 @@ class ClipStyle {
31447
31509
  const props = {};
31448
31510
  if (this.produceCutGeometry)
31449
31511
  props.produceCutGeometry = true;
31512
+ if (this.colorizeIntersection)
31513
+ props.colorizeIntersection = true;
31450
31514
  const cutStyle = this.cutStyle.toJSON();
31451
31515
  if (cutStyle) {
31452
31516
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!this.cutStyle.matchesDefaults);
@@ -31456,17 +31520,19 @@ class ClipStyle {
31456
31520
  props.insideColor = this.insideColor.toJSON();
31457
31521
  if (this.outsideColor)
31458
31522
  props.outsideColor = this.outsideColor.toJSON();
31523
+ if (this.intersectionStyle)
31524
+ props.intersectionStyle = this.intersectionStyle.toJSON();
31459
31525
  return props;
31460
31526
  }
31461
31527
  /** Returns true if this style matches the [[ClipStyle.defaults]] - that is, it overrides no settings from the view. */
31462
31528
  get matchesDefaults() {
31463
31529
  if (this === ClipStyle.defaults)
31464
31530
  return true;
31465
- return !this.produceCutGeometry && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults;
31531
+ return !this.produceCutGeometry && !this.colorizeIntersection && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults && !this.intersectionStyle;
31466
31532
  }
31467
31533
  }
31468
31534
  /** The default style, which overrides none of the view's settings. */
31469
- ClipStyle.defaults = new ClipStyle(false, CutStyle.defaults, undefined, undefined);
31535
+ ClipStyle.defaults = new ClipStyle(false, false, CutStyle.defaults, undefined, undefined, undefined);
31470
31536
 
31471
31537
 
31472
31538
 
@@ -46990,6 +47056,7 @@ __webpack_require__.r(__webpack_exports__);
46990
47056
  /* harmony export */ ChangedValueState: () => (/* reexport safe */ _ECSqlTypes__WEBPACK_IMPORTED_MODULE_21__.ChangedValueState),
46991
47057
  /* harmony export */ ChangesetType: () => (/* reexport safe */ _ChangesetProps__WEBPACK_IMPORTED_MODULE_11__.ChangesetType),
46992
47058
  /* harmony export */ ChannelConstraintError: () => (/* reexport safe */ _IModelError__WEBPACK_IMPORTED_MODULE_62__.ChannelConstraintError),
47059
+ /* harmony export */ ClipIntersectionStyle: () => (/* reexport safe */ _ClipStyle__WEBPACK_IMPORTED_MODULE_12__.ClipIntersectionStyle),
46993
47060
  /* harmony export */ ClipStyle: () => (/* reexport safe */ _ClipStyle__WEBPACK_IMPORTED_MODULE_12__.ClipStyle),
46994
47061
  /* harmony export */ Code: () => (/* reexport safe */ _Code__WEBPACK_IMPORTED_MODULE_13__.Code),
46995
47062
  /* harmony export */ CodeScopeSpec: () => (/* reexport safe */ _Code__WEBPACK_IMPORTED_MODULE_13__.CodeScopeSpec),
@@ -102449,6 +102516,7 @@ const extensionExports = {
102449
102516
  ChangedValueState: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ChangedValueState,
102450
102517
  ChangesetType: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ChangesetType,
102451
102518
  ClipEventType: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.ClipEventType,
102519
+ ClipIntersectionStyle: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ClipIntersectionStyle,
102452
102520
  Cluster: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.Cluster,
102453
102521
  ColorByName: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorByName,
102454
102522
  ColorDef: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef,
@@ -113184,6 +113252,10 @@ class ClipStack {
113184
113252
  this._outsideColor = _FloatRGBA__WEBPACK_IMPORTED_MODULE_3__.FloatRgba.from(0, 0, 0, 0);
113185
113253
  /** For detecting whether the transform changed from one invocation of setViewClip to the next. */
113186
113254
  this._prevTransform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createZero();
113255
+ /** True if we want to colorize geometry intersecting clip planes */
113256
+ this._colorizeIntersection = false;
113257
+ /** The style to colorize the geometry intersecting clip planes */
113258
+ this._intersectionStyle = _FloatRGBA__WEBPACK_IMPORTED_MODULE_3__.FloatRgba.from(0, 0, 0, 0);
113187
113259
  this._getTransform = getTransform;
113188
113260
  this._wantViewClip = wantViewClip;
113189
113261
  this._numTotalRows = this._numRowsInUse = 0;
@@ -113199,6 +113271,15 @@ class ClipStack {
113199
113271
  get hasOutsideColor() {
113200
113272
  return this.outsideColor.alpha !== 0;
113201
113273
  }
113274
+ get colorizeIntersection() {
113275
+ return this._colorizeIntersection;
113276
+ }
113277
+ set colorizeIntersection(b) {
113278
+ this._colorizeIntersection = b;
113279
+ }
113280
+ get intersectionStyle() {
113281
+ return this._intersectionStyle;
113282
+ }
113202
113283
  get bytesUsed() {
113203
113284
  return this._texture ? this._texture.bytesUsed : 0;
113204
113285
  }
@@ -113206,6 +113287,7 @@ class ClipStack {
113206
113287
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._stack.length === 1);
113207
113288
  this.updateColor(style.insideColor, this._insideColor);
113208
113289
  this.updateColor(style.outsideColor, this._outsideColor);
113290
+ this.updateIntersectionStyle(style.colorizeIntersection, style.intersectionStyle, this._intersectionStyle);
113209
113291
  const transform = this._getTransform();
113210
113292
  if (!transform.isAlmostEqual(this._prevTransform)) {
113211
113293
  transform.clone(this._prevTransform);
@@ -113342,6 +113424,15 @@ class ClipStack {
113342
113424
  if (rgb)
113343
113425
  rgba.setRgbColor(rgb);
113344
113426
  }
113427
+ updateIntersectionStyle(colorizeIntersection, style, _thisStyle) {
113428
+ this._colorizeIntersection = colorizeIntersection === true ? true : false;
113429
+ if (style !== undefined) {
113430
+ if (style.color !== undefined)
113431
+ _thisStyle.setRgbColor(style.color);
113432
+ if (style.width !== undefined)
113433
+ _thisStyle.alpha = style.width;
113434
+ }
113435
+ }
113345
113436
  }
113346
113437
 
113347
113438
 
@@ -123590,6 +123681,7 @@ var Convert;
123590
123681
  case 8 /* VariableType.Sampler2D */: return "sampler2D";
123591
123682
  case 9 /* VariableType.SamplerCube */: return "samplerCube";
123592
123683
  case 10 /* VariableType.Uint */: return "uint";
123684
+ case 11 /* VariableType.BVec2 */: return "bvec2";
123593
123685
  default:
123594
123686
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
123595
123687
  return "undefined";
@@ -123800,6 +123892,7 @@ class ShaderVariables {
123800
123892
  variableSize = 1;
123801
123893
  break;
123802
123894
  case 3 /* VariableType.Vec2 */:
123895
+ case 11 /* VariableType.BVec2 */:
123803
123896
  variableSize = 2;
123804
123897
  break;
123805
123898
  case 4 /* VariableType.Vec3 */:
@@ -123866,6 +123959,7 @@ class ShaderVariables {
123866
123959
  variableSize = 1;
123867
123960
  break;
123868
123961
  case 3 /* VariableType.Vec2 */:
123962
+ case 11 /* VariableType.BVec2 */:
123869
123963
  variableSize = 2;
123870
123964
  break;
123871
123965
  case 4 /* VariableType.Vec3 */:
@@ -124249,9 +124343,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
124249
124343
  const applyClipping = this.get(10 /* FragmentShaderComponent.ApplyClipping */);
124250
124344
  if (undefined !== applyClipping) {
124251
124345
  prelude.addline("vec3 g_clipColor;\n");
124252
- prelude.addFunction("bool applyClipping(vec4 baseColor)", applyClipping);
124253
- main.addline(" bool hasClipColor = applyClipping(baseColor);");
124254
- main.addline(" if (hasClipColor) { baseColor.rgb = g_clipColor; } else {");
124346
+ prelude.addFunction("bvec2 applyClipping(vec4 baseColor)", applyClipping);
124347
+ main.addline(" g_hasClipColor = applyClipping(baseColor);");
124348
+ main.addline(" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {");
124255
124349
  clipIndent = " ";
124256
124350
  }
124257
124351
  const applyMaterialOverrides = this.get(2 /* FragmentShaderComponent.ApplyMaterialOverrides */);
@@ -124307,6 +124401,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
124307
124401
  prelude.addFunction("vec4 applyLighting(vec4 baseColor)", applyLighting);
124308
124402
  main.addline(" baseColor = applyLighting(baseColor);");
124309
124403
  }
124404
+ if (undefined !== applyClipping) {
124405
+ main.addline(" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } ");
124406
+ }
124310
124407
  const reverseWoW = this.get(9 /* FragmentShaderComponent.ReverseWhiteOnWhite */);
124311
124408
  if (undefined !== reverseWoW) {
124312
124409
  prelude.addFunction("vec4 reverseWhiteOnWhite(vec4 baseColor)", reverseWoW);
@@ -132150,7 +132247,9 @@ __webpack_require__.r(__webpack_exports__);
132150
132247
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
132151
132248
  /* harmony import */ var _RenderFlags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../RenderFlags */ "../../core/frontend/lib/esm/render/webgl/RenderFlags.js");
132152
132249
  /* harmony import */ var _Common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Common */ "../../core/frontend/lib/esm/render/webgl/glsl/Common.js");
132153
- /* harmony import */ var _Vertex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Vertex */ "../../core/frontend/lib/esm/render/webgl/glsl/Vertex.js");
132250
+ /* harmony import */ var _FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FeatureSymbology */ "../../core/frontend/lib/esm/render/webgl/glsl/FeatureSymbology.js");
132251
+ /* harmony import */ var _Translucency__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Translucency */ "../../core/frontend/lib/esm/render/webgl/glsl/Translucency.js");
132252
+ /* harmony import */ var _Vertex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Vertex */ "../../core/frontend/lib/esm/render/webgl/glsl/Vertex.js");
132154
132253
  /*---------------------------------------------------------------------------------------------
132155
132254
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
132156
132255
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -132162,11 +132261,11 @@ __webpack_require__.r(__webpack_exports__);
132162
132261
 
132163
132262
 
132164
132263
 
132264
+
132265
+
132165
132266
  const getClipPlaneFloat = `
132166
132267
  vec4 getClipPlane(int index) {
132167
- float x = 0.5;
132168
- float y = (float(index) + 0.5) / float(u_clipParams[2]);
132169
- return TEXTURE(s_clipSampler, vec2(x, y));
132268
+ return texelFetch(s_clipSampler, ivec2(0, index), 0);
132170
132269
  }
132171
132270
  `;
132172
132271
  const unpackFloat = `
@@ -132187,57 +132286,112 @@ float calcClipPlaneDist(vec3 camPos, vec4 plane) {
132187
132286
  return dot(vec4(camPos, 1.0), plane);
132188
132287
  }
132189
132288
  `;
132289
+ const applyClipPlanesLoop = `
132290
+ for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
132291
+ `;
132292
+ const applyClipPlanesLoopBody = `
132293
+ vec4 plane = getClipPlane(i);
132294
+ if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
132295
+ if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
132296
+ break;
132297
+
132298
+ numPlaneSets = 1;
132299
+ numSetsClippedBy = 0;
132300
+ clippedByCurrentPlaneSet = false;
132301
+ } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
132302
+ numPlaneSets = numPlaneSets + 1;
132303
+ numSetsClippedBy += int(clippedByCurrentPlaneSet);
132304
+ clippedByCurrentPlaneSet = false;
132305
+ } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
132306
+ clippedByCurrentPlaneSet = true;
132307
+ }
132308
+ `;
132309
+ const applyClipPlanesIntersectionLoopBody = `
132310
+ if ((i <= u_clipParams[1] - 2) && (!clippedByCurrentPlaneSet)) {
132311
+
132312
+ //Obtaining closest point on plane to current frag in eyespace
132313
+ vec3 pointOnPlane = v_eyeSpace - (abs(calcClipPlaneDist(v_eyeSpace, plane)) * plane.xyz);
132314
+
132315
+ //determining whether to colorize
132316
+ if (distance(v_eyeSpace, pointOnPlane) <= (kFrustumType_Perspective == u_frustum.z ? -pointOnPlane.z * widthFactor : widthFactor)) {
132317
+ colorizeIntersection = true;
132318
+ }
132319
+ }
132320
+ }
132321
+
132322
+ //Need to pull this condition out of the loop for when there are multiple clip planes defined
132323
+ if (colorizeIntersection && !clippedByCurrentPlaneSet) {
132324
+ g_clipColor = u_clipIntersection.rgb;
132325
+ return bvec2(true, true);
132326
+ }
132327
+ `;
132190
132328
  const applyClipPlanesPrelude = `
132191
132329
  int numPlaneSets = 1;
132192
132330
  int numSetsClippedBy = 0;
132193
132331
  bool clippedByCurrentPlaneSet = false;
132194
- `;
132195
- const applyClipPlanesLoop = `
132196
- for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
132332
+ bool colorizeIntersection = false;
132333
+ if (u_colorizeIntersection) {
132334
+ float widthFactor = u_pixelWidthFactor * 2.0 * u_clipIntersection.a;
132335
+ ${applyClipPlanesLoop}${applyClipPlanesLoopBody}${applyClipPlanesIntersectionLoopBody}
132336
+ } else {
132337
+ ${applyClipPlanesLoop}${applyClipPlanesLoopBody} }\n
132338
+ }
132197
132339
  `;
132198
132340
  const applyClipPlanesPostlude = `
132199
- vec4 plane = getClipPlane(i);
132200
- if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
132201
- if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
132202
- break;
132203
-
132204
- numPlaneSets = 1;
132205
- numSetsClippedBy = 0;
132206
- clippedByCurrentPlaneSet = false;
132207
- } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
132208
- numPlaneSets = numPlaneSets + 1;
132209
- numSetsClippedBy += int(clippedByCurrentPlaneSet);
132210
- clippedByCurrentPlaneSet = false;
132211
- } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
132212
- clippedByCurrentPlaneSet = true;
132213
- }
132214
- }
132215
132341
 
132216
132342
  numSetsClippedBy += int(clippedByCurrentPlaneSet);
132217
132343
  if (numSetsClippedBy == numPlaneSets) {
132218
132344
  if (u_outsideRgba.a > 0.0) {
132219
132345
  g_clipColor = u_outsideRgba.rgb;
132220
- return true;
132346
+ return bvec2(true,false);
132221
132347
  } else {
132222
132348
  discard;
132223
132349
  }
132224
132350
  } else if (u_insideRgba.a > 0.0) {
132225
132351
  g_clipColor = u_insideRgba.rgb;
132226
- return true;
132352
+ return bvec2(true,false);
132227
132353
  }
132228
132354
 
132229
- return false;
132355
+ return bvec2(false,false);
132230
132356
  `;
132231
- const applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesLoop + applyClipPlanesPostlude;
132357
+ const assignFragData = `
132358
+ if (g_hasClipColor.y) {
132359
+ vec4 output0 = vec4(g_clipColor, 1.0);
132360
+ vec4 output1 = vec4(1.0, 1.0, 0.0, 1.0);
132361
+
132362
+ FragColor0 = output0;
132363
+ FragColor1 = output1;
132364
+ } else {
132365
+ ${_Translucency__WEBPACK_IMPORTED_MODULE_4__.computeOutputs}
132366
+
132367
+ FragColor0 = output0;
132368
+ FragColor1 = output1;
132369
+ }
132370
+ `;
132371
+ const applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesPostlude;
132232
132372
  const clipParams = new Int32Array(3);
132233
132373
  /** @internal */
132234
132374
  function addClipping(prog) {
132235
132375
  const frag = prog.frag;
132236
132376
  const vert = prog.vert;
132237
132377
  (0,_Common__WEBPACK_IMPORTED_MODULE_2__.addEyeSpace)(prog);
132378
+ prog.addUniform("u_outsideRgba", 5 /* VariableType.Vec4 */, (program) => {
132379
+ program.addGraphicUniform("u_outsideRgba", (uniform, params) => {
132380
+ params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);
132381
+ });
132382
+ });
132383
+ prog.addUniform("u_insideRgba", 5 /* VariableType.Vec4 */, (program) => {
132384
+ program.addGraphicUniform("u_insideRgba", (uniform, params) => {
132385
+ params.target.uniforms.branch.clipStack.insideColor.bind(uniform);
132386
+ });
132387
+ });
132388
+ (0,_Common__WEBPACK_IMPORTED_MODULE_2__.addFrustum)(prog);
132389
+ (0,_FeatureSymbology__WEBPACK_IMPORTED_MODULE_3__.addPixelWidthFactor)(frag);
132390
+ (0,_Vertex__WEBPACK_IMPORTED_MODULE_5__.addModelViewMatrix)(vert);
132238
132391
  // [0] = index of first plane
132239
132392
  // [1] = index of last plane (one past the end)
132240
132393
  // [2] = texture height
132394
+ prog.frag.addGlobal("g_hasClipColor", 11 /* VariableType.BVec2 */);
132241
132395
  prog.addUniformArray("u_clipParams", 1 /* VariableType.Int */, 3, (program) => {
132242
132396
  program.addGraphicUniform("u_clipParams", (uniform, params) => {
132243
132397
  // Set this to false to visualize pre-shader culling of geometry.
@@ -132250,17 +132404,16 @@ function addClipping(prog) {
132250
132404
  uniform.setUniform1iv(clipParams);
132251
132405
  });
132252
132406
  });
132253
- prog.addUniform("u_outsideRgba", 5 /* VariableType.Vec4 */, (program) => {
132254
- program.addGraphicUniform("u_outsideRgba", (uniform, params) => {
132255
- params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);
132407
+ prog.frag.addUniform("u_colorizeIntersection", 0 /* VariableType.Boolean */, (program) => {
132408
+ program.addProgramUniform("u_colorizeIntersection", (uniform, params) => {
132409
+ uniform.setUniform1i(params.target.uniforms.branch.clipStack.colorizeIntersection ? 1 : 0);
132256
132410
  });
132257
132411
  });
132258
- prog.addUniform("u_insideRgba", 5 /* VariableType.Vec4 */, (program) => {
132259
- program.addGraphicUniform("u_insideRgba", (uniform, params) => {
132260
- params.target.uniforms.branch.clipStack.insideColor.bind(uniform);
132412
+ prog.frag.addUniform("u_clipIntersection", 5 /* VariableType.Vec4 */, (program) => {
132413
+ program.addGraphicUniform("u_clipIntersection", (uniform, params) => {
132414
+ params.target.uniforms.branch.clipStack.intersectionStyle.bind(uniform);
132261
132415
  });
132262
132416
  });
132263
- (0,_Vertex__WEBPACK_IMPORTED_MODULE_3__.addModelViewMatrix)(vert);
132264
132417
  frag.addFunction(getClipPlaneFloat);
132265
132418
  frag.addFunction(calcClipPlaneDist);
132266
132419
  frag.addUniform("s_clipSampler", 8 /* VariableType.Sampler2D */, (program) => {
@@ -132272,6 +132425,9 @@ function addClipping(prog) {
132272
132425
  });
132273
132426
  }, 3 /* VariablePrecision.High */);
132274
132427
  frag.set(10 /* FragmentShaderComponent.ApplyClipping */, applyClipPlanes);
132428
+ // modify translucent shaders
132429
+ if (frag.findFunction(_Translucency__WEBPACK_IMPORTED_MODULE_4__.computeAlphaWeight))
132430
+ frag.set(16 /* FragmentShaderComponent.AssignFragData */, assignFragData);
132275
132431
  }
132276
132432
 
132277
132433
 
@@ -132738,10 +132894,10 @@ const computeTranslucentColor = `
132738
132894
  vec4 computeColor() {
132739
132895
  vec4 opaque = computeOpaqueColor();
132740
132896
  vec4 accum = TEXTURE(u_accumulation, v_texCoord);
132741
- float r = TEXTURE(u_revealage, v_texCoord).r;
132897
+ vec2 rg = TEXTURE(u_revealage, v_texCoord).rg;
132742
132898
 
132743
- vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a);
132744
- vec4 col = (1.0 - transparent.a) * transparent + transparent.a * opaque;
132899
+ vec4 transparent = vec4(accum.rgb / clamp(rg.r, 1e-4, 5e4), accum.a);
132900
+ vec4 col = mix((1.0 - transparent.a) * transparent + transparent.a * opaque, vec4(u_clipIntersection.rgb, 1.0), rg.g);
132745
132901
  return col;
132746
132902
  }
132747
132903
  `;
@@ -132789,6 +132945,11 @@ function createCompositeProgram(flags, context) {
132789
132945
  _Texture__WEBPACK_IMPORTED_MODULE_2__.Texture2DHandle.bindSampler(uniform, params.geometry.reveal, _RenderFlags__WEBPACK_IMPORTED_MODULE_1__.TextureUnit.Two);
132790
132946
  });
132791
132947
  });
132948
+ builder.frag.addUniform("u_clipIntersection", 5 /* VariableType.Vec4 */, (program) => {
132949
+ program.addGraphicUniform("u_clipIntersection", (uniform, params) => {
132950
+ params.target.uniforms.branch.clipStack.intersectionStyle.bind(uniform);
132951
+ });
132952
+ });
132792
132953
  frag.addFunction(computeTranslucentColor);
132793
132954
  if (!wantHilite) {
132794
132955
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeTranslucentBaseColor);
@@ -133931,6 +134092,7 @@ __webpack_require__.r(__webpack_exports__);
133931
134092
  /* harmony export */ addHiliter: () => (/* binding */ addHiliter),
133932
134093
  /* harmony export */ addMaxAlpha: () => (/* binding */ addMaxAlpha),
133933
134094
  /* harmony export */ addOvrFlagConstants: () => (/* binding */ addOvrFlagConstants),
134095
+ /* harmony export */ addPixelWidthFactor: () => (/* binding */ addPixelWidthFactor),
133934
134096
  /* harmony export */ addRenderOrder: () => (/* binding */ addRenderOrder),
133935
134097
  /* harmony export */ addRenderOrderConstants: () => (/* binding */ addRenderOrderConstants),
133936
134098
  /* harmony export */ addSurfaceDiscard: () => (/* binding */ addSurfaceDiscard),
@@ -138395,7 +138557,9 @@ function addThematicDisplay(builder, isForPointClouds = false, isForTerrainMesh
138395
138557
  "use strict";
138396
138558
  __webpack_require__.r(__webpack_exports__);
138397
138559
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
138398
- /* harmony export */ addTranslucency: () => (/* binding */ addTranslucency)
138560
+ /* harmony export */ addTranslucency: () => (/* binding */ addTranslucency),
138561
+ /* harmony export */ computeAlphaWeight: () => (/* binding */ computeAlphaWeight),
138562
+ /* harmony export */ computeOutputs: () => (/* binding */ computeOutputs)
138399
138563
  /* harmony export */ });
138400
138564
  /* harmony import */ var _Common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Common */ "../../core/frontend/lib/esm/render/webgl/glsl/Common.js");
138401
138565
  /* harmony import */ var _Fragment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Fragment */ "../../core/frontend/lib/esm/render/webgl/glsl/Fragment.js");
@@ -138433,7 +138597,7 @@ const computeOutputs = `
138433
138597
  float outputScale = (u_shaderFlags[kShaderBit_OITScaleOutput] ? 1.0 / 3001.040604 : 1.0);
138434
138598
 
138435
138599
  vec4 output0 = vec4(Ci * wzi * outputScale, ai);
138436
- vec4 output1 = vec4(ai * wzi * outputScale);
138600
+ vec4 output1 = vec4(ai * wzi * outputScale, 0.0, 0.0, ai * wzi * outputScale);
138437
138601
  `;
138438
138602
  const assignFragData = `${computeOutputs}
138439
138603
  FragColor0 = output0;
@@ -173041,9 +173205,10 @@ class Geometry {
173041
173205
  // (c0,s0) is the closest approach of the line to the circle center (origin)
173042
173206
  const c0 = da2b2 * cosCoff; // -ad/(a^2+b^2)
173043
173207
  const s0 = da2b2 * sinCoff; // -bd/(a^2+b^2)
173044
- if (criterion <= 0.0) { // nSolution = 1
173045
- // We observed criterion = -2.22e-16 in a rotated tangent system, therefore for negative criteria near
173046
- // zero, return the near-tangency; for tiny positive criteria, fall through to return both solutions.
173208
+ if (criterion <= Geometry.smallMetricDistanceSquared) { // nSolution = 1
173209
+ // We observed criterion = -2.22e-16 in a rotated tangent system, and criterion = 4.44e-16 in a
173210
+ // transverse line-arc intersectXYZ near-tangency, therefore for criteria near zero (on either side),
173211
+ // return the (near) tangency; any larger criteria fall through to return both solutions.
173047
173212
  result = [_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(c0, s0)];
173048
173213
  }
173049
173214
  else { // nSolution = 2
@@ -184172,43 +184337,42 @@ class LineStringOffsetClipperContext {
184172
184337
  "use strict";
184173
184338
  __webpack_require__.r(__webpack_exports__);
184174
184339
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
184175
- /* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.AbstractNewtonIterator),
184176
- /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3d),
184177
- /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3dOptions),
184178
- /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.AnalyticRoots),
184340
+ /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3d),
184341
+ /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3dOptions),
184342
+ /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.AnalyticRoots),
184179
184343
  /* harmony export */ Angle: () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
184180
184344
  /* harmony export */ AngleSweep: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
184181
- /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.AnnotatedLineString3d),
184182
- /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.Arc3d),
184183
- /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannel),
184184
- /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelData),
184185
- /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelDataType),
184345
+ /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.AnnotatedLineString3d),
184346
+ /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__.Arc3d),
184347
+ /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannel),
184348
+ /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelData),
184349
+ /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelDataType),
184186
184350
  /* harmony export */ AxisIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisIndex),
184187
184351
  /* harmony export */ AxisOrder: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisOrder),
184188
184352
  /* harmony export */ AxisScaleSelect: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisScaleSelect),
184189
- /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__.BSpline1dNd),
184190
- /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSpline2dNd),
184191
- /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3d),
184192
- /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3dBase),
184193
- /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__.BSplineCurve3dH),
184194
- /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__.BSplineCurveOps),
184195
- /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3d),
184196
- /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3dH),
184197
- /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.BSplineWrapMode),
184198
- /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
184353
+ /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__.BSpline1dNd),
184354
+ /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSpline2dNd),
184355
+ /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3d),
184356
+ /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3dBase),
184357
+ /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3dH),
184358
+ /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__.BSplineCurveOps),
184359
+ /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3d),
184360
+ /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3dH),
184361
+ /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.BSplineWrapMode),
184362
+ /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.BagOfCurves),
184199
184363
  /* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
184200
- /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
184201
- /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__.Bezier1dNd),
184364
+ /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__.BentleyGeometryFlatBuffer),
184365
+ /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__.Bezier1dNd),
184202
184366
  /* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
184203
- /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3d),
184204
- /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__.BezierCurve3dH),
184205
- /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__.BezierCurveBase),
184367
+ /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__.BezierCurve3d),
184368
+ /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3dH),
184369
+ /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__.BezierCurveBase),
184206
184370
  /* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
184207
184371
  /* harmony export */ BilinearPatch: () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
184208
- /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.BilinearPolynomial),
184372
+ /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.BilinearPolynomial),
184209
184373
  /* harmony export */ BooleanClipFactory: () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
184210
- /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_89__.Box),
184211
- /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__.BoxTopology),
184374
+ /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_88__.Box),
184375
+ /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__.BoxTopology),
184212
184376
  /* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipMaskXYZRangePlanes),
184213
184377
  /* harmony export */ ClipPlane: () => (/* reexport safe */ _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__.ClipPlane),
184214
184378
  /* harmony export */ ClipPlaneContainment: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipPlaneContainment),
@@ -184218,109 +184382,103 @@ __webpack_require__.r(__webpack_exports__);
184218
184382
  /* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
184219
184383
  /* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
184220
184384
  /* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
184221
- /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
184385
+ /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.ClippedPolyfaceBuilders),
184222
184386
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
184223
- /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
184224
- /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
184225
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
184387
+ /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__.Complex),
184388
+ /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_89__.Cone),
184389
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.ConsolidateAdjacentCurvePrimitivesOptions),
184226
184390
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
184227
- /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
184391
+ /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__.ConstructCurveBetweenCurves),
184228
184392
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
184229
- /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.ConvexFacetLocationDetail),
184393
+ /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.ConvexFacetLocationDetail),
184230
184394
  /* harmony export */ ConvexPolygon2d: () => (/* reexport safe */ _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__.ConvexPolygon2d),
184231
- /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__.CoordinateXYZ),
184232
- /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveChain),
184233
- /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.CurveChainWithDistanceIndex),
184234
- /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveCollection),
184235
- /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__.CurveCurve),
184236
- /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveCurveApproachType),
184237
- /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendMode),
184238
- /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendOptions),
184239
- /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.CurveFactory),
184240
- /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveIntervalRole),
184241
- /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetail),
184242
- /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailArrayPair),
184243
- /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailPair),
184244
- /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__.CurveOps),
184245
- /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__.CurvePrimitive),
184246
- /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveSearchStatus),
184395
+ /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__.CoordinateXYZ),
184396
+ /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveChain),
184397
+ /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.CurveChainWithDistanceIndex),
184398
+ /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveCollection),
184399
+ /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__.CurveCurve),
184400
+ /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveCurveApproachType),
184401
+ /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendMode),
184402
+ /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendOptions),
184403
+ /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.CurveFactory),
184404
+ /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveIntervalRole),
184405
+ /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetail),
184406
+ /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailArrayPair),
184407
+ /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailPair),
184408
+ /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__.CurveOps),
184409
+ /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__.CurvePrimitive),
184410
+ /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveSearchStatus),
184247
184411
  /* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
184248
184412
  /* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
184249
- /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
184250
- /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
184251
- /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
184252
- /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
184253
- /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__.DirectSpiral3d),
184254
- /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
184413
+ /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__.DeepCompare),
184414
+ /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree2PowerPolynomial),
184415
+ /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree3PowerPolynomial),
184416
+ /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree4PowerPolynomial),
184417
+ /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__.DirectSpiral3d),
184418
+ /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.DuplicateFacetClusterSelector),
184255
184419
  /* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
184256
184420
  /* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
184257
- /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__.FacetFaceData),
184258
- /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.FacetIntersectOptions),
184421
+ /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__.FacetFaceData),
184422
+ /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetIntersectOptions),
184259
184423
  /* harmony export */ FrameBuilder: () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
184260
- /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.GaussMapper),
184424
+ /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.GaussMapper),
184261
184425
  /* harmony export */ GeodesicPathPoint: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
184262
184426
  /* harmony export */ GeodesicPathSolver: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
184263
184427
  /* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
184264
184428
  /* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
184265
- /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__.GeometryQuery),
184266
- /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSet),
184267
- /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__.GriddedRaggedRange2dSetWithOverflow),
184429
+ /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__.GeometryQuery),
184430
+ /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__.GriddedRaggedRange2dSet),
184431
+ /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSetWithOverflow),
184268
184432
  /* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
184269
184433
  /* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
184270
184434
  /* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
184271
184435
  /* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
184272
- /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
184273
- /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
184274
- /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
184275
- /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
184276
- /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
184436
+ /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdge),
184437
+ /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeGraph),
184438
+ /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeMask),
184439
+ /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__.IModelJson),
184440
+ /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.ImplicitLineXY),
184277
184441
  /* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
184278
- /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.IndexedPolyface),
184279
- /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceSubsetVisitor),
184280
- /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceVisitor),
184442
+ /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
184443
+ /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceSubsetVisitor),
184444
+ /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceVisitor),
184281
184445
  /* harmony export */ IndexedReadWriteXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedReadWriteXYZCollection),
184282
184446
  /* harmony export */ IndexedXYCollection: () => (/* reexport safe */ _geometry3d_IndexedXYCollection__WEBPACK_IMPORTED_MODULE_14__.IndexedXYCollection),
184283
184447
  /* harmony export */ IndexedXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedXYZCollection),
184284
184448
  /* harmony export */ IndexedXYZCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedXYZCollectionInterval),
184285
184449
  /* harmony export */ IndexedXYZCollectionPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.IndexedXYZCollectionPolygonOps),
184286
- /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__.IntegratedSpiral3d),
184287
- /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3d),
184288
- /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3dOptions),
184450
+ /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__.IntegratedSpiral3d),
184451
+ /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3d),
184452
+ /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3dOptions),
184289
184453
  /* harmony export */ InverseMatrixState: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.InverseMatrixState),
184290
- /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.JointOptions),
184291
- /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.KnotVector),
184292
- /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__.LineSegment3d),
184293
- /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.LineString3d),
184294
- /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__.LinearSweep),
184454
+ /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.JointOptions),
184455
+ /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.KnotVector),
184456
+ /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__.LineSegment3d),
184457
+ /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.LineString3d),
184458
+ /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__.LinearSweep),
184295
184459
  /* harmony export */ LongitudeLatitudeNumber: () => (/* reexport safe */ _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_2__.LongitudeLatitudeNumber),
184296
- /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.Loop),
184297
- /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.LoopCurveLoopCurve),
184460
+ /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.Loop),
184461
+ /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.LoopCurveLoopCurve),
184298
184462
  /* harmony export */ Map4d: () => (/* reexport safe */ _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__.Map4d),
184299
184463
  /* harmony export */ Matrix3d: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.Matrix3d),
184300
184464
  /* harmony export */ Matrix4d: () => (/* reexport safe */ _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__.Matrix4d),
184301
- /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.MiteredSweepOutputSelect),
184465
+ /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.MiteredSweepOutputSelect),
184302
184466
  /* harmony export */ MomentData: () => (/* reexport safe */ _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__.MomentData),
184303
- /* harmony export */ Newton1dUnbounded: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnbounded),
184304
- /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnboundedApproximateDerivative),
184305
- /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton2dUnboundedWithDerivative),
184306
- /* harmony export */ NewtonEvaluatorRRtoRRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRRtoRRD),
184307
- /* harmony export */ NewtonEvaluatorRtoR: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoR),
184308
- /* harmony export */ NewtonEvaluatorRtoRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoRD),
184309
- /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.NonConvexFacetLocationDetail),
184467
+ /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.NonConvexFacetLocationDetail),
184310
184468
  /* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
184311
184469
  /* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
184312
- /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
184313
- /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.OffsetOptions),
184470
+ /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.OffsetMeshOptions),
184471
+ /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.OffsetOptions),
184314
184472
  /* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
184315
184473
  /* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
184316
184474
  /* harmony export */ Order4Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order4Bezier),
184317
184475
  /* harmony export */ Order5Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order5Bezier),
184318
184476
  /* harmony export */ OrderedRotationAngles: () => (/* reexport safe */ _geometry3d_OrderedRotationAngles__WEBPACK_IMPORTED_MODULE_17__.OrderedRotationAngles),
184319
184477
  /* harmony export */ PackedMatrix3dOps: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.PackedMatrix3dOps),
184320
- /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__.ParityRegion),
184321
- /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__.PascalCoefficients),
184322
- /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_78__.Path),
184323
- /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.PathFragment),
184478
+ /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__.ParityRegion),
184479
+ /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__.PascalCoefficients),
184480
+ /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_77__.Path),
184481
+ /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.PathFragment),
184324
184482
  /* harmony export */ Plane3d: () => (/* reexport safe */ _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_18__.Plane3d),
184325
184483
  /* harmony export */ Plane3dByOriginAndUnitNormal: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_19__.Plane3dByOriginAndUnitNormal),
184326
184484
  /* harmony export */ Plane3dByOriginAndVectors: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_20__.Plane3dByOriginAndVectors),
@@ -184334,78 +184492,77 @@ __webpack_require__.r(__webpack_exports__);
184334
184492
  /* harmony export */ Point3dArrayPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayPolygonOps),
184335
184493
  /* harmony export */ Point4d: () => (/* reexport safe */ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__.Point4d),
184336
184494
  /* harmony export */ Point4dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point4dArray),
184337
- /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__.PointString3d),
184338
- /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.Polyface),
184339
- /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.PolyfaceAuxData),
184340
- /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
184341
- /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
184342
- /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
184343
- /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
184495
+ /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__.PointString3d),
184496
+ /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.Polyface),
184497
+ /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.PolyfaceAuxData),
184498
+ /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__.PolyfaceBuilder),
184499
+ /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.PolyfaceClip),
184500
+ /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__.PolyfaceData),
184501
+ /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.PolyfaceQuery),
184344
184502
  /* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
184345
184503
  /* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
184346
184504
  /* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
184347
184505
  /* harmony export */ PolylineOps: () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
184348
- /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.PowerPolynomial),
184349
- /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__.ProxyCurve),
184350
- /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.Quadrature),
184506
+ /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.PowerPolynomial),
184507
+ /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__.ProxyCurve),
184508
+ /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.Quadrature),
184351
184509
  /* harmony export */ Range1d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
184352
- /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.Range1dArray),
184510
+ /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.Range1dArray),
184353
184511
  /* harmony export */ Range2d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
184354
184512
  /* harmony export */ Range3d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
184355
184513
  /* harmony export */ RangeBase: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
184356
184514
  /* harmony export */ Ray2d: () => (/* reexport safe */ _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__.Ray2d),
184357
184515
  /* harmony export */ Ray3d: () => (/* reexport safe */ _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__.Ray3d),
184358
184516
  /* harmony export */ RecurseToCurvesGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.RecurseToCurvesGeometryHandler),
184359
- /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessor),
184360
- /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessorWithStack),
184361
- /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionBinaryOpType),
184362
- /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__.RegionMomentsXY),
184363
- /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionOps),
184364
- /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__.RotationalSweep),
184365
- /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__.RuledSweep),
184366
- /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
184517
+ /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessor),
184518
+ /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessorWithStack),
184519
+ /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionBinaryOpType),
184520
+ /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__.RegionMomentsXY),
184521
+ /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionOps),
184522
+ /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__.RotationalSweep),
184523
+ /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__.RuledSweep),
184524
+ /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.Sample),
184367
184525
  /* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
184368
- /* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
184369
- /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
184370
- /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
184526
+ /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SineCosinePolynomial),
184527
+ /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SmallSystem),
184371
184528
  /* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
184372
- /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__.SolidPrimitive),
184373
- /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
184374
- /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__.Sphere),
184375
- /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
184529
+ /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
184530
+ /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__.SpacePolygonTriangulation),
184531
+ /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
184532
+ /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SphereImplicit),
184376
184533
  /* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
184377
- /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
184534
+ /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.SteppedIndexFunctionFactory),
184378
184535
  /* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
184379
- /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__.StrokeCountMap),
184380
- /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__.StrokeOptions),
184381
- /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__.SweepContour),
184382
- /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
184383
- /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
184384
- /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
184385
- /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
184386
- /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__.TorusPipe),
184536
+ /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__.StrokeCountMap),
184537
+ /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__.StrokeOptions),
184538
+ /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__.SweepContour),
184539
+ /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.SweepLineStringToFacetsOptions),
184540
+ /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericConstants),
184541
+ /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericData),
184542
+ /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TorusImplicit),
184543
+ /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__.TorusPipe),
184387
184544
  /* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
184388
- /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__.TransitionSpiral3d),
184389
- /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
184545
+ /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__.TransitionSpiral3d),
184546
+ /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__.TriDiagonalSystem),
184390
184547
  /* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
184391
- /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.TriangularFacetLocationDetail),
184392
- /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
184393
- /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
184394
- /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.UVSelect),
184548
+ /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.TriangularFacetLocationDetail),
184549
+ /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__.Triangulator),
184550
+ /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TrigPolynomial),
184551
+ /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.UVSelect),
184395
184552
  /* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
184396
184553
  /* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
184397
- /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__.UnionRegion),
184554
+ /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__.UnionRegion),
184398
184555
  /* harmony export */ UnivariateBezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.UnivariateBezier),
184399
184556
  /* harmony export */ Vector2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d),
184400
184557
  /* harmony export */ Vector3d: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.Vector3d),
184401
184558
  /* harmony export */ Vector3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Vector3dArray),
184402
- /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.WeightStyle),
184559
+ /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.WeightStyle),
184403
184560
  /* harmony export */ XY: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.XY),
184404
184561
  /* harmony export */ XYAndZ: () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
184405
184562
  /* harmony export */ XYZ: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
184406
184563
  /* harmony export */ YawPitchRollAngles: () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
184407
- /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.compareRange1dLexicalLowHigh),
184408
- /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.interpolateColor)
184564
+ /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh),
184565
+ /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.interpolateColor)
184409
184566
  /* harmony export */ });
184410
184567
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
184411
184568
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -184460,83 +184617,82 @@ __webpack_require__.r(__webpack_exports__);
184460
184617
  /* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
184461
184618
  /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
184462
184619
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
184463
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
184464
- /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
184465
- /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
184466
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
184467
- /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
184468
- /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
184469
- /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
184470
- /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
184471
- /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
184472
- /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
184473
- /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
184474
- /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
184475
- /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
184476
- /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
184477
- /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
184478
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
184479
- /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
184480
- /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
184481
- /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
184482
- /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
184483
- /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
184484
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
184485
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
184486
- /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
184487
- /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
184488
- /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
184489
- /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
184490
- /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
184491
- /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
184492
- /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
184493
- /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
184494
- /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
184495
- /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
184496
- /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
184497
- /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
184498
- /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
184499
- /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
184500
- /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
184501
- /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
184502
- /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
184503
- /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
184504
- /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
184505
- /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
184506
- /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
184507
- /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
184508
- /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
184509
- /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
184510
- /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
184511
- /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
184512
- /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
184513
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
184514
- /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
184515
- /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
184516
- /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
184517
- /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
184518
- /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
184519
- /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
184520
- /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
184521
- /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
184522
- /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
184523
- /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
184524
- /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
184525
- /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
184526
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
184527
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
184528
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
184529
- /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
184530
- /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
184531
- /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
184532
- /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
184533
- /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
184534
- /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
184535
- /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
184536
- /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
184537
- /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
184538
- /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
184539
- /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
184620
+ /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
184621
+ /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
184622
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
184623
+ /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
184624
+ /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
184625
+ /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
184626
+ /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
184627
+ /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
184628
+ /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
184629
+ /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
184630
+ /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
184631
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
184632
+ /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
184633
+ /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
184634
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
184635
+ /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
184636
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
184637
+ /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
184638
+ /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
184639
+ /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
184640
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
184641
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
184642
+ /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
184643
+ /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
184644
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
184645
+ /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
184646
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
184647
+ /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
184648
+ /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
184649
+ /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
184650
+ /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
184651
+ /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
184652
+ /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
184653
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
184654
+ /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
184655
+ /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
184656
+ /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
184657
+ /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
184658
+ /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
184659
+ /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
184660
+ /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
184661
+ /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
184662
+ /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
184663
+ /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
184664
+ /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
184665
+ /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
184666
+ /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
184667
+ /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
184668
+ /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
184669
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
184670
+ /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
184671
+ /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
184672
+ /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
184673
+ /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
184674
+ /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
184675
+ /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
184676
+ /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
184677
+ /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
184678
+ /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
184679
+ /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
184680
+ /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
184681
+ /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
184682
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
184683
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
184684
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
184685
+ /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
184686
+ /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
184687
+ /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
184688
+ /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
184689
+ /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
184690
+ /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
184691
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
184692
+ /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
184693
+ /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
184694
+ /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
184695
+ /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
184540
184696
  /*---------------------------------------------------------------------------------------------
184541
184697
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
184542
184698
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -184786,8 +184942,6 @@ __webpack_require__.r(__webpack_exports__);
184786
184942
 
184787
184943
 
184788
184944
 
184789
-
184790
-
184791
184945
 
184792
184946
 
184793
184947
 
@@ -185037,13 +185191,13 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
185037
185191
  static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
185038
185192
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointB);
185039
185193
  const vectorAC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointC);
185040
- const ab = vectorAB.magnitude();
185041
- const bc = vectorAC.magnitude();
185042
- const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(ab * bc));
185194
+ const ab2 = vectorAB.magnitudeSquared();
185195
+ const ac2 = vectorAC.magnitudeSquared();
185196
+ const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
185043
185197
  if (normal) {
185044
185198
  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
185045
- 0.5 * ab * ab, // vectorToCenter DOT vectorBA = 0.5 * vectorBA DOT vectorBA (Rayleigh quotient)
185046
- 0.5 * bc * bc); // vectorToCenter DOT vectorBC = 0.5 * vectorBC DOT vectorBC (Rayleigh quotient)
185199
+ 0.5 * ab2, // vectorToCenter DOT vectorAB = 0.5 * vectorAB DOT vectorAB (Rayleigh quotient)
185200
+ 0.5 * ac2);
185047
185201
  if (vectorToCenter) {
185048
185202
  const center = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(pointA.x, pointA.y, pointA.z).plus(vectorToCenter);
185049
185203
  const vectorX = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(center, pointA);
@@ -190690,6 +190844,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190690
190844
  /**
190691
190845
  * Evaluate a point a fractional position and derivative with respect to fraction along this linestring.
190692
190846
  * * See `LineString3d` class comments for description of how fraction relates to the linestring points.
190847
+ * * At interior corners and the end point, the left derivative is returned; at the start point, the right derivative is returned.
190693
190848
  * @param fraction fractional position
190694
190849
  * @param result optional result
190695
190850
  */
@@ -196744,16 +196899,17 @@ __webpack_require__.r(__webpack_exports__);
196744
196899
  /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
196745
196900
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
196746
196901
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
196747
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
196748
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
196902
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
196903
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
196749
196904
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
196750
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
196905
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
196906
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
196751
196907
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
196752
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
196753
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
196908
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
196909
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
196754
196910
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
196755
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
196756
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
196911
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
196912
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
196757
196913
  /*---------------------------------------------------------------------------------------------
196758
196914
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
196759
196915
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -196775,7 +196931,8 @@ __webpack_require__.r(__webpack_exports__);
196775
196931
 
196776
196932
 
196777
196933
 
196778
- // cspell:word XYRR
196934
+
196935
+ // cspell:word XYRR currentdFdX
196779
196936
  /**
196780
196937
  * Handler class for XY close approach between _geometryB and another geometry.
196781
196938
  * * Approach means the XY distance (z is ignored) between _geometryB and another geometry.
@@ -197110,10 +197267,44 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197110
197267
  this.testAndRecordProjection(cpB, fB1, pointB1, cpA, fA0, fA1, !reversed);
197111
197268
  }
197112
197269
  }
197270
+ /**
197271
+ * Return XY closest approach between a curve primitive and a point.
197272
+ * Currently, this function only supports Arc3d and LineSegment.
197273
+ * Note that this function doesn't handle endpoints.
197274
+ */
197275
+ getPointCurveClosestApproachXYNewton(curveP, pointQ) {
197276
+ if (!(curveP instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) && !(curveP instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d)) {
197277
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"getPointCurveClosestApproachXYNewton only supports Arc3d and LineSegment");
197278
+ return undefined;
197279
+ }
197280
+ const seeds = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: arcs have up to 4 perpendiculars; lines have only 1
197281
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurvePointCloseApproachXYRtoRD(curveP, pointQ);
197282
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton1dUnbounded(newtonEvaluator);
197283
+ let minCloseApproachLength = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.largeCoordinateResult;
197284
+ let minCurvePFraction;
197285
+ let minPointP;
197286
+ for (const seed of seeds) {
197287
+ newtonSearcher.setX(seed);
197288
+ if (newtonSearcher.runIterations()) {
197289
+ const curvePFraction = newtonSearcher.getX();
197290
+ if (this.acceptFraction(curvePFraction)) {
197291
+ const pointP = curveP.fractionToPoint(curvePFraction);
197292
+ const closeApproachLength = pointP.distanceSquaredXY(pointQ);
197293
+ if (closeApproachLength < minCloseApproachLength) {
197294
+ minCloseApproachLength = closeApproachLength;
197295
+ minCurvePFraction = curvePFraction;
197296
+ minPointP = pointP;
197297
+ }
197298
+ }
197299
+ }
197300
+ }
197301
+ if (minCurvePFraction && minPointP)
197302
+ return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(curveP, minCurvePFraction, minPointP);
197303
+ return undefined;
197304
+ }
197113
197305
  /** Find the closest approach between pointA and cpB. Add the approach if it's within fB0 and fB1. */
197114
197306
  testAndRecordProjection(cpA, fA, pointA, cpB, fB0, fB1, reversed) {
197115
- // NO NO NO -- this is 3D closest point --- need 2d !!
197116
- const detail = cpB.closestPoint(pointA, false);
197307
+ const detail = this.getPointCurveClosestApproachXYNewton(cpB, pointA);
197117
197308
  if (detail) {
197118
197309
  const fB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.restrictToInterval(detail.fraction, fB0, fB1);
197119
197310
  if (fB === detail.fraction) { // if fraction is within fB0 and fB1
@@ -197142,13 +197333,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197142
197333
  this.computeSegmentSegment3D(cpA, pointA0, fractionA0, pointA1, fractionA1, cpB, pointB0, fractionB0, pointB1, fractionB1, reversed);
197143
197334
  }
197144
197335
  /**
197145
- * Low level dispatch of segment with arc.
197336
+ * Low level dispatch of line segment with arc.
197146
197337
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
197147
197338
  * To consider:
197148
197339
  * 1) intersection between arc and segment.
197149
- * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
197150
- * 3) line parallel to arc tangent.
197151
- * @param cpA curve A (line segment or line string)
197340
+ * 2) endpoints to endpoints or endpoints projection to the other curve.
197341
+ * 3) arc tangent parallel to line segment (or line string).
197342
+ * @param cpA curve A (line segment or line string; if it is a line string, then the fractions must specify a segment)
197152
197343
  * @param pointA0 start point of the segment
197153
197344
  * @param fractionA0 fraction of the start of the segment
197154
197345
  * @param pointA1 end point of the segment
@@ -197157,7 +197348,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197157
197348
  * @param reversed whether to reverse the details in the pair (e.g., so that detailB refers to geometryB).
197158
197349
  */
197159
197350
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
197160
- // 1) intersection between arc and segment
197351
+ // 1) intersection between arc and line segment (or string).
197161
197352
  // Suppose:
197162
197353
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
197163
197354
  // Line: contains points A0 and A1
@@ -197173,15 +197364,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197173
197364
  const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1); // det(A0, A1, C)
197174
197365
  const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0); // det(A0, A1, U)
197175
197366
  const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0); // det(A0, A1, V)
197176
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
197177
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
197178
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
197179
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
197367
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197368
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197369
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197370
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
197180
197371
  alpha, beta, gamma, cosines, sines, radians);
197181
197372
  for (let i = 0; i < numRoots; i++) {
197182
197373
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
197183
197374
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
197184
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197375
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197185
197376
  // only add if the point is within the start and end fractions of both line segment and arc
197186
197377
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
197187
197378
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
@@ -197190,9 +197381,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197190
197381
  }
197191
197382
  if (intersectionFound)
197192
197383
  return;
197193
- // 2) endpoints to endpoints or endpoints projection to the other curve
197194
- this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
197195
- // 3) line parallel to arc tangent.
197384
+ // 2) endpoints to endpoints or endpoints projection to the other curve.
197385
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, true, reversed);
197386
+ // 3) arc tangent parallel to line segment (or string).
197196
197387
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
197197
197388
  // point where the tangent line on arc at that point is parallel to the line.
197198
197389
  const dotUT = data.vector0.crossProductStartEndXY(pointA0, pointA1);
@@ -197201,94 +197392,71 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197201
197392
  for (const radians1 of [parallelRadians, parallelRadians + Math.PI]) {
197202
197393
  const arcPoint = data.center.plus2Scaled(data.vector0, Math.cos(radians1), data.vector90, Math.sin(radians1));
197203
197394
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians1);
197204
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197395
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197205
197396
  // only add if the point is within the start and end fractions of both line segment and arc
197206
197397
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
197207
197398
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
197208
197399
  }
197209
197400
  }
197210
197401
  }
197211
- /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
197212
- dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
197213
- const c = cpA.center.distance(cpB.center);
197214
- const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance;
197215
- if (c > radiusA + radiusB + e) // distance between circles is more than max distance
197216
- return;
197217
- // TODO: 1) intersection between arcs
197218
- // 2) endpoints to endpoints
197219
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
197220
- // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
197221
- if (!_Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isSmallMetricDistance(c)) {
197222
- const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(cpA.center, cpB.center);
197223
- vectorAB.scaleInPlace(1.0 / c);
197224
- for (const rA of [-radiusA, radiusA]) {
197225
- for (const rB of [-radiusB, radiusB]) {
197226
- const tangentDistance = c - rA + rB;
197227
- if (tangentDistance < e) {
197228
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
197229
- if (detailA) {
197230
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
197231
- if (detailB)
197232
- this.captureDetailPair(detailA, detailB, reversed);
197233
- }
197402
+ /** Solve Newton for 2 arcs and the given newtonEvaluator. */
197403
+ solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator) {
197404
+ const seedsU = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: 2 arcs have up to 4 perpendiculars/intersections
197405
+ const seedsV = [0.2, 0.4, 0.6, 0.8];
197406
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton2dUnboundedWithDerivative(newtonEvaluator);
197407
+ for (const seedU of seedsU) {
197408
+ for (const seedV of seedsV) {
197409
+ newtonSearcher.setUV(seedU, seedV);
197410
+ if (newtonSearcher.runIterations()) {
197411
+ const curvePFraction = newtonSearcher.getU();
197412
+ const curveQFraction = newtonSearcher.getV();
197413
+ if (this.acceptFraction(curvePFraction) && this.acceptFraction(curveQFraction)) {
197414
+ this.recordPointWithLocalFractions(curvePFraction, curveP, 0, 1, curveQFraction, curveQ, 0, 1, reversed);
197234
197415
  }
197235
197416
  }
197236
197417
  }
197237
197418
  }
197238
197419
  }
197239
- /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
197240
- resolveDirectionToArcXYFraction(arc, radialVector, scale) {
197241
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
197242
- const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
197243
- const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
197244
- const radians = Math.atan2(s, c);
197245
- const fraction = arc.sweep.radiansToPositivePeriodicFraction(radians, 0);
197246
- if (fraction < 1.0)
197247
- return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
197248
- return undefined;
197420
+ /** Find and store perpendicular line between 2 arcs. */
197421
+ findPerpLineXYArcArcNewton(curveP, curveQ, reversed) {
197422
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurveCurveCloseApproachXYRRtoRRD(curveP, curveQ);
197423
+ this.solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator);
197249
197424
  }
197250
- /** Low level dispatch of arc with arc. Only circular arcs are supported. */
197425
+ /** Low level dispatch of arc with Arc3d. */
197251
197426
  dispatchArcArc(cpA, cpB, reversed) {
197252
197427
  const rangeA = cpA.range();
197253
197428
  const rangeB = cpB.range();
197254
197429
  rangeA.expandInPlace(this._maxDistanceToAccept);
197255
197430
  if (!rangeB.intersectsRangeXY(rangeA))
197256
197431
  return;
197257
- if (this._circularArcB) {
197258
- const radiusB = this._circularRadiusB;
197259
- const radiusA = cpA.circularRadiusXY();
197260
- if (radiusA !== undefined) {
197261
- if (radiusA >= radiusB)
197262
- this.dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed);
197263
- else
197264
- this.dispatchCircularCircularOrdered(cpB, radiusB, cpA, radiusA, !reversed);
197265
- return;
197266
- }
197267
- }
197432
+ // 1) endpoints to endpoints or endpoints projection to the other curve
197433
+ this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, cpB, 0, 1, true, reversed);
197434
+ // 2) perpendicular line between 2 arcs (includes intersections)
197435
+ this.findPerpLineXYArcArcNewton(cpA, cpB, reversed);
197268
197436
  }
197269
197437
  /** Low level dispatch of arc with (beziers of) a bspline curve */
197270
197438
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
197271
- const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
197439
+ const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
197272
197440
  cpB.emitStrokes(ls);
197273
197441
  this.computeArcLineString(cpA, ls, reversed);
197274
197442
  }
197275
197443
  /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
197276
197444
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
197277
- const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
197445
+ const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
197278
197446
  bcurveA.emitStrokes(lsA);
197279
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
197447
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
197280
197448
  bcurveB.emitStrokes(lsB);
197281
197449
  this.computeLineStringLineString(lsA, lsB, reversed);
197282
197450
  }
197283
197451
  /** Low level dispatch of linestring with (beziers of) a bspline curve */
197284
197452
  dispatchLineStringBSplineCurve(lsA, curveB, reversed) {
197285
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
197453
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
197286
197454
  curveB.emitStrokes(lsB);
197287
197455
  this.computeLineStringLineString(lsA, lsB, reversed);
197288
197456
  }
197289
197457
  /** Low level dispatch of segment with (beziers of) a bspline curve */
197290
197458
  dispatchSegmentBsplineCurve(segA, curveB, reversed) {
197291
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
197459
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
197292
197460
  curveB.emitStrokes(lsB);
197293
197461
  this.computeSegmentLineString(segA, lsB, reversed);
197294
197462
  }
@@ -197335,7 +197503,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197335
197503
  /** Low level dispatch of curve collection. */
197336
197504
  dispatchCurveCollection(geomA, geomAHandler) {
197337
197505
  const geomB = this._geometryB; // save
197338
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection))
197506
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection))
197339
197507
  return;
197340
197508
  for (const child of geomB.children) {
197341
197509
  this.resetGeometry(child);
@@ -197345,9 +197513,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197345
197513
  }
197346
197514
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
197347
197515
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
197348
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
197516
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
197349
197517
  return;
197350
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197518
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
197351
197519
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
197352
197520
  return;
197353
197521
  }
@@ -197358,15 +197526,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197358
197526
  geomAHandler(geomA);
197359
197527
  }
197360
197528
  this.resetGeometry(geomB); // restore
197361
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
197529
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
197362
197530
  }
197363
197531
  /** Double dispatch handler for strongly typed segment. */
197364
197532
  handleLineSegment3d(segmentA) {
197365
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
197533
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
197366
197534
  const segmentB = this._geometryB;
197367
197535
  this.dispatchSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
197368
197536
  }
197369
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
197537
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
197370
197538
  this.computeSegmentLineString(segmentA, this._geometryB, false);
197371
197539
  }
197372
197540
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -197375,10 +197543,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197375
197543
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
197376
197544
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
197377
197545
  }
197378
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
197546
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
197379
197547
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
197380
197548
  }
197381
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197549
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
197382
197550
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
197383
197551
  }
197384
197552
  return undefined;
@@ -197461,11 +197629,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197461
197629
  }
197462
197630
  /** Double dispatch handler for strongly typed linestring. */
197463
197631
  handleLineString3d(lsA) {
197464
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
197632
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
197465
197633
  const lsB = this._geometryB;
197466
197634
  this.computeLineStringLineString(lsA, lsB, false);
197467
197635
  }
197468
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
197636
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
197469
197637
  this.computeSegmentLineString(this._geometryB, lsA, true);
197470
197638
  }
197471
197639
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -197474,20 +197642,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197474
197642
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
197475
197643
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
197476
197644
  }
197477
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
197645
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
197478
197646
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
197479
197647
  }
197480
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197648
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
197481
197649
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
197482
197650
  }
197483
197651
  return undefined;
197484
197652
  }
197485
197653
  /** Double dispatch handler for strongly typed arc. */
197486
197654
  handleArc3d(arc0) {
197487
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
197655
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
197488
197656
  this.dispatchSegmentArc(this._geometryB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, arc0, true);
197489
197657
  }
197490
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
197658
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
197491
197659
  this.computeArcLineString(arc0, this._geometryB, false);
197492
197660
  }
197493
197661
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -197496,20 +197664,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197496
197664
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
197497
197665
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
197498
197666
  }
197499
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
197667
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
197500
197668
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
197501
197669
  }
197502
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197670
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
197503
197671
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
197504
197672
  }
197505
197673
  return undefined;
197506
197674
  }
197507
197675
  /** Double dispatch handler for strongly typed bspline curve. */
197508
197676
  handleBSplineCurve3d(curve) {
197509
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
197677
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
197510
197678
  this.dispatchSegmentBsplineCurve(this._geometryB, curve, true);
197511
197679
  }
197512
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
197680
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
197513
197681
  this.dispatchLineStringBSplineCurve(this._geometryB, curve, true);
197514
197682
  }
197515
197683
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -197518,10 +197686,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197518
197686
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
197519
197687
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
197520
197688
  }
197521
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
197689
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
197522
197690
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
197523
197691
  }
197524
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197692
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
197525
197693
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
197526
197694
  }
197527
197695
  return undefined;
@@ -197530,7 +197698,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197530
197698
  handleCurveChainWithDistanceIndex(chain) {
197531
197699
  super.handleCurveChainWithDistanceIndex(chain);
197532
197700
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
197533
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
197701
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
197534
197702
  }
197535
197703
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
197536
197704
  handleBSplineCurve3dH(_curve) {
@@ -197550,11 +197718,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197550
197718
  return undefined;
197551
197719
  }
197552
197720
  }
197553
- CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
197554
- CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
197555
- CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
197556
- CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
197557
- CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
197721
+ CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
197722
+ CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
197723
+ CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
197724
+ CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
197725
+ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
197558
197726
 
197559
197727
 
197560
197728
 
@@ -197569,29 +197737,27 @@ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMP
197569
197737
  "use strict";
197570
197738
  __webpack_require__.r(__webpack_exports__);
197571
197739
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
197572
- /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* binding */ BezierBezierIntersectionXYRRToRRD),
197573
197740
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
197574
197741
  /* harmony export */ });
197575
197742
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
197576
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
197577
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
197578
- /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
197579
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
197580
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
197581
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
197582
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
197583
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
197584
- /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
197585
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
197586
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
197587
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
197588
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
197589
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
197590
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
197591
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
197592
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
197593
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
197594
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
197743
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
197744
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
197745
+ /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
197746
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
197747
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
197748
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
197749
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
197750
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
197751
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
197752
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
197753
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
197754
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
197755
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
197756
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
197757
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
197758
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
197759
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
197760
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
197595
197761
  /*---------------------------------------------------------------------------------------------
197596
197762
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
197597
197763
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -197618,35 +197784,14 @@ __webpack_require__.r(__webpack_exports__);
197618
197784
 
197619
197785
 
197620
197786
 
197621
-
197622
197787
  // cspell:word XYRR
197623
- /**
197624
- * Private class for refining bezier-bezier intersections.
197625
- * * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
197626
- * @internal
197627
- */
197628
- class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.NewtonEvaluatorRRtoRRD {
197629
- constructor(curveA, curveB) {
197630
- super();
197631
- this._curveA = curveA;
197632
- this._curveB = curveB;
197633
- this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
197634
- this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
197635
- }
197636
- evaluate(fractionA, fractionB) {
197637
- this._curveA.fractionToPointAndDerivative(fractionA, this._rayA);
197638
- this._curveB.fractionToPointAndDerivative(fractionB, this._rayB);
197639
- 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);
197640
- return true;
197641
- }
197642
- }
197643
197788
  /**
197644
197789
  * Handler class for XY intersections between _geometryB and another geometry.
197645
197790
  * * Instances are initialized and called from CurveCurve.
197646
197791
  * * geometryB is saved for later reference.
197647
197792
  * @internal
197648
197793
  */
197649
- class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.RecurseToCurvesGeometryHandler {
197794
+ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.RecurseToCurvesGeometryHandler {
197650
197795
  /**
197651
197796
  * The constructor.
197652
197797
  * @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
@@ -197655,7 +197800,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197655
197800
  * @param extendB flag for extension of geometryB.
197656
197801
  * @param tolerance optional distance tolerance for coincidence.
197657
197802
  */
197658
- constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
197803
+ constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
197659
197804
  super();
197660
197805
  this._extendA = extendA;
197661
197806
  this._geometryB = geometryB;
@@ -197667,7 +197812,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197667
197812
  if (!this._worldToLocalAffine)
197668
197813
  this._worldToLocalPerspective = worldToLocal.clone();
197669
197814
  }
197670
- this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__.CoincidentGeometryQuery.create(tolerance);
197815
+ this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__.CoincidentGeometryQuery.create(tolerance);
197671
197816
  this._results = [];
197672
197817
  }
197673
197818
  /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
@@ -197682,12 +197827,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197682
197827
  return true;
197683
197828
  }
197684
197829
  /** Test the fraction by strict parameter, but allow toleranced distance test at ends. */
197685
- acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
197830
+ acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
197686
197831
  if (!extend0 && fraction < 0) {
197687
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
197832
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
197688
197833
  }
197689
197834
  else if (!extend1 && fraction > 1.0)
197690
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
197835
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
197691
197836
  return true;
197692
197837
  }
197693
197838
  /**
@@ -197720,14 +197865,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197720
197865
  intervalDetails.detailA.hasFraction1 &&
197721
197866
  intervalDetails.detailB.hasFraction1;
197722
197867
  if (isInterval) {
197723
- globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
197724
- globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
197725
- globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
197726
- globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
197868
+ globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
197869
+ globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
197870
+ globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
197871
+ globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
197727
197872
  }
197728
197873
  else {
197729
- globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
197730
- globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
197874
+ globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
197875
+ globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
197731
197876
  }
197732
197877
  // ignore duplicate of most recent pair
197733
197878
  const numPrevious = this._results.length;
@@ -197745,21 +197890,21 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197745
197890
  return;
197746
197891
  }
197747
197892
  }
197748
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
197749
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
197893
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
197894
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
197750
197895
  if (isInterval) {
197751
197896
  detailA.captureFraction1Point1(globalFractionA1, cpA.fractionToPoint(globalFractionA1));
197752
197897
  detailB.captureFraction1Point1(globalFractionB1, cpB.fractionToPoint(globalFractionB1));
197753
197898
  }
197754
197899
  else {
197755
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
197756
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
197900
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
197901
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
197757
197902
  }
197758
197903
  if (reversed) {
197759
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailB, detailA));
197904
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailB, detailA));
197760
197905
  }
197761
197906
  else {
197762
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailA, detailB));
197907
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailA, detailB));
197763
197908
  }
197764
197909
  }
197765
197910
  /**
@@ -197789,7 +197934,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197789
197934
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
197790
197935
  }
197791
197936
  }
197792
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
197937
+ else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
197793
197938
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
197794
197939
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
197795
197940
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -197809,7 +197954,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197809
197954
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
197810
197955
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
197811
197956
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
197812
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
197957
+ const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
197813
197958
  if (fractionAB !== undefined) {
197814
197959
  const fractionA = fractionAB.x;
197815
197960
  const fractionB = fractionAB.y;
@@ -197852,17 +197997,17 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197852
197997
  const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
197853
197998
  const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
197854
197999
  const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
197855
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
197856
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
197857
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
197858
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197859
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197860
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197861
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
198000
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
198001
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
198002
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
198003
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198004
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198005
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198006
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197862
198007
  for (let i = 0; i < numRoots; i++) {
197863
198008
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
197864
198009
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
197865
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
198010
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
197866
198011
  if (lineFraction !== undefined &&
197867
198012
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
197868
198013
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -197878,19 +198023,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197878
198023
  pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
197879
198024
  pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
197880
198025
  }
197881
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
197882
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
197883
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
197884
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197885
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197886
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197887
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
198026
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
198027
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
198028
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
198029
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198030
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198031
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
198032
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197888
198033
  const lineFractionTol = 1.0e-10;
197889
198034
  const arcFractionTol = 1.0e-7;
197890
198035
  for (let i = 0; i < numRoots; i++) {
197891
198036
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
197892
198037
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
197893
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
198038
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197894
198039
  if (lineFraction !== undefined &&
197895
198040
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
197896
198041
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -197899,65 +198044,66 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197899
198044
  }
197900
198045
  }
197901
198046
  }
197902
- // Caller accesses data from two arcs.
197903
- // Each matrix has [U V C] in (x,y,w) form from projection.
197904
- // Invert the projection matrix matrixA.
197905
- // Apply the inverse to matrixB. Then arc b is an ellipse in the circular space of A.
197906
- dispatchArcArcThisOrder(cpA, matrixA, // homogeneous xyw projection !!!
197907
- extendA, cpB, matrixB, // homogeneous xyw projection !!!
197908
- extendB, reversed) {
198047
+ /**
198048
+ * Compute the intersection of two xy-arcs.
198049
+ * * Each matrix has [U V C] in (x,y,w) form from homogeneous projection (local to world).
198050
+ * * Arcs are ordered so that matrixA is better conditioned.
198051
+ */
198052
+ dispatchArcArcThisOrder(cpA, // arc closer to being circular
198053
+ matrixA, extendA, cpB, matrixB, extendB, reversed) {
198054
+ // inverseA transforms arcA to its local coordinates, where it is the unit xy-circle.
197909
198055
  const inverseA = matrixA.inverse();
197910
198056
  if (inverseA) {
197911
- const localB = inverseA.multiplyMatrixMatrix(matrixB); // localB->localA transform
198057
+ // localB defines the arc formed by transforming arcB into the local coordinates of arcA
198058
+ const localB = inverseA.multiplyMatrixMatrix(matrixB);
197912
198059
  const ellipseRadians = [];
197913
198060
  const circleRadians = [];
197914
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
198061
+ // find the intersection of the transformed arcs
198062
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
197915
198063
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
197916
198064
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
197917
198065
  ellipseRadians, circleRadians);
198066
+ // the intersections are transform-invariant, so the solution angles apply directly to the input arcs
197918
198067
  for (let i = 0; i < ellipseRadians.length; i++) {
197919
198068
  const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
197920
198069
  const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
197921
- // hm .. do we really need to check the fractions? We know they are internal to the beziers
197922
198070
  if (this.acceptFraction(extendA, fractionA, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
197923
198071
  this.recordPointWithLocalFractions(fractionA, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
197924
198072
  }
197925
198073
  }
197926
198074
  }
197927
198075
  }
197928
- // Caller accesses data from two arcs.
197929
- // Selects the best conditioned arc (in xy parts) as "circle after inversion".
197930
- // Solves the arc-arc equations.
198076
+ /**
198077
+ * We have 2 xy-arcs.
198078
+ * 1- We pick the arc that is closest to circular (larger condition number is closer to circular).
198079
+ * 2- Transform it to local coords, where it becomes the unit xy-circle.
198080
+ * 3- Use the same map to transform the other arc.
198081
+ * 4- Find the intersection of arc and unit circle.
198082
+ * 5- Convert intersection angles to fractions and record intersections.
198083
+ */
197931
198084
  dispatchArcArc(cpA, extendA, cpB, extendB, reversed) {
197932
- // Arc: X = C + cU + sV
197933
- // Line: contains points A0,A1
197934
- // Arc point colinear with line if det (A0, A1, X) = 0
197935
- // with homogeneous xyw points and vectors.
197936
- // With equational X: det (A0, A1, C) + c det (A0, A1, U) + s det (A0, A1, V) = 0.
197937
- // solve for theta.
197938
- // evaluate points.
197939
- // project back to line.
197940
198085
  let matrixA;
197941
198086
  let matrixB;
197942
198087
  if (this._worldToLocalPerspective) {
197943
198088
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
197944
198089
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
197945
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197946
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
198090
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
198091
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
197947
198092
  }
197948
198093
  else {
197949
198094
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
197950
198095
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
197951
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197952
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
198096
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
198097
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
197953
198098
  }
197954
198099
  const conditionA = matrixA.conditionNumber();
197955
198100
  const conditionB = matrixB.conditionNumber();
198101
+ // pick the arc that is closest to circular.
197956
198102
  if (conditionA > conditionB)
197957
198103
  this.dispatchArcArcThisOrder(cpA, matrixA, extendA, cpB, matrixB, extendB, reversed);
197958
198104
  else
197959
198105
  this.dispatchArcArcThisOrder(cpB, matrixB, extendB, cpA, matrixA, extendA, !reversed);
197960
- // overlap handling .. perspective is not handled . . .
198106
+ // overlap handling. perspective is not handled.
197961
198107
  if (!this._coincidentGeometryContext) {
197962
198108
  // do nothing
197963
198109
  }
@@ -197979,11 +198125,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197979
198125
  let matrixA;
197980
198126
  if (this._worldToLocalPerspective) {
197981
198127
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
197982
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
198128
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197983
198129
  }
197984
198130
  else {
197985
198131
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
197986
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
198132
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197987
198133
  }
197988
198134
  // The worldToLocal has moved the arc vectors into local space.
197989
198135
  // matrixA captures the xyw parts (ignoring z)
@@ -197994,7 +198140,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197994
198140
  const orderF = cpB.order; // order of the beziers for simple coordinates
197995
198141
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
197996
198142
  const coffF = new Float64Array(orderF);
197997
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderG);
198143
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderG);
197998
198144
  const axx = matrixAInverse.at(0, 0);
197999
198145
  const axy = matrixAInverse.at(0, 1);
198000
198146
  const axz = 0.0;
@@ -198065,13 +198211,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198065
198211
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
198066
198212
  reversed) {
198067
198213
  if (!this._xyzwA0)
198068
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198214
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198069
198215
  if (!this._xyzwA1)
198070
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198216
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198071
198217
  if (!this._xyzwPlane)
198072
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198218
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198073
198219
  if (!this._xyzwB)
198074
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198220
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198075
198221
  /*
198076
198222
  const roots = univariateBezierG.roots(0.0, true);
198077
198223
  if (roots) {
@@ -198097,7 +198243,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198097
198243
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
198098
198244
  f1 = i * df;
198099
198245
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
198100
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
198246
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
198101
198247
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
198102
198248
  let errors = 0;
198103
198249
  const roots = univariateBezierB.roots(0.0, true);
@@ -198105,35 +198251,22 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198105
198251
  for (const r of roots) {
198106
198252
  let bezierBFraction = r;
198107
198253
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
198108
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
198109
- if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
198110
- let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(f0, segmentAFraction, f1);
198111
- const xyMatchingFunction = new BezierBezierIntersectionXYRRToRRD(bezierA, bezierB);
198112
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
198254
+ const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
198255
+ if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
198256
+ let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(f0, segmentAFraction, f1);
198257
+ // We have a near intersection at fractions on the two beziers
198258
+ // Iterate on the curves for a true intersection
198259
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
198260
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
198113
198261
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
198114
198262
  if (newtonSearcher.runIterations()) {
198115
198263
  bezierAFraction = newtonSearcher.getU();
198116
198264
  bezierBFraction = newtonSearcher.getV();
198117
198265
  }
198118
- // We have a near intersection at fractions on the two beziers !!!
198119
- // Iterate on the curves for a true intersection ....
198120
- // NEEDS WORK -- just accept . . .
198121
198266
  const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
198122
198267
  const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
198123
- const xyzA0 = bezierA.fractionToPoint(bezierAFraction);
198124
- const xyzA1 = bcurveA.fractionToPoint(bcurveAFraction);
198125
- const xyzB0 = bezierB.fractionToPoint(bezierBFraction);
198126
- const xyzB1 = bcurveB.fractionToPoint(bcurveBFraction);
198127
- if (!xyzA0.isAlmostEqualXY(xyzA1))
198128
- errors++;
198129
- if (!xyzB0.isAlmostEqualXY(xyzB1))
198130
- errors++;
198131
- if (errors > 0 && !xyzA0.isAlmostEqual(xyzB0))
198132
- errors++;
198133
- if (errors > 0 && !xyzA1.isAlmostEqual(xyzB1))
198134
- errors++;
198135
- if (this.acceptFraction(false, bcurveAFraction, false) &&
198136
- this.acceptFraction(false, bcurveBFraction, false)) {
198268
+ if (false) {}
198269
+ if (this.acceptFraction(false, bcurveAFraction, false) && this.acceptFraction(false, bcurveBFraction, false)) {
198137
198270
  this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
198138
198271
  }
198139
198272
  }
@@ -198152,8 +198285,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198152
198285
  const rangeB = this.getRanges(bezierSpanB);
198153
198286
  const orderA = bcurveA.order;
198154
198287
  const orderB = bcurveB.order;
198155
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderA);
198156
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderB);
198288
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderA);
198289
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderB);
198157
198290
  for (let a = 0; a < numA; a++) {
198158
198291
  for (let b = 0; b < numB; b++) {
198159
198292
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -198177,7 +198310,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198177
198310
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
198178
198311
  if (this._worldToLocalAffine)
198179
198312
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
198180
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createFromPointAndWeight(xyz, w);
198313
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createFromPointAndWeight(xyz, w);
198181
198314
  }
198182
198315
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
198183
198316
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -198201,7 +198334,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198201
198334
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB, reversed) {
198202
198335
  const pointA0H = this.projectPoint(pointA0);
198203
198336
  const pointA1H = this.projectPoint(pointA1);
198204
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
198337
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
198205
198338
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
198206
198339
  // NOW .. we have a plane in world space. Intersect it with the bspline:
198207
198340
  const intersections = [];
@@ -198213,7 +198346,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198213
198346
  const fractionB = detail.fraction;
198214
198347
  const curvePoint = detail.point;
198215
198348
  const curvePointH = this.projectPoint(curvePoint);
198216
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
198349
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
198217
198350
  if (lineFraction !== undefined) {
198218
198351
  if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB, fractionB, extendB)) {
198219
198352
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
@@ -198321,7 +198454,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198321
198454
  /** Low level dispatch of curve collection. */
198322
198455
  dispatchCurveCollection(geomA, geomAHandler) {
198323
198456
  const geomB = this._geometryB; // save
198324
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
198457
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
198325
198458
  return;
198326
198459
  for (const child of geomB.children) {
198327
198460
  this.resetGeometry(child);
@@ -198329,11 +198462,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198329
198462
  }
198330
198463
  this._geometryB = geomB; // restore
198331
198464
  }
198332
- /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
198465
+ /** Low level dispatch of CurveChainWithDistanceIndex. */
198333
198466
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
198334
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex))
198467
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
198335
198468
  return;
198336
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198469
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
198337
198470
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
198338
198471
  return;
198339
198472
  }
@@ -198344,94 +198477,94 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198344
198477
  geomAHandler(geomA);
198345
198478
  }
198346
198479
  this.resetGeometry(geomB); // restore
198347
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
198480
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
198348
198481
  }
198349
198482
  /** Double dispatch handler for strongly typed segment. */
198350
198483
  handleLineSegment3d(segmentA) {
198351
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198484
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
198352
198485
  const segmentB = this._geometryB;
198353
198486
  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);
198354
198487
  }
198355
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198488
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
198356
198489
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
198357
198490
  }
198358
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198491
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
198359
198492
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
198360
198493
  }
198361
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
198494
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
198362
198495
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
198363
198496
  }
198364
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198497
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
198365
198498
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
198366
198499
  }
198367
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198500
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
198368
198501
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
198369
198502
  }
198370
198503
  return undefined;
198371
198504
  }
198372
198505
  /** Double dispatch handler for strongly typed linestring. */
198373
198506
  handleLineString3d(lsA) {
198374
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198507
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
198375
198508
  const lsB = this._geometryB;
198376
198509
  this.computeLineStringLineString(lsA, lsB, false);
198377
198510
  }
198378
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198511
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
198379
198512
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198380
198513
  }
198381
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198514
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
198382
198515
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198383
198516
  }
198384
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
198517
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
198385
198518
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
198386
198519
  }
198387
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198520
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
198388
198521
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
198389
198522
  }
198390
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198523
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
198391
198524
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
198392
198525
  }
198393
198526
  return undefined;
198394
198527
  }
198395
198528
  /** Double dispatch handler for strongly typed arc. */
198396
198529
  handleArc3d(arc0) {
198397
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198530
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
198398
198531
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
198399
198532
  }
198400
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198533
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
198401
198534
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
198402
198535
  }
198403
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198536
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
198404
198537
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
198405
198538
  }
198406
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
198539
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
198407
198540
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
198408
198541
  }
198409
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198542
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
198410
198543
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
198411
198544
  }
198412
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198545
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
198413
198546
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
198414
198547
  }
198415
198548
  return undefined;
198416
198549
  }
198417
198550
  /** Double dispatch handler for strongly typed bspline curve. */
198418
198551
  handleBSplineCurve3d(curve) {
198419
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198552
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
198420
198553
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
198421
198554
  }
198422
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198555
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
198423
198556
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
198424
198557
  }
198425
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198558
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
198426
198559
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
198427
198560
  }
198428
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
198561
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3dBase) {
198429
198562
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
198430
198563
  }
198431
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198564
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
198432
198565
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
198433
198566
  }
198434
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198567
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
198435
198568
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
198436
198569
  }
198437
198570
  return undefined;
@@ -198440,7 +198573,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198440
198573
  handleCurveChainWithDistanceIndex(chain) {
198441
198574
  super.handleCurveChainWithDistanceIndex(chain);
198442
198575
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
198443
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
198576
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
198444
198577
  }
198445
198578
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
198446
198579
  handleBSplineCurve3dH(_curve) {
@@ -198460,19 +198593,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198460
198593
  return undefined;
198461
198594
  }
198462
198595
  }
198463
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__.Vector2d.create();
198464
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198465
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198466
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198467
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198468
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198469
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198470
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198471
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198472
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198473
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198474
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198475
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198596
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__.Vector2d.create();
198597
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198598
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198599
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198600
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
198601
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198602
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198603
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198604
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198605
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198606
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198607
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198608
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
198476
198609
 
198477
198610
 
198478
198611
 
@@ -198651,11 +198784,12 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198651
198784
  return undefined;
198652
198785
  }
198653
198786
  // Caller accesses data from a linestring or segment and passes it here.
198654
- // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
198787
+ // The line in question might be (a) a full line segment or (b) a fragment within a linestring.
198655
198788
  // The fraction and extend parameters allow all combinations to be passed in.
198656
198789
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
198657
198790
  const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(pointA0, pointA1);
198658
- const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, 0.94, arc.perpendicularVector, arc.vector0);
198791
+ const cosValue = 0.94; // cosine of 20 degrees
198792
+ const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, cosValue, arc.perpendicularVector, arc.vector0);
198659
198793
  if (plane !== undefined) {
198660
198794
  const candidates = [];
198661
198795
  arc.appendPlaneIntersectionPoints(plane, candidates);
@@ -228621,6 +228755,9 @@ class ConvexPolygon2d {
228621
228755
  __webpack_require__.r(__webpack_exports__);
228622
228756
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
228623
228757
  /* harmony export */ AbstractNewtonIterator: () => (/* binding */ AbstractNewtonIterator),
228758
+ /* harmony export */ CurveCurveCloseApproachXYRRtoRRD: () => (/* binding */ CurveCurveCloseApproachXYRRtoRRD),
228759
+ /* harmony export */ CurveCurveIntersectionXYRRToRRD: () => (/* binding */ CurveCurveIntersectionXYRRToRRD),
228760
+ /* harmony export */ CurvePointCloseApproachXYRtoRD: () => (/* binding */ CurvePointCloseApproachXYRtoRD),
228624
228761
  /* harmony export */ Newton1dUnbounded: () => (/* binding */ Newton1dUnbounded),
228625
228762
  /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* binding */ Newton1dUnboundedApproximateDerivative),
228626
228763
  /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* binding */ Newton2dUnboundedWithDerivative),
@@ -228632,6 +228769,7 @@ __webpack_require__.r(__webpack_exports__);
228632
228769
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
228633
228770
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
228634
228771
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
228772
+ /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
228635
228773
  /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
228636
228774
  /*---------------------------------------------------------------------------------------------
228637
228775
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -228644,7 +228782,8 @@ __webpack_require__.r(__webpack_exports__);
228644
228782
 
228645
228783
 
228646
228784
 
228647
- // cspell:word currentdFdX
228785
+
228786
+ // cspell:word currentdFdX XYRR
228648
228787
  /**
228649
228788
  * Base class for Newton iterations in various dimensions.
228650
228789
  * Dimension-specific classes carry all dimension-related data and answer generalized queries from this base class.
@@ -228698,6 +228837,7 @@ class AbstractNewtonIterator {
228698
228837
  this.numIterations = 0;
228699
228838
  while (this.numIterations++ < this._maxIterations && this.computeStep()) {
228700
228839
  if (this.testConvergence(this.currentStepSize()) && this.applyCurrentStep(true)) {
228840
+ // console.log("iter: " + this.numIterations); // print number of Newton iterations for debug
228701
228841
  return true;
228702
228842
  }
228703
228843
  this.applyCurrentStep(false);
@@ -228747,7 +228887,7 @@ class Newton1dUnbounded extends AbstractNewtonIterator {
228747
228887
  // console.log(this._currentX - this._currentStep); // print approximations for debug
228748
228888
  return this.setX(this._currentX - this._currentStep);
228749
228889
  }
228750
- /** Compute the univariate newton step. */
228890
+ /** Compute the univariate newton step dx. */
228751
228891
  computeStep() {
228752
228892
  if (this._func.evaluate(this._currentX)) {
228753
228893
  const dx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(this._func.currentF - this._target, this._func.currentdFdX);
@@ -228800,7 +228940,7 @@ class Newton1dUnboundedApproximateDerivative extends AbstractNewtonIterator {
228800
228940
  // console.log(this._currentX - this._currentStep); // print approximations for debug
228801
228941
  return this.setX(this._currentX - this._currentStep);
228802
228942
  }
228803
- /** Univariate newton step computed with approximate derivative. */
228943
+ /** Univariate newton step dx, computed with approximate derivative. */
228804
228944
  computeStep() {
228805
228945
  if (this._func.evaluate(this._currentX)) {
228806
228946
  const fA = this._func.currentF; // f(x_n)
@@ -228838,7 +228978,7 @@ class NewtonEvaluatorRRtoRRD {
228838
228978
  * * 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,
228839
228979
  * the 2D Newton's iteration to find a root of `F` is given by:
228840
228980
  * `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
228841
- * defined as:
228981
+ * defined by the partial derivatives of the component functions of F:
228842
228982
  *
228843
228983
  * `[dx/du dx/dv]`
228844
228984
  *
@@ -228851,7 +228991,8 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
228851
228991
  * @param func function that returns both function value and derivative.
228852
228992
  */
228853
228993
  constructor(func) {
228854
- super();
228994
+ const maxIterations = 100; // Was default (15). We observed 49 iters to achieve 1e-11 tol with tangent geometry.
228995
+ super(undefined, undefined, maxIterations);
228855
228996
  this._func = func;
228856
228997
  this._currentStep = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Vector2d.createZero();
228857
228998
  this._currentUV = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Point2d.createZero();
@@ -228883,7 +229024,10 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
228883
229024
  if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {
228884
229025
  const fA = this._func.currentF;
228885
229026
  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:
228886
- _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))
229027
+ _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
229028
+ fA.vectorU.y, fA.vectorV.y, // y_u(X_n), y_v(X_n): 2nd row of J evaluated at X_n
229029
+ fA.origin.x, fA.origin.y, // F(X_n) := (x(X_n), y(X_n))
229030
+ this._currentStep))
228887
229031
  return true;
228888
229032
  }
228889
229033
  return false;
@@ -228937,6 +229081,106 @@ class SimpleNewton {
228937
229081
  return undefined;
228938
229082
  }
228939
229083
  }
229084
+ /**
229085
+ * Class to evaluate XY intersection between 2 curve primitives using the Newton method.
229086
+ * @internal
229087
+ */
229088
+ class CurveCurveIntersectionXYRRToRRD extends NewtonEvaluatorRRtoRRD {
229089
+ constructor(curveP, curveQ) {
229090
+ super();
229091
+ this._curveP = curveP;
229092
+ this._curveQ = curveQ;
229093
+ this._rayP = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
229094
+ this._rayQ = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
229095
+ }
229096
+ evaluate(fractionU, fractionV) {
229097
+ /**
229098
+ * 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
229099
+ * F(u,v) := P(u) - Q(v) = (0,0)
229100
+ * Using the Newton method we can find the fractions u and v at the intersection via
229101
+ * [u_{n+1}] [u_n] [x_p'(u_n) -x_q'(v_n)] [x_p(u_n) - x_q(v_n)]
229102
+ * = - Inv( )
229103
+ * [v_{n+1}] [v_n] [y_p'(u_n) -y_q'(v_n)] [y_p(u_n) - y_q(v_n)]
229104
+ * Note that this is xy intersection so we can ignore z.
229105
+ */
229106
+ this._curveP.fractionToPointAndDerivative(fractionU, this._rayP);
229107
+ this._curveQ.fractionToPointAndDerivative(fractionV, this._rayQ);
229108
+ 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);
229109
+ return true;
229110
+ }
229111
+ }
229112
+ /**
229113
+ * Class to evaluate XY close approach between a curve primitive and a point using the Newton method.
229114
+ * @internal
229115
+ */
229116
+ class CurvePointCloseApproachXYRtoRD extends NewtonEvaluatorRtoRD {
229117
+ constructor(curveP, pointQ) {
229118
+ super();
229119
+ this._curveP = curveP;
229120
+ this._pointQ = pointQ;
229121
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
229122
+ }
229123
+ evaluate(fractionU) {
229124
+ /**
229125
+ * To find a close approach between xy-curve P(u) and xy-point q we should solve
229126
+ * F(u) := P'(u).(P(u) - q) = 0
229127
+ * 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.
229128
+ * Using the Newton method we can find the fractions u at the close approach location via
229129
+ * 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) ]
229130
+ * Note that this is xy close approach so we can ignore z.
229131
+ */
229132
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
229133
+ const segX = this._planeP.origin.x - this._pointQ.x;
229134
+ const segY = this._planeP.origin.y - this._pointQ.y;
229135
+ const pDerivX = this._planeP.vectorU.x;
229136
+ const pDerivY = this._planeP.vectorU.y;
229137
+ const p2DerivX = this._planeP.vectorV.x;
229138
+ const p2DerivY = this._planeP.vectorV.y;
229139
+ this.currentF = pDerivX * segX + pDerivY * segY;
229140
+ this.currentdFdX = p2DerivX * segX + pDerivX * pDerivX + p2DerivY * segY + pDerivY * pDerivY;
229141
+ return true;
229142
+ }
229143
+ }
229144
+ /**
229145
+ * Class to evaluate XY close approach between 2 curve primitives using the Newton method.
229146
+ * @internal
229147
+ */
229148
+ class CurveCurveCloseApproachXYRRtoRRD extends NewtonEvaluatorRRtoRRD {
229149
+ constructor(curveP, curveQ) {
229150
+ super();
229151
+ this._curveP = curveP;
229152
+ this._curveQ = curveQ;
229153
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
229154
+ this._planeQ = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
229155
+ }
229156
+ evaluate(fractionU, fractionV) {
229157
+ /**
229158
+ * To find a close approach between xy-curves P(u) and Q(v) we should solve
229159
+ * F(u,v) := (P'(u).(P(u) - Q(v)), Q'(v).(P(u) - Q(v))) = (0,0)
229160
+ * 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),
229161
+ * which means S(u,v) is a close approach.
229162
+ * Using the Newton method we can find the fractions u and v at the close approach location via
229163
+ * [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)]
229164
+ * = - Inv( )
229165
+ * [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)]
229166
+ * Note that this is xy close approach so we can ignore z.
229167
+ */
229168
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
229169
+ this._curveQ.fractionToPointAnd2Derivatives(fractionV, this._planeQ);
229170
+ const segX = this._planeP.origin.x - this._planeQ.origin.x;
229171
+ const segY = this._planeP.origin.y - this._planeQ.origin.y;
229172
+ const pDerivX = this._planeP.vectorU.x;
229173
+ const pDerivY = this._planeP.vectorU.y;
229174
+ const qDerivX = this._planeQ.vectorU.x;
229175
+ const qDerivY = this._planeQ.vectorU.y;
229176
+ const p2DerivX = this._planeP.vectorV.x;
229177
+ const p2DerivY = this._planeP.vectorV.y;
229178
+ const q2DerivX = this._planeQ.vectorV.x;
229179
+ const q2DerivY = this._planeQ.vectorV.y;
229180
+ 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);
229181
+ return true;
229182
+ }
229183
+ }
228940
229184
 
228941
229185
 
228942
229186
  /***/ }),
@@ -230125,10 +230369,8 @@ class TrigPolynomial {
230125
230369
  * @param referenceCoefficient A number which represents the size of coefficients
230126
230370
  * at various stages of computation. A small fraction of this will be used as a zero
230127
230371
  * tolerance
230128
- * @param angles Roots are placed here. Assumed preallocated with adequate size.
230129
- * @param numRoots Number of roots . Zero roots is possible. (Passed as array of size
230130
- * one to pass-by-reference)
230131
- * Returns false if equation is all zeros. This usually means any angle is a solution.
230372
+ * @param radians Roots are placed here
230373
+ * @return false if equation is all zeros. This usually means any angle is a solution.
230132
230374
  */
230133
230375
  static solveAngles(coff, nominalDegree, referenceCoefficient, radians) {
230134
230376
  let maxCoff = Math.abs(referenceCoefficient);
@@ -230206,7 +230448,6 @@ class TrigPolynomial {
230206
230448
  * @param ay Coefficient of y
230207
230449
  * @param a1 Constant coefficient
230208
230450
  * @param radians solution angles
230209
- * @param numAngle number of solution angles(Passed as array to make changes to reference)
230210
230451
  */
230211
230452
  static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a1, radians) {
230212
230453
  const Coffs = new Float64Array(5);
@@ -230272,9 +230513,8 @@ class TrigPolynomial {
230272
230513
  return status;
230273
230514
  }
230274
230515
  /**
230275
- * Compute intersections of unit circle x^2 + y^2 = w^2 with the ellipse
230276
- * (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)/ (cw + uw Math.Cos + vw * Math.Sin)
230277
- * Solutions are returned as angles in the ellipse space.
230516
+ * Compute intersections of unit circle `x^2 + y^2 = w^2` with the ellipse
230517
+ * `F(t) = (cx + ux cos(t) + vx sin(t), cy + uy cos(t) + vy sin(t)) / (cw + uw cos(t) + vw sin(t))`.
230278
230518
  * @param cx center x
230279
230519
  * @param cy center y
230280
230520
  * @param cw center w
@@ -281893,7 +282133,7 @@ class TestContext {
281893
282133
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
281894
282134
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
281895
282135
  await core_frontend_1.NoRenderApp.startup({
281896
- applicationVersion: "4.3.0-dev.22",
282136
+ applicationVersion: "4.3.0-dev.24",
281897
282137
  applicationId: this.settings.gprid,
281898
282138
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
281899
282139
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -301305,7 +301545,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
301305
301545
  /***/ ((module) => {
301306
301546
 
301307
301547
  "use strict";
301308
- 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"}}');
301548
+ 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"}}');
301309
301549
 
301310
301550
  /***/ }),
301311
301551