@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.
- package/lib/dist/bundled-tests.js +816 -576
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_14_node_modules_loaders_gl_draco_d-aa4ff5.bundled-tests.js.map +1 -1
- package/package.json +13 -13
|
@@ -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
|
-
/**
|
|
31428
|
-
static create(
|
|
31429
|
-
if (
|
|
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
|
-
|
|
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
|
|
31438
|
-
const
|
|
31439
|
-
|
|
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("
|
|
124253
|
-
main.addline("
|
|
124254
|
-
main.addline(" if (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
132196
|
-
|
|
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
|
|
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("
|
|
132254
|
-
program.
|
|
132255
|
-
params.target.uniforms.branch.clipStack.
|
|
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("
|
|
132259
|
-
program.addGraphicUniform("
|
|
132260
|
-
params.target.uniforms.branch.clipStack.
|
|
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
|
-
|
|
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 <=
|
|
173045
|
-
// We observed criterion = -2.22e-16 in a rotated tangent system,
|
|
173046
|
-
//
|
|
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 */
|
|
184176
|
-
/* harmony export */
|
|
184177
|
-
/* harmony export */
|
|
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 */
|
|
184182
|
-
/* harmony export */ Arc3d: () => (/* reexport safe */
|
|
184183
|
-
/* harmony export */ AuxChannel: () => (/* reexport safe */
|
|
184184
|
-
/* harmony export */ AuxChannelData: () => (/* reexport safe */
|
|
184185
|
-
/* harmony export */ AuxChannelDataType: () => (/* reexport safe */
|
|
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 */
|
|
184190
|
-
/* harmony export */ BSpline2dNd: () => (/* reexport safe */
|
|
184191
|
-
/* harmony export */ BSplineCurve3d: () => (/* reexport safe */
|
|
184192
|
-
/* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */
|
|
184193
|
-
/* harmony export */ BSplineCurve3dH: () => (/* reexport safe */
|
|
184194
|
-
/* harmony export */ BSplineCurveOps: () => (/* reexport safe */
|
|
184195
|
-
/* harmony export */ BSplineSurface3d: () => (/* reexport safe */
|
|
184196
|
-
/* harmony export */ BSplineSurface3dH: () => (/* reexport safe */
|
|
184197
|
-
/* harmony export */ BSplineWrapMode: () => (/* reexport safe */
|
|
184198
|
-
/* harmony export */ BagOfCurves: () => (/* reexport safe */
|
|
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 */
|
|
184201
|
-
/* harmony export */ Bezier1dNd: () => (/* reexport safe */
|
|
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 */
|
|
184204
|
-
/* harmony export */ BezierCurve3dH: () => (/* reexport safe */
|
|
184205
|
-
/* harmony export */ BezierCurveBase: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
184211
|
-
/* harmony export */ BoxTopology: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
184224
|
-
/* harmony export */ Cone: () => (/* reexport safe */
|
|
184225
|
-
/* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
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 */
|
|
184232
|
-
/* harmony export */ CurveChain: () => (/* reexport safe */
|
|
184233
|
-
/* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */
|
|
184234
|
-
/* harmony export */ CurveCollection: () => (/* reexport safe */
|
|
184235
|
-
/* harmony export */ CurveCurve: () => (/* reexport safe */
|
|
184236
|
-
/* harmony export */ CurveCurveApproachType: () => (/* reexport safe */
|
|
184237
|
-
/* harmony export */ CurveExtendMode: () => (/* reexport safe */
|
|
184238
|
-
/* harmony export */ CurveExtendOptions: () => (/* reexport safe */
|
|
184239
|
-
/* harmony export */ CurveFactory: () => (/* reexport safe */
|
|
184240
|
-
/* harmony export */ CurveIntervalRole: () => (/* reexport safe */
|
|
184241
|
-
/* harmony export */ CurveLocationDetail: () => (/* reexport safe */
|
|
184242
|
-
/* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */
|
|
184243
|
-
/* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */
|
|
184244
|
-
/* harmony export */ CurveOps: () => (/* reexport safe */
|
|
184245
|
-
/* harmony export */ CurvePrimitive: () => (/* reexport safe */
|
|
184246
|
-
/* harmony export */ CurveSearchStatus: () => (/* reexport safe */
|
|
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 */
|
|
184250
|
-
/* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */
|
|
184251
|
-
/* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */
|
|
184252
|
-
/* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */
|
|
184253
|
-
/* harmony export */ DirectSpiral3d: () => (/* reexport safe */
|
|
184254
|
-
/* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */
|
|
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 */
|
|
184258
|
-
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
184266
|
-
/* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */
|
|
184267
|
-
/* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */
|
|
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 */
|
|
184273
|
-
/* harmony export */ HalfEdgeGraph: () => (/* reexport safe */
|
|
184274
|
-
/* harmony export */ HalfEdgeMask: () => (/* reexport safe */
|
|
184275
|
-
/* harmony export */ IModelJson: () => (/* reexport safe */
|
|
184276
|
-
/* harmony export */ ImplicitLineXY: () => (/* reexport safe */
|
|
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 */
|
|
184279
|
-
/* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */
|
|
184280
|
-
/* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */
|
|
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 */
|
|
184287
|
-
/* harmony export */ InterpolationCurve3d: () => (/* reexport safe */
|
|
184288
|
-
/* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */
|
|
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 */
|
|
184291
|
-
/* harmony export */ KnotVector: () => (/* reexport safe */
|
|
184292
|
-
/* harmony export */ LineSegment3d: () => (/* reexport safe */
|
|
184293
|
-
/* harmony export */ LineString3d: () => (/* reexport safe */
|
|
184294
|
-
/* harmony export */ LinearSweep: () => (/* reexport safe */
|
|
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 */
|
|
184297
|
-
/* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
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 */
|
|
184313
|
-
/* harmony export */ OffsetOptions: () => (/* reexport safe */
|
|
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 */
|
|
184321
|
-
/* harmony export */ PascalCoefficients: () => (/* reexport safe */
|
|
184322
|
-
/* harmony export */ Path: () => (/* reexport safe */
|
|
184323
|
-
/* harmony export */ PathFragment: () => (/* reexport safe */
|
|
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 */
|
|
184338
|
-
/* harmony export */ Polyface: () => (/* reexport safe */
|
|
184339
|
-
/* harmony export */ PolyfaceAuxData: () => (/* reexport safe */
|
|
184340
|
-
/* harmony export */ PolyfaceBuilder: () => (/* reexport safe */
|
|
184341
|
-
/* harmony export */ PolyfaceClip: () => (/* reexport safe */
|
|
184342
|
-
/* harmony export */ PolyfaceData: () => (/* reexport safe */
|
|
184343
|
-
/* harmony export */ PolyfaceQuery: () => (/* reexport safe */
|
|
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 */
|
|
184349
|
-
/* harmony export */ ProxyCurve: () => (/* reexport safe */
|
|
184350
|
-
/* harmony export */ Quadrature: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
184360
|
-
/* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */
|
|
184361
|
-
/* harmony export */ RegionBinaryOpType: () => (/* reexport safe */
|
|
184362
|
-
/* harmony export */ RegionMomentsXY: () => (/* reexport safe */
|
|
184363
|
-
/* harmony export */ RegionOps: () => (/* reexport safe */
|
|
184364
|
-
/* harmony export */ RotationalSweep: () => (/* reexport safe */
|
|
184365
|
-
/* harmony export */ RuledSweep: () => (/* reexport safe */
|
|
184366
|
-
/* harmony export */ Sample: () => (/* reexport safe */
|
|
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 */
|
|
184369
|
-
/* harmony export */
|
|
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 */
|
|
184373
|
-
/* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */
|
|
184374
|
-
/* harmony export */ Sphere: () => (/* reexport safe */
|
|
184375
|
-
/* harmony export */ SphereImplicit: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
184380
|
-
/* harmony export */ StrokeOptions: () => (/* reexport safe */
|
|
184381
|
-
/* harmony export */ SweepContour: () => (/* reexport safe */
|
|
184382
|
-
/* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */
|
|
184383
|
-
/* harmony export */ TaggedNumericConstants: () => (/* reexport safe */
|
|
184384
|
-
/* harmony export */ TaggedNumericData: () => (/* reexport safe */
|
|
184385
|
-
/* harmony export */ TorusImplicit: () => (/* reexport safe */
|
|
184386
|
-
/* harmony export */ TorusPipe: () => (/* reexport safe */
|
|
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 */
|
|
184389
|
-
/* harmony export */ TriDiagonalSystem: () => (/* reexport safe */
|
|
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 */
|
|
184392
|
-
/* harmony export */ Triangulator: () => (/* reexport safe */
|
|
184393
|
-
/* harmony export */ TrigPolynomial: () => (/* reexport safe */
|
|
184394
|
-
/* harmony export */ UVSelect: () => (/* reexport safe */
|
|
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 */
|
|
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 */
|
|
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 */
|
|
184408
|
-
/* harmony export */ interpolateColor: () => (/* reexport safe */
|
|
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
|
|
184464
|
-
/* harmony import */ var
|
|
184465
|
-
/* harmony import */ var
|
|
184466
|
-
/* harmony import */ var
|
|
184467
|
-
/* harmony import */ var
|
|
184468
|
-
/* harmony import */ var
|
|
184469
|
-
/* harmony import */ var
|
|
184470
|
-
/* harmony import */ var
|
|
184471
|
-
/* harmony import */ var
|
|
184472
|
-
/* harmony import */ var
|
|
184473
|
-
/* harmony import */ var
|
|
184474
|
-
/* harmony import */ var
|
|
184475
|
-
/* harmony import */ var
|
|
184476
|
-
/* harmony import */ var
|
|
184477
|
-
/* harmony import */ var
|
|
184478
|
-
/* harmony import */ var
|
|
184479
|
-
/* harmony import */ var
|
|
184480
|
-
/* harmony import */ var
|
|
184481
|
-
/* harmony import */ var
|
|
184482
|
-
/* harmony import */ var
|
|
184483
|
-
/* harmony import */ var
|
|
184484
|
-
/* harmony import */ var
|
|
184485
|
-
/* harmony import */ var
|
|
184486
|
-
/* harmony import */ var
|
|
184487
|
-
/* harmony import */ var
|
|
184488
|
-
/* harmony import */ var
|
|
184489
|
-
/* harmony import */ var
|
|
184490
|
-
/* harmony import */ var
|
|
184491
|
-
/* harmony import */ var
|
|
184492
|
-
/* harmony import */ var
|
|
184493
|
-
/* harmony import */ var
|
|
184494
|
-
/* harmony import */ var
|
|
184495
|
-
/* harmony import */ var
|
|
184496
|
-
/* harmony import */ var
|
|
184497
|
-
/* harmony import */ var
|
|
184498
|
-
/* harmony import */ var
|
|
184499
|
-
/* harmony import */ var
|
|
184500
|
-
/* harmony import */ var
|
|
184501
|
-
/* harmony import */ var
|
|
184502
|
-
/* harmony import */ var
|
|
184503
|
-
/* harmony import */ var
|
|
184504
|
-
/* harmony import */ var
|
|
184505
|
-
/* harmony import */ var
|
|
184506
|
-
/* harmony import */ var
|
|
184507
|
-
/* harmony import */ var
|
|
184508
|
-
/* harmony import */ var
|
|
184509
|
-
/* harmony import */ var
|
|
184510
|
-
/* harmony import */ var
|
|
184511
|
-
/* harmony import */ var
|
|
184512
|
-
/* harmony import */ var
|
|
184513
|
-
/* harmony import */ var
|
|
184514
|
-
/* harmony import */ var
|
|
184515
|
-
/* harmony import */ var
|
|
184516
|
-
/* harmony import */ var
|
|
184517
|
-
/* harmony import */ var
|
|
184518
|
-
/* harmony import */ var
|
|
184519
|
-
/* harmony import */ var
|
|
184520
|
-
/* harmony import */ var
|
|
184521
|
-
/* harmony import */ var
|
|
184522
|
-
/* harmony import */ var
|
|
184523
|
-
/* harmony import */ var
|
|
184524
|
-
/* harmony import */ var
|
|
184525
|
-
/* harmony import */ var
|
|
184526
|
-
/* harmony import */ var
|
|
184527
|
-
/* harmony import */ var
|
|
184528
|
-
/* harmony import */ var
|
|
184529
|
-
/* harmony import */ var
|
|
184530
|
-
/* harmony import */ var
|
|
184531
|
-
/* harmony import */ var
|
|
184532
|
-
/* harmony import */ var
|
|
184533
|
-
/* harmony import */ var
|
|
184534
|
-
/* harmony import */ var
|
|
184535
|
-
/* harmony import */ var
|
|
184536
|
-
/* harmony import */ var
|
|
184537
|
-
/* harmony import */ var
|
|
184538
|
-
/* harmony import */ var
|
|
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
|
|
185041
|
-
const
|
|
185042
|
-
const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(
|
|
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 *
|
|
185046
|
-
0.5 *
|
|
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
|
|
196748
|
-
/* harmony import */ var
|
|
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
|
|
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
|
|
196753
|
-
/* harmony import */ var
|
|
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
|
|
196756
|
-
/* harmony import */ var
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
197150
|
-
* 3)
|
|
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
|
|
197177
|
-
const sines = new
|
|
197178
|
-
const radians = new
|
|
197179
|
-
const numRoots =
|
|
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 =
|
|
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,
|
|
197195
|
-
// 3)
|
|
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 =
|
|
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
|
-
/**
|
|
197212
|
-
|
|
197213
|
-
const
|
|
197214
|
-
const
|
|
197215
|
-
|
|
197216
|
-
|
|
197217
|
-
|
|
197218
|
-
|
|
197219
|
-
|
|
197220
|
-
|
|
197221
|
-
|
|
197222
|
-
|
|
197223
|
-
|
|
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
|
|
197240
|
-
|
|
197241
|
-
|
|
197242
|
-
|
|
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
|
|
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
|
-
|
|
197258
|
-
|
|
197259
|
-
|
|
197260
|
-
|
|
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 =
|
|
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 =
|
|
197445
|
+
const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
|
|
197278
197446
|
bcurveA.emitStrokes(lsA);
|
|
197279
|
-
const lsB =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
197516
|
+
if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
|
|
197349
197517
|
return;
|
|
197350
|
-
if (geomA instanceof
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
197554
|
-
CurveCurveCloseApproachXY._workPointAA1 =
|
|
197555
|
-
CurveCurveCloseApproachXY._workPointBB0 =
|
|
197556
|
-
CurveCurveCloseApproachXY._workPointBB1 =
|
|
197557
|
-
CurveCurveCloseApproachXY._workPointB =
|
|
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
|
|
197577
|
-
/* harmony import */ var
|
|
197578
|
-
/* harmony import */ var
|
|
197579
|
-
/* harmony import */ var
|
|
197580
|
-
/* harmony import */ var
|
|
197581
|
-
/* harmony import */ var
|
|
197582
|
-
/* harmony import */ var
|
|
197583
|
-
/* harmony import */ var
|
|
197584
|
-
/* harmony import */ var
|
|
197585
|
-
/* harmony import */ var
|
|
197586
|
-
/* harmony import */ var
|
|
197587
|
-
/* harmony import */ var
|
|
197588
|
-
/* harmony import */ var
|
|
197589
|
-
/* harmony import */ var
|
|
197590
|
-
/* harmony import */ var
|
|
197591
|
-
/* harmony import */ var
|
|
197592
|
-
/* harmony import */ var
|
|
197593
|
-
/* harmony import */ var
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
197830
|
+
acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
|
|
197686
197831
|
if (!extend0 && fraction < 0) {
|
|
197687
|
-
return
|
|
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
|
|
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 =
|
|
197724
|
-
globalFractionB =
|
|
197725
|
-
globalFractionA1 =
|
|
197726
|
-
globalFractionB1 =
|
|
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 =
|
|
197730
|
-
globalFractionB = globalFractionB1 =
|
|
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 =
|
|
197749
|
-
const detailB =
|
|
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(
|
|
197756
|
-
detailB.setIntervalRole(
|
|
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
|
|
197904
|
+
this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailB, detailA));
|
|
197760
197905
|
}
|
|
197761
197906
|
else {
|
|
197762
|
-
this._results.push(new
|
|
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 (
|
|
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 =
|
|
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 =
|
|
197856
|
-
const beta =
|
|
197857
|
-
const gamma =
|
|
197858
|
-
const cosines = new
|
|
197859
|
-
const sines = new
|
|
197860
|
-
const radians = new
|
|
197861
|
-
const numRoots =
|
|
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 =
|
|
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 =
|
|
197882
|
-
const beta =
|
|
197883
|
-
const gamma =
|
|
197884
|
-
const cosines = new
|
|
197885
|
-
const sines = new
|
|
197886
|
-
const radians = new
|
|
197887
|
-
const numRoots =
|
|
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 =
|
|
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
|
-
|
|
197903
|
-
|
|
197904
|
-
|
|
197905
|
-
|
|
197906
|
-
|
|
197907
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
197929
|
-
|
|
197930
|
-
|
|
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 =
|
|
197946
|
-
matrixB =
|
|
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 =
|
|
197952
|
-
matrixB =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
198214
|
+
this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
|
|
198069
198215
|
if (!this._xyzwA1)
|
|
198070
|
-
this._xyzwA1 =
|
|
198216
|
+
this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
|
|
198071
198217
|
if (!this._xyzwPlane)
|
|
198072
|
-
this._xyzwPlane =
|
|
198218
|
+
this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
|
|
198073
198219
|
if (!this._xyzwB)
|
|
198074
|
-
this._xyzwB =
|
|
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
|
-
|
|
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 =
|
|
198109
|
-
if (segmentAFraction &&
|
|
198110
|
-
let bezierAFraction =
|
|
198111
|
-
|
|
198112
|
-
|
|
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
|
-
|
|
198124
|
-
|
|
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
|
|
198156
|
-
const univariateCoffsB = new
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
198465
|
+
/** Low level dispatch of CurveChainWithDistanceIndex. */
|
|
198333
198466
|
dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
|
|
198334
|
-
if (!this._geometryB || !(this._geometryB instanceof
|
|
198467
|
+
if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
|
|
198335
198468
|
return;
|
|
198336
|
-
if (geomA instanceof
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
198464
|
-
CurveCurveIntersectXY._workPointA0H =
|
|
198465
|
-
CurveCurveIntersectXY._workPointA1H =
|
|
198466
|
-
CurveCurveIntersectXY._workPointB0H =
|
|
198467
|
-
CurveCurveIntersectXY._workPointB1H =
|
|
198468
|
-
CurveCurveIntersectXY._workPointAA0 =
|
|
198469
|
-
CurveCurveIntersectXY._workPointAA1 =
|
|
198470
|
-
CurveCurveIntersectXY._workPointBB0 =
|
|
198471
|
-
CurveCurveIntersectXY._workPointBB1 =
|
|
198472
|
-
CurveCurveIntersectXY._workPointA0 =
|
|
198473
|
-
CurveCurveIntersectXY._workPointA1 =
|
|
198474
|
-
CurveCurveIntersectXY._workPointB0 =
|
|
198475
|
-
CurveCurveIntersectXY._workPointB1 =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
230129
|
-
* @
|
|
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
|
-
*
|
|
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.
|
|
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.
|
|
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
|
|