@itwin/ecschema-rpcinterface-tests 4.3.0-dev.0 → 4.3.0-dev.10

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.
@@ -21,53 +21,53 @@
21
21
 
22
22
  /***/ }),
23
23
 
24
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.11/node_modules/@itwin/certa/lib/utils/CallbackUtils.js":
24
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.16/node_modules/@itwin/certa/lib/utils/CallbackUtils.js":
25
25
  /*!*********************************************************************************************************************!*\
26
- !*** ../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.11/node_modules/@itwin/certa/lib/utils/CallbackUtils.js ***!
26
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.16/node_modules/@itwin/certa/lib/utils/CallbackUtils.js ***!
27
27
  \*********************************************************************************************************************/
28
28
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
29
29
 
30
30
  "use strict";
31
-
32
- Object.defineProperty(exports, "__esModule", ({ value: true }));
33
- exports.executeBackendCallback = exports.registerBackendCallback = exports.executeRegisteredCallback = exports.getCallbacksRegisteredOnBackend = void 0;
34
- const isFrontend = (typeof (window) !== "undefined");
35
- /** @internal */
36
- function getCallbacksRegisteredOnBackend() {
37
- if (isFrontend)
38
- throw new Error("This should only be called on the backend!");
39
- __webpack_require__.g._CertaRegisteredCallbacks = __webpack_require__.g._CertaRegisteredCallbacks || {};
40
- return __webpack_require__.g._CertaRegisteredCallbacks;
41
- }
42
- exports.getCallbacksRegisteredOnBackend = getCallbacksRegisteredOnBackend;
43
- /** @internal */
44
- function executeRegisteredCallback(name, args) {
45
- const registeredCallbacks = getCallbacksRegisteredOnBackend();
46
- if (!(name in registeredCallbacks))
47
- throw new Error(`Unknown certa backend callback "${name}"`);
48
- return registeredCallbacks[name](...args);
49
- }
50
- exports.executeRegisteredCallback = executeRegisteredCallback;
51
- function registerBackendCallback(name, cb) {
52
- if (isFrontend)
53
- throw new Error("This should only be called on the backend!");
54
- __webpack_require__.g._CertaRegisteredCallbacks = __webpack_require__.g._CertaRegisteredCallbacks || {};
55
- __webpack_require__.g._CertaRegisteredCallbacks[name] = cb;
56
- }
57
- exports.registerBackendCallback = registerBackendCallback;
58
- async function executeBackendCallback(name, ...args) {
59
- if (!isFrontend)
60
- return executeRegisteredCallback(name, args);
61
- return window._CertaSendToBackend(name, args);
62
- }
63
- exports.executeBackendCallback = executeBackendCallback;
31
+
32
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
33
+ exports.executeBackendCallback = exports.registerBackendCallback = exports.executeRegisteredCallback = exports.getCallbacksRegisteredOnBackend = void 0;
34
+ const isFrontend = (typeof (window) !== "undefined");
35
+ /** @internal */
36
+ function getCallbacksRegisteredOnBackend() {
37
+ if (isFrontend)
38
+ throw new Error("This should only be called on the backend!");
39
+ __webpack_require__.g._CertaRegisteredCallbacks = __webpack_require__.g._CertaRegisteredCallbacks || {};
40
+ return __webpack_require__.g._CertaRegisteredCallbacks;
41
+ }
42
+ exports.getCallbacksRegisteredOnBackend = getCallbacksRegisteredOnBackend;
43
+ /** @internal */
44
+ function executeRegisteredCallback(name, args) {
45
+ const registeredCallbacks = getCallbacksRegisteredOnBackend();
46
+ if (!(name in registeredCallbacks))
47
+ throw new Error(`Unknown certa backend callback "${name}"`);
48
+ return registeredCallbacks[name](...args);
49
+ }
50
+ exports.executeRegisteredCallback = executeRegisteredCallback;
51
+ function registerBackendCallback(name, cb) {
52
+ if (isFrontend)
53
+ throw new Error("This should only be called on the backend!");
54
+ __webpack_require__.g._CertaRegisteredCallbacks = __webpack_require__.g._CertaRegisteredCallbacks || {};
55
+ __webpack_require__.g._CertaRegisteredCallbacks[name] = cb;
56
+ }
57
+ exports.registerBackendCallback = registerBackendCallback;
58
+ async function executeBackendCallback(name, ...args) {
59
+ if (!isFrontend)
60
+ return executeRegisteredCallback(name, args);
61
+ return window._CertaSendToBackend(name, args);
62
+ }
63
+ exports.executeBackendCallback = executeBackendCallback;
64
64
 
65
65
 
66
66
  /***/ }),
67
67
 
68
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js":
68
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js":
69
69
  /*!*****************************************************************************************************************************************************************************************!*\
70
- !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js ***!
70
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js ***!
71
71
  \*****************************************************************************************************************************************************************************************/
72
72
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
73
73
 
@@ -80,7 +80,7 @@ __webpack_require__.r(__webpack_exports__);
80
80
  /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
81
81
  /* harmony import */ var _itwin_core_frontend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @itwin/core-frontend */ "../../core/frontend/lib/esm/core-frontend.js");
82
82
  /* harmony import */ var _itwin_imodels_client_management__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @itwin/imodels-client-management */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-client-management@3.1.0/node_modules/@itwin/imodels-client-management/lib/esm/index.js");
83
- /* harmony import */ var _interface_adapters_AccessTokenAdapter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interface-adapters/AccessTokenAdapter */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js");
83
+ /* harmony import */ var _interface_adapters_AccessTokenAdapter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interface-adapters/AccessTokenAdapter */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js");
84
84
  /*---------------------------------------------------------------------------------------------
85
85
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
86
86
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -186,9 +186,9 @@ class FrontendIModelsAccess {
186
186
 
187
187
  /***/ }),
188
188
 
189
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js":
189
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js":
190
190
  /*!*************************************************************************************************************************************************************************!*\
191
- !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js ***!
191
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js ***!
192
192
  \*************************************************************************************************************************************************************************/
193
193
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
194
194
 
@@ -198,8 +198,8 @@ __webpack_require__.r(__webpack_exports__);
198
198
  /* harmony export */ AccessTokenAdapter: () => (/* reexport safe */ _interface_adapters_AccessTokenAdapter__WEBPACK_IMPORTED_MODULE_0__.AccessTokenAdapter),
199
199
  /* harmony export */ FrontendIModelsAccess: () => (/* reexport safe */ _FrontendIModelsAccess__WEBPACK_IMPORTED_MODULE_1__.FrontendIModelsAccess)
200
200
  /* harmony export */ });
201
- /* harmony import */ var _interface_adapters_AccessTokenAdapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interface-adapters/AccessTokenAdapter */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js");
202
- /* harmony import */ var _FrontendIModelsAccess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FrontendIModelsAccess */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js");
201
+ /* harmony import */ var _interface_adapters_AccessTokenAdapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interface-adapters/AccessTokenAdapter */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js");
202
+ /* harmony import */ var _FrontendIModelsAccess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FrontendIModelsAccess */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/FrontendIModelsAccess.js");
203
203
  /*---------------------------------------------------------------------------------------------
204
204
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
205
205
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -210,9 +210,9 @@ __webpack_require__.r(__webpack_exports__);
210
210
 
211
211
  /***/ }),
212
212
 
213
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js":
213
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js":
214
214
  /*!*********************************************************************************************************************************************************************************************************!*\
215
- !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js ***!
215
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/interface-adapters/AccessTokenAdapter.js ***!
216
216
  \*********************************************************************************************************************************************************************************************************/
217
217
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
218
218
 
@@ -3195,7 +3195,7 @@ exports.getAccessTokenFromBackend = exports.getTokenCallbackName = void 0;
3195
3195
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3196
3196
  * See LICENSE.md in the project root for license terms and full copyright notice.
3197
3197
  *--------------------------------------------------------------------------------------------*/
3198
- const CallbackUtils_1 = __webpack_require__(/*! @itwin/certa/lib/utils/CallbackUtils */ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.11/node_modules/@itwin/certa/lib/utils/CallbackUtils.js");
3198
+ const CallbackUtils_1 = __webpack_require__(/*! @itwin/certa/lib/utils/CallbackUtils */ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.7.16/node_modules/@itwin/certa/lib/utils/CallbackUtils.js");
3199
3199
  // Shared by both the frontend and backend side of the tests
3200
3200
  exports.getTokenCallbackName = "getToken";
3201
3201
  async function getAccessTokenFromBackend(user, oidcConfig) {
@@ -16289,7 +16289,7 @@ exports.getOperator = __webpack_require__(/*! ./getOperator */ "../../common/tem
16289
16289
  // https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js
16290
16290
 
16291
16291
  var getName = __webpack_require__(/*! get-func-name */ "../../common/temp/node_modules/.pnpm/get-func-name@2.0.2/node_modules/get-func-name/index.js");
16292
- var loupe = __webpack_require__(/*! loupe */ "../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js");
16292
+ var loupe = __webpack_require__(/*! loupe */ "../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js");
16293
16293
  var config = __webpack_require__(/*! ../config */ "../../common/temp/node_modules/.pnpm/chai@4.3.10/node_modules/chai/lib/chai/config.js");
16294
16294
 
16295
16295
  module.exports = inspect;
@@ -18305,8 +18305,8 @@ __webpack_require__.r(__webpack_exports__);
18305
18305
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
18306
18306
  /* harmony export */ "default": () => (/* binding */ Browser)
18307
18307
  /* harmony export */ });
18308
- /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
18309
- /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js");
18308
+ /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
18309
+ /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js");
18310
18310
 
18311
18311
 
18312
18312
 
@@ -18726,9 +18726,9 @@ Browser.type = 'languageDetector';
18726
18726
 
18727
18727
  /***/ }),
18728
18728
 
18729
- /***/ "../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js":
18729
+ /***/ "../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js":
18730
18730
  /*!************************************************************************************!*\
18731
- !*** ../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js ***!
18731
+ !*** ../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js ***!
18732
18732
  \************************************************************************************/
18733
18733
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
18734
18734
 
@@ -19042,6 +19042,7 @@ Browser.type = 'languageDetector';
19042
19042
 
19043
19043
  var toString = Function.prototype.toString;
19044
19044
  var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/;
19045
+ var maxFunctionSourceLength = 512;
19045
19046
  function getFuncName(aFunc) {
19046
19047
  if (typeof aFunc !== 'function') {
19047
19048
  return null;
@@ -19049,8 +19050,15 @@ Browser.type = 'languageDetector';
19049
19050
 
19050
19051
  var name = '';
19051
19052
  if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') {
19053
+ // eslint-disable-next-line prefer-reflect
19054
+ var functionSource = toString.call(aFunc);
19055
+ // To avoid unconstrained resource consumption due to pathalogically large function names,
19056
+ // we limit the available return value to be less than 512 characters.
19057
+ if (functionSource.indexOf('(') > maxFunctionSourceLength) {
19058
+ return name;
19059
+ }
19052
19060
  // Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined
19053
- var match = toString.call(aFunc).match(functionNameMatch);
19061
+ var match = functionSource.match(functionNameMatch);
19054
19062
  if (match) {
19055
19063
  name = match[1];
19056
19064
  }
@@ -19410,7 +19418,7 @@ Browser.type = 'languageDetector';
19410
19418
 
19411
19419
  try {
19412
19420
  // eslint-disable-next-line global-require
19413
- var nodeUtil = __webpack_require__(/*! util */ "?1120");
19421
+ var nodeUtil = __webpack_require__(/*! util */ "?088e");
19414
19422
 
19415
19423
  nodeInspect = nodeUtil.inspect ? nodeUtil.inspect.custom : false;
19416
19424
  } catch (noNodeInspect) {
@@ -29828,6 +29836,7 @@ __webpack_require__.r(__webpack_exports__);
29828
29836
  /* harmony export */ DbValueFormat: () => (/* binding */ DbValueFormat),
29829
29837
  /* harmony export */ QueryBinder: () => (/* binding */ QueryBinder),
29830
29838
  /* harmony export */ QueryOptionsBuilder: () => (/* binding */ QueryOptionsBuilder),
29839
+ /* harmony export */ QueryParamType: () => (/* binding */ QueryParamType),
29831
29840
  /* harmony export */ QueryRowFormat: () => (/* binding */ QueryRowFormat)
29832
29841
  /* harmony export */ });
29833
29842
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
@@ -30082,11 +30091,10 @@ class QueryBinder {
30082
30091
  if (typeof indexOrName === "number") {
30083
30092
  if (indexOrName < 1)
30084
30093
  throw new Error("expect index to be >= 1");
30094
+ return;
30085
30095
  }
30086
- if (typeof indexOrName === "string") {
30087
- if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
30088
- throw new Error("expect named parameter to meet identifier specification");
30089
- }
30096
+ if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
30097
+ throw new Error("expect named parameter to meet identifier specification");
30090
30098
  }
30091
30099
  }
30092
30100
  /**
@@ -30317,12 +30325,12 @@ class QueryBinder {
30317
30325
  else if (val instanceof Array && val.length > 0 && typeof val[0] === "string" && _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.isValidId64(val[0])) {
30318
30326
  params.bindIdSet(nameOrId, val);
30319
30327
  }
30320
- else if (typeof val === "object" && !Array.isArray(val)) {
30321
- params.bindStruct(nameOrId, val);
30322
- }
30323
30328
  else if (typeof val === "undefined" || val === null) {
30324
30329
  params.bindNull(nameOrId);
30325
30330
  }
30331
+ else if (typeof val === "object" && !Array.isArray(val)) {
30332
+ params.bindStruct(nameOrId, val);
30333
+ }
30326
30334
  else {
30327
30335
  throw new Error("unsupported type");
30328
30336
  }
@@ -44418,6 +44426,7 @@ __webpack_require__.r(__webpack_exports__);
44418
44426
  /* harmony export */ Quantization: () => (/* reexport safe */ _QPoint__WEBPACK_IMPORTED_MODULE_86__.Quantization),
44419
44427
  /* harmony export */ QueryBinder: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryBinder),
44420
44428
  /* harmony export */ QueryOptionsBuilder: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryOptionsBuilder),
44429
+ /* harmony export */ QueryParamType: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryParamType),
44421
44430
  /* harmony export */ QueryRowFormat: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryRowFormat),
44422
44431
  /* harmony export */ REGISTRY: () => (/* reexport safe */ _rpc_core_RpcRegistry__WEBPACK_IMPORTED_MODULE_122__.REGISTRY),
44423
44432
  /* harmony export */ Rank: () => (/* reexport safe */ _ElementProps__WEBPACK_IMPORTED_MODULE_24__.Rank),
@@ -74063,6 +74072,34 @@ class BackgroundMapGeometry {
74063
74072
  });
74064
74073
  return Promise.all(promises);
74065
74074
  }
74075
+ async cartographicToDbFromWgs84Gcs(cartographic) {
74076
+ let db;
74077
+ if (this.globeMode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.GlobeMode.Plane) {
74078
+ const fraction = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(0, 0);
74079
+ db = cartographic.map((p) => {
74080
+ this._mercatorTilingScheme.cartographicToFraction(p.latitude, p.longitude, fraction);
74081
+ return this._mercatorFractionToDb.multiplyXYZ(fraction.x, fraction.y, p.height);
74082
+ });
74083
+ }
74084
+ else {
74085
+ db = cartographic.map((p) => this._ecefToDb.multiplyPoint3d(p.toEcef()));
74086
+ }
74087
+ if (this._iModel.noGcsDefined)
74088
+ return db;
74089
+ const toReprojectCoords = [];
74090
+ const toReprojectIdx = [];
74091
+ db.forEach(async (p, i) => {
74092
+ if (this.cartesianRange.containsPoint(p)) {
74093
+ toReprojectCoords.push({ x: cartographic[i].longitudeDegrees, y: cartographic[i].latitudeDegrees, z: cartographic[i].height });
74094
+ toReprojectIdx.push(i);
74095
+ }
74096
+ });
74097
+ const spatialPoints = await this._iModel.toSpatialFromGcs(toReprojectCoords, { horizontalCRS: { epsg: 4326 }, verticalCRS: { id: "ELLIPSOID" } });
74098
+ return db.map((p, i) => {
74099
+ const reprojectedIdx = toReprojectIdx.findIndex((value) => value === i);
74100
+ return (reprojectedIdx === -1 ? p : spatialPoints[reprojectedIdx]);
74101
+ });
74102
+ }
74066
74103
  cartographicToDb(cartographic, result) {
74067
74104
  if (this.globeMode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.GlobeMode.Plane) {
74068
74105
  const fraction = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(0, 0);
@@ -84755,7 +84792,7 @@ class RealityDataSourceTilesetUrlImpl {
84755
84792
  return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(tileUrl, "json");
84756
84793
  }
84757
84794
  getTileContentType(url) {
84758
- return url.endsWith("json") ? "tileset" : "tile";
84795
+ return new URL(url, "https://localhost/").pathname.toLowerCase().endsWith("json") ? "tileset" : "tile";
84759
84796
  }
84760
84797
  /**
84761
84798
  * Gets spatial location and extents of this reality data source
@@ -95544,7 +95581,7 @@ class GltfParser {
95544
95581
  if (dracoMeshes.length === 0)
95545
95582
  return;
95546
95583
  try {
95547
- const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_7_node_modules_loaders_gl_draco_di-02c2bd"), __webpack_require__.e("_0062")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.7/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
95584
+ const dracoLoader = (await __webpack_require__.e(/*! import() */ "vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_14_node_modules_loaders_gl_draco_d-aa4ff5").then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.14/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
95548
95585
  await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
95549
95586
  }
95550
95587
  catch (err) {
@@ -100657,6 +100694,7 @@ const UNIT_DATA = [
100657
100694
  { name: "Units.SQ_FT", phenomenon: "Units.AREA", system: "Units.USCUSTOM", conversion: { numerator: 1.0, denominator: .09290304, offset: 0.0 }, displayLabel: "ft²" },
100658
100695
  { name: "Units.SQ_US_SURVEY_FT", phenomenon: "Units.AREA", system: "Units.USCUSTOM", conversion: { numerator: 15499969.0, denominator: 1440000, offset: 0.0 }, displayLabel: "ft² (US Survey)" },
100659
100696
  { name: "Units.SQ_M", phenomenon: "Units.AREA", system: "Units.SI", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: "m²" },
100697
+ { name: "Units.SQ_KM", phenomenon: "Units.AREA", system: "Units.SI", conversion: { numerator: 1.0, denominator: 1000000.0, offset: 0.0 }, displayLabel: "km²" },
100660
100698
  // conversion => specified unit to base unit m³
100661
100699
  { name: "Units.CUB_FT", phenomenon: "Units.VOLUME", system: "Units.USCUSTOM", conversion: { numerator: 1.0, denominator: 0.028316847, offset: 0.0 }, displayLabel: "ft³" },
100662
100700
  { name: "Units.CUB_US_SURVEY_FT", phenomenon: "Units.VOLUME", system: "Units.USSURVEY", conversion: { numerator: 1, denominator: 0.0283170164937591, offset: 0.0 }, displayLabel: "ft³" },
@@ -136885,8 +136923,8 @@ class ContextShareProvider {
136885
136923
  // Not a valid URL for Context share
136886
136924
  return false;
136887
136925
  }
136888
- // If api.bentley.com/realitydata is used, it is context share
136889
- if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata"))
136926
+ // If api.bentley.com/realitydata or api.bentley.com/reality-management is used, it is context share
136927
+ if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata") || tilesetUrl.toLowerCase().includes("api.bentley.com/reality-management/reality-data"))
136890
136928
  return true;
136891
136929
  // detect if it is a RDS url
136892
136930
  const formattedUrl1 = attUrl.pathname.replace(/~2F/g, "/").replace(/\\/g, "/");
@@ -136916,16 +136954,24 @@ class ContextShareProvider {
136916
136954
  // Not a valid URL and not equal, probably $cesiumAsset
136917
136955
  return invalidUrlInfo;
136918
136956
  }
136919
- // If api.bentley.com/realitydata is used, it is context share
136920
- if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata")) {
136957
+ // If api.bentley.com/realitydata or api.bentley.com/reality-management is used, it is context share
136958
+ if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata") || tilesetUrl.toLowerCase().includes("api.bentley.com/reality-management/reality-data")) {
136921
136959
  const lcTilesetUrl = tilesetUrl.toLowerCase();
136922
136960
  // NOTICE: We assume it is a ThreeDTile BUT this could technically be a point cloud (OPC).
136923
136961
  // This method was used in typical workflow where format was always ThreeDTile and is here for legacy support.
136924
136962
  // We don't want to make a call to RDS to resolve format since this method must not be async (it is used in workflow that are not async)
136925
136963
  const format = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataFormat.ThreeDTile;
136926
- const indexId = lcTilesetUrl.indexOf("realitydata/") + 12; // lenght of "realitydata/" = 12;
136964
+ let indexId = -1;
136965
+ let indexProjectId = -1;
136966
+ if (tilesetUrl.toLowerCase().includes("reality-management/reality-data")) {
136967
+ indexId = lcTilesetUrl.indexOf("reality-management/reality-data/") + 32; // length of "reality-management/reality-data/" = 32;
136968
+ indexProjectId = lcTilesetUrl.indexOf("itwinid=") + 8; // length of "itwinid=" = 8;
136969
+ }
136970
+ else if (tilesetUrl.toLowerCase().includes("realitydata")) {
136971
+ indexId = lcTilesetUrl.indexOf("realitydata/") + 12; // length of "realitydata/" = 12;
136972
+ indexProjectId = lcTilesetUrl.indexOf("projectid=") + 10; // length of "projectid=" = 10;
136973
+ }
136927
136974
  const id = lcTilesetUrl.substring(indexId, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Guid.empty.length + indexId);
136928
- const indexProjectId = lcTilesetUrl.indexOf("projectid=") + 10; // lenght of "projectid=" = 10;
136929
136975
  let projectId;
136930
136976
  if (indexProjectId && indexProjectId > 0)
136931
136977
  projectId = lcTilesetUrl.substring(indexProjectId, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Guid.empty.length + indexProjectId);
@@ -138658,7 +138704,7 @@ class GltfReader {
138658
138704
  if (dracoMeshes.length === 0)
138659
138705
  return;
138660
138706
  try {
138661
- const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_7_node_modules_loaders_gl_draco_di-02c2bd"), __webpack_require__.e("_0062")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.7/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
138707
+ const dracoLoader = (await __webpack_require__.e(/*! import() */ "vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_14_node_modules_loaders_gl_draco_d-aa4ff5").then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.14/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
138662
138708
  await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
138663
138709
  }
138664
138710
  catch (err) {
@@ -141536,7 +141582,7 @@ function readPnts(stream, dataOffset, pnts) {
141536
141582
  }
141537
141583
  async function decodeDracoPointCloud(buf) {
141538
141584
  try {
141539
- const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_7_node_modules_loaders_gl_draco_di-02c2bd"), __webpack_require__.e("_0062")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.7/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
141585
+ const dracoLoader = (await __webpack_require__.e(/*! import() */ "vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_4_14_node_modules_loaders_gl_draco_d-aa4ff5").then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.4.14/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
141540
141586
  const mesh = await dracoLoader.parse(buf, {});
141541
141587
  if (mesh.topology !== "point-list")
141542
141588
  return undefined;
@@ -147134,7 +147180,8 @@ var TileGraphicType;
147134
147180
  */
147135
147181
  class TileTreeReference /* implements RenderMemory.Consumer */ {
147136
147182
  /** Force a new tree owner / tile tree to be created for the current tile tree reference
147137
- /* @internal */
147183
+ * @internal
147184
+ */
147138
147185
  resetTreeOwner() { }
147139
147186
  /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.
147140
147187
  * Override this and call super if you have such auxiliary trees.
@@ -148260,7 +148307,10 @@ __webpack_require__.r(__webpack_exports__);
148260
148307
  /** @packageDocumentation
148261
148308
  * @module Tiles
148262
148309
  */
148263
- /** @internal */
148310
+ /**
148311
+ * Class representing an ArcGIS error code.
148312
+ * @internal
148313
+ */
148264
148314
  var ArcGisErrorCode;
148265
148315
  (function (ArcGisErrorCode) {
148266
148316
  ArcGisErrorCode[ArcGisErrorCode["InvalidCredentials"] = 401] = "InvalidCredentials";
@@ -148269,7 +148319,10 @@ var ArcGisErrorCode;
148269
148319
  ArcGisErrorCode[ArcGisErrorCode["UnknownError"] = 1000] = "UnknownError";
148270
148320
  ArcGisErrorCode[ArcGisErrorCode["NoTokenService"] = 1001] = "NoTokenService";
148271
148321
  })(ArcGisErrorCode || (ArcGisErrorCode = {}));
148272
- /** @internal */
148322
+ /**
148323
+ * Class containing utilities relating to ArcGIS services and coordinate systems.
148324
+ * @internal
148325
+ */
148273
148326
  class ArcGisUtilities {
148274
148327
  static getBBoxString(range) {
148275
148328
  if (!range)
@@ -148327,6 +148380,12 @@ class ArcGisUtilities {
148327
148380
  }
148328
148381
  return sources;
148329
148382
  }
148383
+ /**
148384
+ * Get map layer sources from an ArcGIS query.
148385
+ * @param range Range for the query.
148386
+ * @param url URL for the query.
148387
+ * @returns List of map layer sources.
148388
+ */
148330
148389
  static async getSourcesFromQuery(range, url = "https://usgs.maps.arcgis.com/sharing/rest/search") {
148331
148390
  const sources = new Array();
148332
148391
  for (let start = 1; start > 0;) {
@@ -148346,11 +148405,11 @@ class ArcGisUtilities {
148346
148405
  return sources;
148347
148406
  }
148348
148407
  /**
148349
- * Parse the URL to check if it represent a valid ArcGIS service
148408
+ * Parse the URL to check if it represents a valid ArcGIS service
148350
148409
  * @param url URL to validate.
148351
148410
  * @param serviceType Service type to validate (i.e FeatureServer, MapServer)
148352
148411
  * @return Validation Status.
148353
- */
148412
+ */
148354
148413
  static validateUrl(url, serviceType) {
148355
148414
  const urlObj = new URL(url.toLowerCase());
148356
148415
  if (urlObj.pathname.includes("/rest/services/")) {
@@ -148373,10 +148432,10 @@ class ArcGisUtilities {
148373
148432
  * @param capabilitiesFilter List of capabilities 'keyword' that needs to be advertised in the service's metadata
148374
148433
  * in order to be valid. For example: 'Map', 'Query', etc
148375
148434
  * @param userName Username to use for legacy token based security.
148376
- * @param password Username to use for legacy token based security.
148435
+ * @param password Password to use for legacy token based security.
148377
148436
  * @param ignoreCache Flag to skip cache lookup (i.e. force a new server request)
148378
148437
  * @return Validation Status. If successful, a list of available sub-layers will also be returned.
148379
- */
148438
+ */
148380
148439
  static async validateSource(url, formatId, capabilitiesFilter, userName, password, ignoreCache) {
148381
148440
  const metadata = await this.getServiceJson(url, formatId, userName, password, ignoreCache);
148382
148441
  const json = metadata?.content;
@@ -148420,9 +148479,7 @@ class ArcGisUtilities {
148420
148479
  }
148421
148480
  return { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.Valid, subLayers };
148422
148481
  }
148423
- /**
148424
- * Validate MapService tiling metadata and checks if the tile tree is 'Google Maps' compatible.
148425
- */
148482
+ /** Validate MapService tiling metadata and checks if the tile tree is 'Google Maps' compatible. */
148426
148483
  static isEpsg3857Compatible(tileInfo) {
148427
148484
  if (tileInfo.spatialReference?.latestWkid !== 3857 || !Array.isArray(tileInfo.lods))
148428
148485
  return false;
@@ -148430,11 +148487,17 @@ class ArcGisUtilities {
148430
148487
  return zeroLod.level === 0 && Math.abs(zeroLod.resolution - 156543.03392800014) < .001;
148431
148488
  }
148432
148489
  /**
148433
- * Fetch an ArcGIS service metadata, and returns its JSON representation.
148490
+ * Fetches an ArcGIS service metadata, and returns its JSON representation.
148434
148491
  * If an access client has been configured for the specified formatId,
148435
148492
  * it will be used to apply required security token.
148436
148493
  * By default, response for each URL are cached.
148437
- */
148494
+ * @param url URL of the ArcGIS service
148495
+ * @param formatId Format ID of the service
148496
+ * @param userName Username to use for legacy token based security
148497
+ * @param password Password to use for legacy token based security
148498
+ * @param ignoreCache Flag to skip cache lookup (i.e. force a new server request)
148499
+ * @param requireToken Flag to indicate if a token is required
148500
+ */
148438
148501
  static async getServiceJson(url, formatId, userName, password, ignoreCache, requireToken) {
148439
148502
  if (!ignoreCache) {
148440
148503
  const cached = ArcGisUtilities._serviceCache.get(url);
@@ -148481,8 +148544,7 @@ class ArcGisUtilities {
148481
148544
  return undefined;
148482
148545
  }
148483
148546
  }
148484
- /** Read a response from ArcGIS server and check for error code in the response.
148485
- */
148547
+ /** Read a response from ArcGIS server and check for error code in the response. */
148486
148548
  static async checkForResponseErrorCode(response) {
148487
148549
  const tmpResponse = response;
148488
148550
  if (response.headers && tmpResponse.headers.get("content-type")?.toLowerCase().includes("json")) {
@@ -148523,8 +148585,7 @@ class ArcGisUtilities {
148523
148585
  * @param latitude Latitude in degrees to use to compute scales (i.e 0 for Equator)
148524
148586
  * @param tileSize Size of a tile in pixels (i.e 256)
148525
148587
  * @param screenDpi Monitor resolution in dots per inch (i.e. typically 96dpi is used by Google Maps)
148526
- *
148527
- * @returns An array containing resolution and scale values for each requested zoom level
148588
+ * @returns An array containing resolution and scale values for each requested zoom level
148528
148589
  */
148529
148590
  static computeZoomLevelsScales(startZoom = 0, endZoom = 20, latitude = 0, tileSize = 256, screenDpi = 96) {
148530
148591
  // Note: There is probably a more direct way to compute this, but I prefer to go for a simple and well documented approach.
@@ -148543,12 +148604,12 @@ class ArcGisUtilities {
148543
148604
  return results;
148544
148605
  }
148545
148606
  /**
148546
- * Match the provided minScale,maxScale values to corresponding wgs84 zoom levels
148607
+ * Match the provided minScale, maxScale values to corresponding wgs84 zoom levels
148547
148608
  * @param defaultMaxLod Value of the last LOD (i.e 22)
148548
148609
  * @param tileSize Size of a tile in pixels (i.e 256)
148549
148610
  * @param minScale Minimum scale value that needs to be matched to a LOD level
148550
148611
  * @param maxScale Maximum scale value that needs to be matched to a LOD level
148551
- * @returns minLod: LOD value matching minScale, maxLod: LOD value matching maxScale
148612
+ * @returns minLod: LOD value matching minScale, maxLod: LOD value matching maxScale
148552
148613
  */
148553
148614
  static getZoomLevelsScales(defaultMaxLod, tileSize, minScale, maxScale, tolerance = 0) {
148554
148615
  let minLod, maxLod;
@@ -149565,9 +149626,9 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
149565
149626
  return undefined;
149566
149627
  }
149567
149628
  }
149568
- _generateChildIds(tile, resolveChildren) {
149569
- const childIds = this.getPotentialChildIds(tile);
149570
- if (tile.quadId.level < Math.max(1, this.minimumZoomLevel - 1)) {
149629
+ _generateChildIds(quadId, resolveChildren) {
149630
+ const childIds = this.getPotentialChildIds(quadId);
149631
+ if (quadId.level < Math.max(1, this.minimumZoomLevel - 1)) {
149571
149632
  resolveChildren(childIds);
149572
149633
  return;
149573
149634
  }
@@ -149736,7 +149797,7 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
149736
149797
  const tolerancePixel = options?.tolerance ?? 7;
149737
149798
  const json = await this.getIdentifyData(quadId, carto, tolerancePixel, true, maxAllowableOffset);
149738
149799
  if (json && Array.isArray(json.results)) {
149739
- const renderer = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisGraphicsRenderer(hit.iModel);
149800
+ const renderer = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisGraphicsRenderer({ viewport: hit.viewport });
149740
149801
  const layerInfo = { layerName: this._settings.name, subLayerInfos: [] };
149741
149802
  // The 'identify' service returns us a flat/unordered list of records..
149742
149803
  // results may represent features for the a common subLayer.
@@ -150057,12 +150118,13 @@ const loggerCategory = "MapLayerImageryProvider.ArcGisGraphicsRenderer";
150057
150118
  */
150058
150119
  class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcGisGeometryBaseRenderer {
150059
150120
  get attributeSymbology() { return undefined; } // No symbology is applied in this renderer
150060
- constructor(iModel) {
150121
+ constructor(props) {
150061
150122
  super();
150062
150123
  this._scratchPointsArray = new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
150063
150124
  this._scratchPaths = [];
150064
150125
  this._graphics = [];
150065
- this._iModel = iModel;
150126
+ this._viewport = props.viewport;
150127
+ this._iModel = props.viewport.iModel;
150066
150128
  }
150067
150129
  moveGraphics() {
150068
150130
  const graphics = this._graphics;
@@ -150092,20 +150154,13 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
150092
150154
  async fill() {
150093
150155
  if (this._scratchPaths.length > 0) {
150094
150156
  const loops = [];
150095
- if (this._iModel.noGcsDefined) {
150096
- for (const points of this._scratchPaths) {
150097
- loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(this.toSpatialFromEcf(points))));
150098
- }
150157
+ const pathPromises = [];
150158
+ for (const points of this._scratchPaths) {
150159
+ pathPromises.push(this.toSpatial(points));
150099
150160
  }
150100
- else {
150101
- const pathPromises = [];
150102
- for (const points of this._scratchPaths) {
150103
- pathPromises.push(this.toSpatialFromGcs(points));
150104
- }
150105
- const pathsArray = await Promise.all(pathPromises);
150106
- for (const pointsArray of pathsArray) {
150107
- loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(pointsArray)));
150108
- }
150161
+ const pathsArray = await Promise.all(pathPromises);
150162
+ for (const pointsArray of pathsArray) {
150163
+ loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(pointsArray)));
150109
150164
  }
150110
150165
  const mergedLoops = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.RegionOps.constructAllXYRegionLoops(loops);
150111
150166
  for (const loop of mergedLoops) {
@@ -150121,20 +150176,13 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
150121
150176
  this._scratchPaths.push(this._scratchPointsArray.getArray());
150122
150177
  this._scratchPointsArray.clear();
150123
150178
  }
150124
- if (this._iModel.noGcsDefined) {
150125
- for (const linestring of this._scratchPaths) {
150126
- this._graphics.push({ type: "linestring", points: this.toSpatialFromEcf(linestring) });
150127
- }
150179
+ const pathPromises = [];
150180
+ for (const geoPt of this._scratchPaths) {
150181
+ pathPromises.push(this.toSpatial(geoPt));
150128
150182
  }
150129
- else {
150130
- const pathPromises = [];
150131
- for (const noGcsDefined of this._scratchPaths) {
150132
- pathPromises.push(this.toSpatialFromGcs(noGcsDefined));
150133
- }
150134
- const reprojectedPaths = await Promise.all(pathPromises);
150135
- for (const path of reprojectedPaths) {
150136
- this._graphics.push({ type: "linestring", points: _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3dArray.clonePoint3dArray(path) });
150137
- }
150183
+ const reprojectedPaths = await Promise.all(pathPromises);
150184
+ for (const path of reprojectedPaths) {
150185
+ this._graphics.push({ type: "linestring", points: _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3dArray.clonePoint3dArray(path) });
150138
150186
  }
150139
150187
  this._scratchPaths = [];
150140
150188
  }
@@ -150143,33 +150191,25 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
150143
150191
  }
150144
150192
  async finishPoints() {
150145
150193
  if (this._scratchPointsArray.length > 0) {
150146
- if (this._iModel.noGcsDefined) {
150147
- this._graphics.push({ type: "pointstring", points: this.toSpatialFromEcf(this._scratchPointsArray.getArray()) });
150194
+ // Backend reprojection
150195
+ const pointsArray = this._scratchPointsArray.getArray();
150196
+ try {
150197
+ const spatialPoints = await this.toSpatial(pointsArray);
150198
+ this._graphics.push({ type: "pointstring", points: spatialPoints });
150148
150199
  }
150149
- else {
150150
- // Backend reprojection
150151
- const pointsArray = this._scratchPointsArray.getArray();
150152
- try {
150153
- const spatialPoints = await this.toSpatialFromGcs(pointsArray);
150154
- this._graphics.push({ type: "pointstring", points: spatialPoints });
150155
- }
150156
- catch (error) {
150157
- _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, "ArcGisFeatureGraphicsRenderer: Could not reproject points");
150158
- }
150200
+ catch (error) {
150201
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, "ArcGisFeatureGraphicsRenderer: Could not reproject points");
150159
150202
  }
150160
150203
  this._scratchPointsArray.clear();
150161
150204
  }
150162
150205
  }
150163
- async toSpatialFromGcs(geoPoints) {
150164
- return this._iModel.toSpatialFromGcs(geoPoints, { horizontalCRS: { epsg: 3857 }, verticalCRS: { id: "ELLIPSOID" } });
150165
- }
150166
- toSpatialFromEcf(geoPoints) {
150167
- const spatials = [];
150168
- for (const pt of geoPoints) {
150169
- const carto = { longitude: _internal__WEBPACK_IMPORTED_MODULE_3__.WebMercator.getEPSG4326Lon(pt.x), latitude: _internal__WEBPACK_IMPORTED_MODULE_3__.WebMercator.getEPSG4326Lat(pt.y), height: pt.z };
150170
- spatials.push(this._iModel.cartographicToSpatialFromEcef(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromDegrees(carto)));
150206
+ async toSpatial(geoPoints) {
150207
+ const bgMapGeom = this._viewport.displayStyle.getBackgroundMapGeometry();
150208
+ if (bgMapGeom) {
150209
+ const cartoPts = geoPoints.map((pt) => _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromDegrees({ longitude: _internal__WEBPACK_IMPORTED_MODULE_3__.WebMercator.getEPSG4326Lon(pt.x), latitude: _internal__WEBPACK_IMPORTED_MODULE_3__.WebMercator.getEPSG4326Lat(pt.y), height: pt.z }));
150210
+ return bgMapGeom.cartographicToDbFromWgs84Gcs(cartoPts);
150171
150211
  }
150172
- return spatials;
150212
+ return [];
150173
150213
  }
150174
150214
  }
150175
150215
 
@@ -150866,14 +150906,14 @@ class WmtsMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2__
150866
150906
  getDisplayedTileMatrixSetAndLimits() {
150867
150907
  return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);
150868
150908
  }
150869
- _generateChildIds(tile, resolveChildren) {
150870
- const childIds = this.getPotentialChildIds(tile);
150909
+ _generateChildIds(quadId, resolveChildren) {
150910
+ const childIds = this.getPotentialChildIds(quadId);
150871
150911
  const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();
150872
150912
  if (!matrixSetAndLimits) {
150873
150913
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false); // Must always hava a matrix set.
150874
150914
  return;
150875
150915
  }
150876
- const limits = matrixSetAndLimits.limits?.[tile.quadId.level + 1]?.limits;
150916
+ const limits = matrixSetAndLimits.limits?.[quadId.level + 1]?.limits;
150877
150917
  if (!limits) {
150878
150918
  resolveChildren(childIds);
150879
150919
  return;
@@ -151253,17 +151293,24 @@ class ImageryMapLayerTreeSupplier {
151253
151293
  }
151254
151294
  const imageryTreeSupplier = new ImageryMapLayerTreeSupplier();
151255
151295
  /** A reference to one of our tile trees. The specific TileTree drawn may change when the desired imagery type or target iModel changes.
151256
- * @internal
151296
+ * @beta
151257
151297
  */
151258
151298
  class ImageryMapLayerTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_4__.MapLayerTileTreeReference {
151259
- constructor(layerSettings, layerIndex, iModel) {
151260
- super(layerSettings, layerIndex, iModel);
151299
+ /**
151300
+ * Constructor for an ImageryMapLayerTreeReference.
151301
+ * @param layerSettings Map layer settings that are applied to the ImageryMapLayerTreeReference.
151302
+ * @param layerIndex The index of the associated map layer. Usually passed in through [[createMapLayerTreeReference]] in [[MapTileTree]]'s constructor.
151303
+ * @param iModel The iModel containing the ImageryMapLayerTreeReference.
151304
+ */
151305
+ constructor(args) {
151306
+ super(args.layerSettings, args.layerIndex, args.iModel);
151261
151307
  }
151262
151308
  get castsShadows() { return false; }
151263
151309
  /** Return the owner of the TileTree to draw. */
151264
151310
  get treeOwner() {
151265
151311
  return this.iModel.tiles.getTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);
151266
151312
  }
151313
+ /* @internal */
151267
151314
  resetTreeOwner() {
151268
151315
  return this.iModel.tiles.resetTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);
151269
151316
  }
@@ -151530,32 +151577,52 @@ __webpack_require__.r(__webpack_exports__);
151530
151577
 
151531
151578
 
151532
151579
  const loggerCategory = "ArcGISFeatureProvider";
151533
- /** Class representing a map-layer format.
151580
+ /**
151581
+ * Class representing a map-layer format.
151534
151582
  * Each format has it's unique 'formatId' string, used to uniquely identify a format in the [[MapLayerFormatRegistry]].
151535
151583
  * When creating an [[ImageMapLayerSettings]] object, a format needs to be specified this 'formatId'.
151536
151584
  * The MapLayerFormat object can later be used to validate a source, or create a provider.
151537
151585
  *
151538
- * Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].
151586
+ * Subclasses should override formatId, [[MapLayerFormat.createImageryProvider]], and [[MapLayerFormat.createMapLayerTree]].
151539
151587
  * @public
151540
151588
  */
151541
151589
  class MapLayerFormat {
151542
- /** Register the current format in the [[MapLayerFormatRegistry]].
151543
- */
151590
+ /** Register the current format in the [[MapLayerFormatRegistry]]. */
151544
151591
  static register() { _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.register(this); }
151545
- /** Allow a source of a specific to be validated before being attached as a map-layer.
151546
- */
151592
+ /**
151593
+ * Allow a source of a specific format to be validated before being attached as a map-layer.
151594
+ * @param _url The URL of the source.
151595
+ * @param _userName The username to access the source if needed.
151596
+ * @param _password The password to access the source if needed.
151597
+ * @param _ignoreCache Flag to skip cache lookup (i.e. force a new server request).
151598
+ * @returns Validation Status. If successful, a list of available sub-layers may also be returned.
151599
+ */
151547
151600
  static async validateSource(_url, _userName, _password, _ignoreCache) { return { status: _internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerSourceStatus.Valid }; }
151548
- /** Create a [[MapLayerImageryProvider]] that will be used to feed data in a map-layer tile Tree.
151549
- * @internal
151550
- */
151551
- static createImageryProvider(_settings) { (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false); }
151552
- /** @internal */
151601
+ /**
151602
+ * Create a [[MapLayerImageryProvider]] that will be used to feed data in a map-layer tile tree.
151603
+ * @param _settings The map layer settings to be applied to the imagery provider.
151604
+ * @returns Returns the new imagery provider.
151605
+ * @beta
151606
+ */
151607
+ static createImageryProvider(_settings) {
151608
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Subclasses must override this method.");
151609
+ return undefined;
151610
+ }
151611
+ /**
151612
+ * Creates a MapLayerTileTreeReference for this map layer format.
151613
+ * @param _layerSettings Map layer settings that are applied to the MapLayerTileTreeReference.
151614
+ * @param _layerIndex The index of the associated map layer.
151615
+ * @param _iModel The iModel containing the MapLayerTileTreeReference.
151616
+ * @returns Returns the new tile tree reference.
151617
+ * @beta
151618
+ */
151553
151619
  static createMapLayerTree(_layerSettings, _layerIndex, _iModel) {
151554
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
151620
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Subclasses must override this method.");
151555
151621
  return undefined;
151556
151622
  }
151557
151623
  }
151558
- /** A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
151624
+ /**
151625
+ * A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
151559
151626
  * @public
151560
151627
  */
151561
151628
  class MapLayerFormatRegistry {
@@ -151598,7 +151665,8 @@ class MapLayerFormatRegistry {
151598
151665
  }
151599
151666
  return format.createMapLayerTree(layerSettings, layerIndex, iModel);
151600
151667
  }
151601
- /** Returns a [[MapLayerImageryProvider]] based on the provided [[ImageMapLayerSettings]] object.
151668
+ /**
151669
+ * Returns a [[MapLayerImageryProvider]] based on the provided [[ImageMapLayerSettings]] object.
151602
151670
  * @internal
151603
151671
  */
151604
151672
  createImageryProvider(layerSettings) {
@@ -151643,7 +151711,7 @@ __webpack_require__.r(__webpack_exports__);
151643
151711
  class ImageryMapLayerFormat extends _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerFormat {
151644
151712
  /** @internal */
151645
151713
  static createMapLayerTree(layerSettings, layerIndex, iModel) {
151646
- return new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryMapLayerTreeReference(layerSettings, layerIndex, iModel);
151714
+ return new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryMapLayerTreeReference({ layerSettings, layerIndex, iModel });
151647
151715
  }
151648
151716
  }
151649
151717
  class WmsMapLayerFormat extends ImageryMapLayerFormat {
@@ -151875,15 +151943,23 @@ class MapLayerImageryProvider {
151875
151943
  this._geographicTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.GeographicTilingScheme();
151876
151944
  /** @internal */
151877
151945
  this._status = MapLayerImageryProviderStatus.Valid;
151878
- // Those values are used internally for various computation, this should not get overriden.
151879
- /** @internal */
151946
+ /**
151947
+ * This value is used internally for various computations, this should not get overriden.
151948
+ * @internal
151949
+ */
151880
151950
  this.defaultMinimumZoomLevel = 0;
151881
- /** @internal */
151951
+ /**
151952
+ * This value is used internally for various computations, this should not get overriden.
151953
+ * @internal
151954
+ */
151882
151955
  this.defaultMaximumZoomLevel = 22;
151883
151956
  this._mercatorTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.WebMercatorTilingScheme();
151884
151957
  this._geographicTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.GeographicTilingScheme(2, 1, true);
151885
151958
  }
151886
- /** @internal */
151959
+ /**
151960
+ * Initialize the provider by loading the first tile at its default maximum zoom level.
151961
+ * @beta
151962
+ */
151887
151963
  async initialize() {
151888
151964
  this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData) => {
151889
151965
  if (tileData !== undefined)
@@ -151891,20 +151967,31 @@ class MapLayerImageryProvider {
151891
151967
  });
151892
151968
  }
151893
151969
  get tilingScheme() { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }
151894
- /** @internal */
151970
+ /**
151971
+ * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.
151972
+ * @param _cards Logo cards HTML element that may contain custom data attributes.
151973
+ * @param _viewport Viewport to add logo cards to.
151974
+ * @beta
151975
+ */
151895
151976
  addLogoCards(_cards, _viewport) { }
151896
151977
  /** @internal */
151897
151978
  get transparentBackgroundString() { return this._settings.transparentBackground ? "true" : "false"; }
151898
151979
  /** @internal */
151899
151980
  async _areChildrenAvailable(_tile) { return true; }
151900
151981
  /** @internal */
151901
- getPotentialChildIds(tile) {
151902
- const childLevel = tile.quadId.level + 1;
151903
- return tile.quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));
151982
+ getPotentialChildIds(quadId) {
151983
+ const childLevel = quadId.level + 1;
151984
+ return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));
151904
151985
  }
151905
- /** @internal */
151906
- _generateChildIds(tile, resolveChildren) {
151907
- resolveChildren(this.getPotentialChildIds(tile));
151986
+ /**
151987
+ * Get child IDs of a quad and generate tiles based on these child IDs.
151988
+ * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.
151989
+ * @param quadId quad to generate child IDs for.
151990
+ * @param resolveChildren Function that creates tiles from child IDs.
151991
+ * @beta
151992
+ */
151993
+ _generateChildIds(quadId, resolveChildren) {
151994
+ resolveChildren(this.getPotentialChildIds(quadId));
151908
151995
  }
151909
151996
  /** @internal */
151910
151997
  generateChildIds(tile, resolveChildren) {
@@ -151912,9 +151999,16 @@ class MapLayerImageryProvider {
151912
151999
  tile.setLeaf();
151913
152000
  return;
151914
152001
  }
151915
- this._generateChildIds(tile, resolveChildren);
152002
+ this._generateChildIds(tile.quadId, resolveChildren);
151916
152003
  }
151917
- /** @internal */
152004
+ /**
152005
+ * Get tooltip text for a specific quad and cartographic position.
152006
+ * @param strings List of strings to contain tooltip text.
152007
+ * @param quadId Quad ID to get tooltip for.
152008
+ * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.
152009
+ * @param tree Tree associated with the quad to get the tooltip for.
152010
+ * @internal
152011
+ */
151918
152012
  async getToolTip(strings, quadId, _carto, tree) {
151919
152013
  if (doDebugToolTips) {
151920
152014
  const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);
@@ -151949,7 +152043,8 @@ class MapLayerImageryProvider {
151949
152043
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Invalid tile content type");
151950
152044
  return undefined;
151951
152045
  }
151952
- /** Change the status of this provider.
152046
+ /**
152047
+ * Change the status of this provider.
151953
152048
  * Sub-classes should override 'onStatusUpdated' instead of this method.
151954
152049
  * @internal
151955
152050
  */
@@ -152032,31 +152127,49 @@ class MapLayerImageryProvider {
152032
152127
  }
152033
152128
  return true;
152034
152129
  }
152035
- /** @internal */
152036
- // calculates the projected x cartesian coordinate in EPSG:3857from the longitude in EPSG:4326 (WGS84)
152130
+ /**
152131
+ * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)
152132
+ * @param longitude Longitude in EPSG:4326 (WGS84)
152133
+ * @internal
152134
+ */
152037
152135
  getEPSG3857X(longitude) {
152038
152136
  return longitude * 20037508.34 / 180.0;
152039
152137
  }
152040
- /** @internal */
152041
- // calculates the projected y cartesian coordinate in EPSG:3857from the latitude in EPSG:4326 (WGS84)
152138
+ /**
152139
+ * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)
152140
+ * @param latitude Latitude in EPSG:4326 (WGS84)
152141
+ * @internal
152142
+ */
152042
152143
  getEPSG3857Y(latitude) {
152043
152144
  const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);
152044
152145
  return y * 20037508.34 / 180.0;
152045
152146
  }
152046
- /** @internal */
152047
- // calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857
152147
+ /**
152148
+ * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857
152149
+ * @param x3857 Projected x cartesian coordinate in EPSG:3857
152150
+ * @internal
152151
+ */
152048
152152
  getEPSG4326Lon(x3857) {
152049
152153
  return _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Angle.radiansToDegrees(x3857 / earthRadius);
152050
152154
  }
152051
- /** @internal */
152052
- // calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857
152155
+ /**
152156
+ * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857
152157
+ * @param y3857 Projected y cartesian coordinate in EPSG:3857
152158
+ * @internal
152159
+ */
152053
152160
  getEPSG4326Lat(y3857) {
152054
152161
  const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);
152055
152162
  return _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Angle.radiansToDegrees(y);
152056
152163
  }
152057
- /** @internal */
152058
- // Map tile providers like Bing and Mapbox allow the URL to be constructed directory from the zoom level and tile coordinates.
152059
- // However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.
152164
+ /**
152165
+ * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.
152166
+ * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.
152167
+ * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.
152168
+ * @param row Row of the tile
152169
+ * @param column Column of the tile
152170
+ * @param zoomLevel Desired zoom level of the tile
152171
+ * @internal
152172
+ */
152060
152173
  getEPSG4326Extent(row, column, zoomLevel) {
152061
152174
  // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,
152062
152175
  // so use Math.pow instead (I assume the performance lost to be minimal)
@@ -152071,7 +152184,13 @@ class MapLayerImageryProvider {
152071
152184
  const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;
152072
152185
  return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };
152073
152186
  }
152074
- /** @internal */
152187
+ /**
152188
+ * Get the bounding box/extents of a tile in EPSG:3857 format.
152189
+ * @param row Row of the tile
152190
+ * @param column Column of the tile
152191
+ * @param zoomLevel Desired zoom level of the tile
152192
+ * @internal
152193
+ */
152075
152194
  getEPSG3857Extent(row, column, zoomLevel) {
152076
152195
  const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);
152077
152196
  const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);
@@ -152348,24 +152467,45 @@ __webpack_require__.r(__webpack_exports__);
152348
152467
 
152349
152468
 
152350
152469
 
152351
- /** @internal */
152470
+ /**
152471
+ * A [[TileTreeReference]] to be used specifically for [[MapTileTree]]s.
152472
+ * The reference refers to its MapTileTree by way of the tree's [[TileTreeOwner]].
152473
+ * Multiple MapLayerTileTreeReferences can refer to the same TileTree if the map layer settings are equivalent, meaning
152474
+ * they have identical format IDs, URLs, credentials, etc.
152475
+ * @beta
152476
+ */
152352
152477
  class MapLayerTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_3__.TileTreeReference {
152478
+ /**
152479
+ * Constructor for a MapLayerTileTreeReference.
152480
+ * @param _layerSettings Map layer settings that are applied to the MapLayerTileTreeReference.
152481
+ * @param _layerIndex The index of the associated map layer.
152482
+ * @param iModel The iModel containing the MapLayerTileTreeReference.
152483
+ * @internal
152484
+ */
152353
152485
  constructor(_layerSettings, _layerIndex, iModel) {
152354
152486
  super();
152355
152487
  this._layerSettings = _layerSettings;
152356
152488
  this._layerIndex = _layerIndex;
152357
152489
  this.iModel = iModel;
152358
152490
  }
152491
+ /* @internal */
152359
152492
  get _transparency() { return this._layerSettings.transparency ? this._layerSettings.transparency : undefined; }
152493
+ /** Returns true if the associated map layer, including its sublayers, is opaque. */
152360
152494
  get isOpaque() {
152361
152495
  return this._layerSettings.visible && (!this._layerSettings.allSubLayersInvisible) && !this._layerSettings.transparentBackground && 0 === this._layerSettings.transparency;
152362
152496
  }
152497
+ /* Returns the map layer name. */
152363
152498
  get layerName() { return this._layerSettings.name; }
152499
+ /** Returns the imagery provider for the tile tree. */
152364
152500
  get imageryProvider() { return undefined; }
152365
152501
  set layerSettings(layerSettings) { this._layerSettings = layerSettings; }
152502
+ /** Returns the layer settings for the map layer. */
152366
152503
  get layerSettings() { return this._layerSettings; }
152504
+ /** Returns the index of the map layer associated with the tile tree. */
152367
152505
  get layerIndex() { return this._layerIndex; }
152506
+ /** Returns the transparency value of the map layer. */
152368
152507
  get transparency() { return this._transparency; }
152508
+ /* Returns a tooltip describing the hit with the map layer name. */
152369
152509
  async getToolTip(hit) {
152370
152510
  const tree = this.treeOwner.tileTree;
152371
152511
  if (undefined === tree || hit.iModel !== tree.iModel || tree.modelId !== hit.sourceId)
@@ -152377,7 +152517,14 @@ class MapLayerTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_3__.T
152377
152517
  return div;
152378
152518
  }
152379
152519
  }
152380
- /** @internal */
152520
+ /**
152521
+ * Creates a MapLayerTileTreeReference.
152522
+ * @param layerSettings Model or image map layer settings that are applied to the MapLayerTileTreeReference.
152523
+ * @param layerIndex The index of the associated map layer.
152524
+ * @param iModel The iModel containing the new MapLayerTileTreeReference.
152525
+ * @returns Returns the new tile tree reference, either a ModelMapLayerTileTreeReference or an ImageryMapLayerTreeReference.
152526
+ * @internal
152527
+ */
152381
152528
  function createMapLayerTreeReference(layerSettings, layerIndex, iModel) {
152382
152529
  if (layerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerSettings) {
152383
152530
  return (0,_internal__WEBPACK_IMPORTED_MODULE_3__.createModelMapLayerTileTreeReference)(layerSettings, layerIndex, iModel);
@@ -170323,10 +170470,8 @@ class Geometry {
170323
170470
  * Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds `Geometry.largeFractionResult`
170324
170471
  */
170325
170472
  static inverseInterpolate01(f0, f1, fTarget = 0) {
170326
- /**
170327
- * Line equation is "fTarget-f0 = (f1-f0)*x" so "x = (fTarget-f0)/(f1-f0)"
170328
- */
170329
- return Geometry.conditionalDivideFraction(fTarget - f0, f1 - f0); // x = (fTarget-f0)/(f1-f0)
170473
+ // Line equation is fTarget-f0 = (f1-f0)*x so x = (fTarget-f0)/(f1-f0)
170474
+ return Geometry.conditionalDivideFraction(fTarget - f0, f1 - f0);
170330
170475
  }
170331
170476
  /**
170332
170477
  * Return `true` if `json` is an array with at least `minEntries` entries and all entries are numbers (including
@@ -183380,11 +183525,28 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
183380
183525
  curveLengthBetweenFractions(fraction0, fraction1) {
183381
183526
  return Math.abs(fraction1 - fraction0) * this._totalLength;
183382
183527
  }
183528
+ /** Flatten CurveChainWithDistanceIndex children in the input chain.
183529
+ * @return cloned flattened CurveChain, or reference to the input chain if no nesting
183530
+ */
183531
+ static flattenNestedChains(chain) {
183532
+ if (-1 === chain.children.findIndex((child) => { return child instanceof CurveChainWithDistanceIndex; }))
183533
+ return chain;
183534
+ const flatChain = chain.clone();
183535
+ const flatChildren = flatChain.children.flatMap((child) => {
183536
+ if (child instanceof CurveChainWithDistanceIndex)
183537
+ return child.path.children;
183538
+ else
183539
+ return [child];
183540
+ });
183541
+ flatChain.children.splice(0, Infinity, ...flatChildren);
183542
+ return flatChain;
183543
+ }
183383
183544
  /**
183384
183545
  * Capture (not clone) a path into a new `CurveChainWithDistanceIndex`
183385
183546
  * @param path primitive array to be CAPTURED (not cloned)
183386
183547
  */
183387
183548
  static createCapture(path, options) {
183549
+ path = this.flattenNestedChains(path); // nested chains not allowed
183388
183550
  const fragments = DistanceIndexConstructionContext.createPathFragmentIndex(path, options);
183389
183551
  const result = new CurveChainWithDistanceIndex(path, fragments);
183390
183552
  return result;
@@ -183720,6 +183882,36 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
183720
183882
  }
183721
183883
  return undefined;
183722
183884
  }
183885
+ /**
183886
+ * Given a parent chain, convert the corresponding child details in the specified pairs.
183887
+ * * Converted details refer to the chain's global parameterization instead of the child's.
183888
+ * * It is assumed that for all i >= index0, `pairs[i].detailA.curve` is a child of chainA (similarly for chainB).
183889
+ * @param pairs array to mutate
183890
+ * @param index0 convert details of pairs in the tail of the array, starting at index0
183891
+ * @param chainA convert each specified detailA to the global parameterization of chainA
183892
+ * @param chainB convert each specified detailB to the global parameterization of chainB
183893
+ * @param compressAdjacent whether to remove adjacent duplicate pairs after conversion
183894
+ * @return the converted array
183895
+ * @internal
183896
+ */
183897
+ static convertChildDetailToChainDetail(pairs, index0, chainA, chainB, compressAdjacent) {
183898
+ for (let i = index0; i < pairs.length; ++i) {
183899
+ const childDetailPair = pairs[i];
183900
+ if (chainA) {
183901
+ const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
183902
+ if (chainDetail)
183903
+ childDetailPair.detailA = chainDetail;
183904
+ }
183905
+ if (chainB) {
183906
+ const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
183907
+ if (chainDetail)
183908
+ childDetailPair.detailB = chainDetail;
183909
+ }
183910
+ }
183911
+ if (compressAdjacent)
183912
+ pairs = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_8__.CurveLocationDetailPair.removeAdjacentDuplicates(pairs, index0);
183913
+ return pairs;
183914
+ }
183723
183915
  }
183724
183916
  CurveChainWithDistanceIndex._numCalls = 0;
183725
183917
  CurveChainWithDistanceIndex._numTested = 0;
@@ -183778,15 +183970,13 @@ __webpack_require__.r(__webpack_exports__);
183778
183970
 
183779
183971
  /**
183780
183972
  * A `CurveCollection` is an abstract (non-instantiable) class for various sets of curves with particular structures:
183781
- * - `CurveChain` is a (non-instantiable) intermediate class for a sequence of `CurvePrimitive` joining head-to-tail.
183782
- * The two instantiable forms of `CurveChain` are
183783
- * - `Path` - A chain not required to close and not enclosing a planar area (so curves do not have to be on the
183784
- * same plane).
183785
- * - `Loop` - A chain required to close from last to first so that a planar area is enclosed (so curves have to
183786
- * be on the same plane).
183787
- * - `ParityRegion` -- a collection of coplanar `Loop`, with "in/out" classification by parity rules.
183788
- * - `UnionRegion` -- a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
183789
- * - `BagOfCurves` -- a collection of `AnyCurve` with no implied structure.
183973
+ * - [[CurveChain]] - a non-instantiable intermediate class for a sequence of [[CurvePrimitive]] joining head-to-tail.
183974
+ * The two instantiable forms of `CurveChain` are:
183975
+ * - [[Path]] - a chain of curves. Does not have to be closed or planar. A closed `Path` is not treated as bounding a surface.
183976
+ * - [[Loop]] - a closed and planar chain of curves. A `Loop` is treated as bounding a planar area.
183977
+ * - [[ParityRegion]] - a collection of coplanar `Loop`, with "in/out" classification by parity rules.
183978
+ * - [[UnionRegion]] - a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
183979
+ * - [[BagOfCurves]] - a collection of [[AnyCurve]] with no implied structure.
183790
183980
  *
183791
183981
  * @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.
183792
183982
  * @public
@@ -183796,7 +183986,6 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
183796
183986
  super(...arguments);
183797
183987
  /** String name for schema properties */
183798
183988
  this.geometryCategory = "curveCollection";
183799
- /* eslint-disable @typescript-eslint/naming-convention, no-empty */
183800
183989
  /** Flag for inner loop status. Only used by `Loop`. */
183801
183990
  this.isInner = false;
183802
183991
  }
@@ -184173,11 +184362,9 @@ __webpack_require__.r(__webpack_exports__);
184173
184362
  /* harmony export */ CurveCurve: () => (/* binding */ CurveCurve)
184174
184363
  /* harmony export */ });
184175
184364
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
184176
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
184177
- /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
184178
- /* harmony import */ var _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalContexts/CurveCurveCloseApproachXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js");
184365
+ /* harmony import */ var _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internalContexts/CurveCurveCloseApproachXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js");
184179
184366
  /* harmony import */ var _internalContexts_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js");
184180
- /* harmony import */ var _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js");
184367
+ /* harmony import */ var _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js");
184181
184368
  /*---------------------------------------------------------------------------------------------
184182
184369
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
184183
184370
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -184189,8 +184376,6 @@ __webpack_require__.r(__webpack_exports__);
184189
184376
 
184190
184377
 
184191
184378
 
184192
-
184193
-
184194
184379
  /**
184195
184380
  * `CurveCurve` has static method for various computations that work on a pair of curves or curve collections.
184196
184381
  * @public
@@ -184205,22 +184390,11 @@ class CurveCurve {
184205
184390
  * @param tolerance optional distance tolerance for coincidence
184206
184391
  */
184207
184392
  static intersectionXYPairs(curveA, extendA, curveB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
184208
- const handler = new _internalContexts_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_1__.CurveCurveIntersectXY(undefined, extendA, curveB, extendB, tolerance);
184209
- if (curveB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_2__.CurvePrimitive) {
184210
- curveA.dispatchToGeometryHandler(handler);
184211
- }
184212
- else if (curveB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.CurveCollection) {
184213
- const allCurves = curveB.collectCurvePrimitives();
184214
- for (const child of allCurves) {
184215
- handler.resetGeometry(false, child, false);
184216
- curveA.dispatchToGeometryHandler(handler);
184217
- }
184218
- }
184219
- return handler.grabPairedResults();
184393
+ return CurveCurve.intersectionProjectedXYPairs(undefined, curveA, extendA, curveB, extendB, tolerance);
184220
184394
  }
184221
184395
  /**
184222
184396
  * Return xy intersections of 2 projected curves.
184223
- * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections.
184397
+ * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections
184224
184398
  * @param curveA first curve
184225
184399
  * @param extendA true to allow curveA to extend
184226
184400
  * @param curveB second curve
@@ -184244,7 +184418,7 @@ class CurveCurve {
184244
184418
  * @returns array of intersections structured as CurveLocationDetailPair[]
184245
184419
  */
184246
184420
  static intersectionXYZPairs(curveA, extendA, curveB, extendB) {
184247
- const handler = new _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_4__.CurveCurveIntersectXYZ(extendA, curveB, extendB);
184421
+ const handler = new _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_2__.CurveCurveIntersectXYZ(extendA, curveB, extendB);
184248
184422
  curveA.dispatchToGeometryHandler(handler);
184249
184423
  return handler.grabPairedResults();
184250
184424
  }
@@ -184258,7 +184432,7 @@ class CurveCurve {
184258
184432
  for (let i = 0; i < primitives.length; i++) {
184259
184433
  const curveA = primitives[i];
184260
184434
  for (let j = i + 1; j < primitives.length; j++) {
184261
- handler.resetGeometry(false, primitives[j], false);
184435
+ handler.resetGeometry(primitives[j]);
184262
184436
  curveA.dispatchToGeometryHandler(handler);
184263
184437
  }
184264
184438
  }
@@ -184278,7 +184452,7 @@ class CurveCurve {
184278
184452
  * Close approaches further than this xy-distance are not returned.
184279
184453
  */
184280
184454
  static closeApproachProjectedXYPairs(curveA, curveB, maxDistance) {
184281
- const handler = new _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_5__.CurveCurveCloseApproachXY(curveB);
184455
+ const handler = new _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_3__.CurveCurveCloseApproachXY(curveB);
184282
184456
  handler.maxDistanceToAccept = maxDistance;
184283
184457
  curveA.dispatchToGeometryHandler(handler);
184284
184458
  return handler.grabPairedResults();
@@ -185180,19 +185354,13 @@ class CurveLocationDetail {
185180
185354
  * * No action if undefined.
185181
185355
  */
185182
185356
  collapseToEnd() {
185183
- if (this.fraction1 !== undefined) {
185357
+ if (this.fraction1 !== undefined)
185184
185358
  this.fraction = this.fraction1;
185185
- this.fraction1 = undefined;
185186
- }
185187
- if (this.point1) {
185359
+ if (this.point1)
185188
185360
  this.point = this.point1;
185189
- this.point1 = undefined;
185190
- }
185361
+ this.collapseToStart();
185191
185362
  }
185192
- /**
185193
- * Make (fraction, point) the primary (and only) data.
185194
- * * No action if undefined.
185195
- */
185363
+ /** Make (fraction, point) the primary (and only) data. */
185196
185364
  collapseToStart() {
185197
185365
  this.fraction1 = undefined;
185198
185366
  this.point1 = undefined;
@@ -185412,6 +185580,10 @@ class CurveLocationDetail {
185412
185580
  }
185413
185581
  return detailB;
185414
185582
  }
185583
+ /** Compare only the curve and fraction of this detail with `other`. */
185584
+ isSameCurveAndFraction(other) {
185585
+ return this.curve === other.curve && _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(this.fraction, other.fraction);
185586
+ }
185415
185587
  }
185416
185588
  /**
185417
185589
  * Enumeration of configurations for intersections and min/max distance-between-curve
@@ -185474,6 +185646,30 @@ class CurveLocationDetailPair {
185474
185646
  this.detailA = this.detailB;
185475
185647
  this.detailB = q;
185476
185648
  }
185649
+ /**
185650
+ * Mutate the input array by removing the second of two adjacent duplicate pairs.
185651
+ * * Ignores details representing coincident intervals (e.g., for which `fraction1` is defined).
185652
+ * * Comparison is performed by [[CurveLocationDetail.isSameCurveAndFraction]].
185653
+ * * No sorting is performed.
185654
+ * @param pairs array to de-duplicate in place
185655
+ * @param index0 look for duplicates in the tail of the array starting at index0
185656
+ * @return reference to input array
185657
+ * @internal
185658
+ */
185659
+ static removeAdjacentDuplicates(pairs, index0 = 0) {
185660
+ return pairs.flatMap((pair, i, arr) => {
185661
+ if (i >= index0 && i > 0) {
185662
+ if (!pair.detailA.hasFraction1 && !pair.detailB.hasFraction1) {
185663
+ if (pair.detailA.isSameCurveAndFraction(arr[i - 1].detailA)) {
185664
+ if (pair.detailB.isSameCurveAndFraction(arr[i - 1].detailB)) {
185665
+ return []; // remove the i_th pair
185666
+ }
185667
+ }
185668
+ }
185669
+ }
185670
+ return [pair]; // preserve the i_th pair
185671
+ });
185672
+ }
185477
185673
  }
185478
185674
  /**
185479
185675
  * Data bundle for a pair of arrays of CurveLocationDetail structures.
@@ -186524,10 +186720,8 @@ class CurveWireMomentsXYZ {
186524
186720
  if (root instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_3__.CurvePrimitive)
186525
186721
  root.emitStrokableParts(this);
186526
186722
  else if (root instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_4__.CurveCollection) {
186527
- if (root.children !== undefined)
186528
- for (const child of root.children) {
186529
- this.visitLeaves(child);
186530
- }
186723
+ for (const child of root.children)
186724
+ this.visitLeaves(child);
186531
186725
  }
186532
186726
  }
186533
186727
  }
@@ -187916,10 +188110,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
187916
188110
  isInPlane(plane) {
187917
188111
  return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
187918
188112
  }
187919
- /**
187920
- * Push a hit, fixing up the prior entry if needed.
187921
- * Return the incremented counter.
187922
- */
188113
+ /** Push a hit, fixing up the prior entry if needed. */
187923
188114
  static pushVertexHit(result, counter, cp, fraction, point) {
187924
188115
  const detail = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.createCurveFractionPoint(cp, fraction, point);
187925
188116
  result.push(detail);
@@ -191100,7 +191291,8 @@ class RegionOps {
191100
191291
  return halfDistTol * (range.xLength() + range.yLength() + halfDistTol);
191101
191292
  }
191102
191293
  /**
191103
- * Return an xy area for a loop, parity region, or union region.
191294
+ * Return a (signed) xy area for a region.
191295
+ * * The area is negative if and only if the region is oriented clockwise with respect to the positive z-axis.
191104
191296
  * @param root any Loop, ParityRegion, or UnionRegion.
191105
191297
  */
191106
191298
  static computeXYArea(root) {
@@ -193739,10 +193931,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193739
193931
  this._results = [];
193740
193932
  return result;
193741
193933
  }
193742
- /** Returns `true` if `detail` has same curve and fraction. */
193743
- sameCurveAndFraction(cp, fraction, detail) {
193744
- return cp === detail.curve && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isAlmostEqualNumber(fraction, detail.fraction);
193745
- }
193746
193934
  /**
193747
193935
  * If distance between pointA and pointB is less than maxDistance, record CurveLocationDetailPair which is
193748
193936
  * the approach from pointA to pointB.
@@ -193793,13 +193981,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193793
193981
  const oldDetailA = this._results[numPrevious - 1].detailA;
193794
193982
  const oldDetailB = this._results[numPrevious - 1].detailB;
193795
193983
  if (reversed) {
193796
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
193797
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
193984
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
193985
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
193798
193986
  return;
193799
193987
  }
193800
193988
  else {
193801
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
193802
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
193989
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
193990
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
193803
193991
  return;
193804
193992
  }
193805
193993
  }
@@ -193845,13 +194033,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
193845
194033
  const oldDetailA = this._results[numPrevious - 1].detailA;
193846
194034
  const oldDetailB = this._results[numPrevious - 1].detailB;
193847
194035
  if (reversed) {
193848
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
193849
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
194036
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
194037
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
193850
194038
  return;
193851
194039
  }
193852
194040
  else {
193853
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
193854
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
194041
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
194042
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
193855
194043
  return;
193856
194044
  }
193857
194045
  }
@@ -194237,38 +194425,22 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194237
194425
  }
194238
194426
  this._geometryB = geomB; // restore
194239
194427
  }
194240
- /**
194241
- * Given a parent chain, convert the corresponding child details so that they refer to the chain's global parameterization.
194242
- * * It is assumed that `this._results[i].detailA.curve` is a child of chainA, and similarly for detailB/chainB.
194243
- * @param chainA convert each detailA to the global parameterization of chainA
194244
- * @param chainB convert each detailB to the global parameterization of chainB
194245
- */
194246
- convertChildDetailToChainDetail(chainA, chainB) {
194247
- for (const childDetailPair of this._results) {
194248
- if (chainA) {
194249
- const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
194250
- if (chainDetail)
194251
- childDetailPair.detailA = chainDetail;
194252
- }
194253
- if (chainB) {
194254
- const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
194255
- if (chainDetail)
194256
- childDetailPair.detailB = chainDetail;
194257
- }
194258
- }
194259
- }
194260
194428
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
194261
194429
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
194262
194430
  if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
194263
194431
  return;
194432
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194433
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
194434
+ return;
194435
+ }
194436
+ const index0 = this._results.length;
194264
194437
  const geomB = this._geometryB; // save
194265
194438
  for (const child of geomB.path.children) {
194266
194439
  this.resetGeometry(child);
194267
194440
  geomAHandler(geomA);
194268
194441
  }
194269
194442
  this.resetGeometry(geomB); // restore
194270
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!(geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex));
194271
- this.convertChildDetailToChainDetail(undefined, geomB);
194443
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
194272
194444
  }
194273
194445
  /** Double dispatch handler for strongly typed segment. */
194274
194446
  handleLineSegment3d(segmentA) {
@@ -194439,7 +194611,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194439
194611
  /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
194440
194612
  handleCurveChainWithDistanceIndex(chain) {
194441
194613
  super.handleCurveChainWithDistanceIndex(chain);
194442
- this.convertChildDetailToChainDetail(chain, this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex ? this._geometryB : undefined);
194614
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
194615
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
194443
194616
  }
194444
194617
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
194445
194618
  handleBSplineCurve3dH(_curve) {
@@ -194481,27 +194654,36 @@ __webpack_require__.r(__webpack_exports__);
194481
194654
  /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* binding */ BezierBezierIntersectionXYRRToRRD),
194482
194655
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
194483
194656
  /* harmony export */ });
194484
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
194485
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
194486
- /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
194487
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
194488
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194489
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
194490
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
194491
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194492
- /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
194493
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
194494
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
194495
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
194496
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194497
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
194498
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
194499
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194500
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194657
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
194658
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
194659
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
194660
+ /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
194661
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
194662
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194663
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
194664
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
194665
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194666
+ /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
194667
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
194668
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
194669
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
194670
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194671
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
194672
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
194673
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
194674
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
194675
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194676
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194501
194677
  /*---------------------------------------------------------------------------------------------
194502
194678
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
194503
194679
  * See LICENSE.md in the project root for license terms and full copyright notice.
194504
194680
  *--------------------------------------------------------------------------------------------*/
194681
+ /** @packageDocumentation
194682
+ * @module Curve
194683
+ */
194684
+
194685
+
194686
+
194505
194687
 
194506
194688
 
194507
194689
 
@@ -194525,13 +194707,13 @@ __webpack_require__.r(__webpack_exports__);
194525
194707
  * * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
194526
194708
  * @internal
194527
194709
  */
194528
- class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__.NewtonEvaluatorRRtoRRD {
194710
+ class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.NewtonEvaluatorRRtoRRD {
194529
194711
  constructor(curveA, curveB) {
194530
194712
  super();
194531
194713
  this._curveA = curveA;
194532
194714
  this._curveB = curveB;
194533
- this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__.Ray3d.createZero();
194534
- this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__.Ray3d.createZero();
194715
+ this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
194716
+ this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
194535
194717
  }
194536
194718
  evaluate(fractionA, fractionB) {
194537
194719
  this._curveA.fractionToPointAndDerivative(fractionA, this._rayA);
@@ -194546,7 +194728,7 @@ class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORT
194546
194728
  * * geometryB is saved for later reference.
194547
194729
  * @internal
194548
194730
  */
194549
- class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_2__.NullGeometryHandler {
194731
+ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.RecurseToCurvesGeometryHandler {
194550
194732
  /**
194551
194733
  * The constructor.
194552
194734
  * @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
@@ -194555,7 +194737,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194555
194737
  * @param extendB flag for extension of geometryB.
194556
194738
  * @param tolerance optional distance tolerance for coincidence.
194557
194739
  */
194558
- constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance) {
194740
+ constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
194559
194741
  super();
194560
194742
  this._extendA = extendA;
194561
194743
  this._geometryB = geometryB;
@@ -194567,14 +194749,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194567
194749
  if (!this._worldToLocalAffine)
194568
194750
  this._worldToLocalPerspective = worldToLocal.clone();
194569
194751
  }
194570
- this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_4__.CoincidentGeometryQuery.create(tolerance);
194752
+ this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__.CoincidentGeometryQuery.create(tolerance);
194571
194753
  this._results = [];
194572
194754
  }
194573
- /** Reset the geometry and flags, leaving all other parts unchanged (and preserving accumulated intersections) */
194574
- resetGeometry(extendA, geometryB, extendB) {
194575
- this._extendA = extendA;
194755
+ /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
194756
+ resetGeometry(geometryB) {
194576
194757
  this._geometryB = geometryB;
194577
- this._extendB = extendB;
194578
194758
  }
194579
194759
  acceptFraction(extend0, fraction, extend1, fractionTol = 1.0e-12) {
194580
194760
  if (!extend0 && fraction < -fractionTol)
@@ -194584,12 +194764,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194584
194764
  return true;
194585
194765
  }
194586
194766
  /** Test the fraction by strict parameter, but allow toleranced distance test at ends. */
194587
- acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance) {
194767
+ acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
194588
194768
  if (!extend0 && fraction < 0) {
194589
- return _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
194769
+ return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
194590
194770
  }
194591
194771
  else if (!extend1 && fraction > 1.0)
194592
- return _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
194772
+ return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
194593
194773
  return true;
194594
194774
  }
194595
194775
  /**
@@ -194602,9 +194782,6 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194602
194782
  this._results = [];
194603
194783
  return result;
194604
194784
  }
194605
- sameCurveAndFraction(cp, fraction, detail) {
194606
- return cp === detail.curve && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isAlmostEqualNumber(fraction, detail.fraction);
194607
- }
194608
194785
  /**
194609
194786
  * Record the pre-computed intersection between two curves. Filter by extension rules. Record with fraction mapping.
194610
194787
  * @param localFractionA intersection fraction local to the subcurve of cpA between fractionA0 and fractionA1
@@ -194625,14 +194802,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194625
194802
  intervalDetails.detailA.hasFraction1 &&
194626
194803
  intervalDetails.detailB.hasFraction1;
194627
194804
  if (isInterval) {
194628
- globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
194629
- globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
194630
- globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
194631
- globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
194805
+ globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
194806
+ globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
194807
+ globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
194808
+ globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
194632
194809
  }
194633
194810
  else {
194634
- globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
194635
- globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
194811
+ globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
194812
+ globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
194636
194813
  }
194637
194814
  // ignore duplicate of most recent pair
194638
194815
  const numPrevious = this._results.length;
@@ -194640,31 +194817,31 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194640
194817
  const oldDetailA = this._results[numPrevious - 1].detailA;
194641
194818
  const oldDetailB = this._results[numPrevious - 1].detailB;
194642
194819
  if (reversed) {
194643
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
194644
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
194820
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
194821
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
194645
194822
  return;
194646
194823
  }
194647
194824
  else {
194648
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
194649
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
194825
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
194826
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
194650
194827
  return;
194651
194828
  }
194652
194829
  }
194653
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
194654
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
194830
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
194831
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
194655
194832
  if (isInterval) {
194656
194833
  detailA.captureFraction1Point1(globalFractionA1, cpA.fractionToPoint(globalFractionA1));
194657
194834
  detailB.captureFraction1Point1(globalFractionB1, cpB.fractionToPoint(globalFractionB1));
194658
194835
  }
194659
194836
  else {
194660
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveIntervalRole.isolated);
194661
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveIntervalRole.isolated);
194837
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
194838
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
194662
194839
  }
194663
194840
  if (reversed) {
194664
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetailPair(detailB, detailA));
194841
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailB, detailA));
194665
194842
  }
194666
194843
  else {
194667
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetailPair(detailA, detailB));
194844
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailA, detailB));
194668
194845
  }
194669
194846
  }
194670
194847
  /**
@@ -194688,11 +194865,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194688
194865
  // But the transverse intersector notion of coincidence is based on the determinant ratios, which are hard
194689
194866
  // to relate to physical tolerance.
194690
194867
  // So do the overlap first. This should do a quick exit in non-coincident case.
194691
- const overlap = this._coincidentGeometryContext.coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1);
194692
- if (overlap) {
194693
- this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
194868
+ const overlap = this._coincidentGeometryContext.coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1, false);
194869
+ if (overlap) { // the lines are coincident
194870
+ if (this._coincidentGeometryContext.clampCoincidentOverlapToSegmentBounds(overlap, pointA0, pointA1, pointB0, pointB1, extendA0, extendA1, extendB0, extendB1)) {
194871
+ this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
194872
+ }
194694
194873
  }
194695
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
194874
+ else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
194696
194875
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
194697
194876
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
194698
194877
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -194712,7 +194891,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194712
194891
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
194713
194892
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
194714
194893
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
194715
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
194894
+ const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
194716
194895
  if (fractionAB !== undefined) {
194717
194896
  const fractionA = fractionAB.x;
194718
194897
  const fractionB = fractionAB.y;
@@ -194755,17 +194934,17 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194755
194934
  const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
194756
194935
  const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
194757
194936
  const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
194758
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
194759
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
194760
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
194761
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194762
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194763
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194764
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
194937
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
194938
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
194939
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
194940
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194941
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194942
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194943
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
194765
194944
  for (let i = 0; i < numRoots; i++) {
194766
194945
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
194767
194946
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
194768
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
194947
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
194769
194948
  if (lineFraction !== undefined &&
194770
194949
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
194771
194950
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -194781,19 +194960,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194781
194960
  pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
194782
194961
  pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
194783
194962
  }
194784
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
194785
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
194786
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
194787
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194788
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194789
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194790
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
194963
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
194964
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
194965
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
194966
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194967
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194968
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
194969
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
194791
194970
  const lineFractionTol = 1.0e-10;
194792
194971
  const arcFractionTol = 1.0e-7;
194793
194972
  for (let i = 0; i < numRoots; i++) {
194794
194973
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
194795
194974
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
194796
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194975
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194797
194976
  if (lineFraction !== undefined &&
194798
194977
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
194799
194978
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -194814,7 +194993,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194814
194993
  const localB = inverseA.multiplyMatrixMatrix(matrixB); // localB->localA transform
194815
194994
  const ellipseRadians = [];
194816
194995
  const circleRadians = [];
194817
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
194996
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
194818
194997
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
194819
194998
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
194820
194999
  ellipseRadians, circleRadians);
@@ -194845,14 +195024,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194845
195024
  if (this._worldToLocalPerspective) {
194846
195025
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
194847
195026
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
194848
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
194849
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
195027
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195028
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
194850
195029
  }
194851
195030
  else {
194852
195031
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
194853
195032
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
194854
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
194855
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
195033
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195034
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
194856
195035
  }
194857
195036
  const conditionA = matrixA.conditionNumber();
194858
195037
  const conditionB = matrixB.conditionNumber();
@@ -194882,11 +195061,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194882
195061
  let matrixA;
194883
195062
  if (this._worldToLocalPerspective) {
194884
195063
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
194885
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195064
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
194886
195065
  }
194887
195066
  else {
194888
195067
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
194889
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195068
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
194890
195069
  }
194891
195070
  // The worldToLocal has moved the arc vectors into local space.
194892
195071
  // matrixA captures the xyw parts (ignoring z)
@@ -194897,7 +195076,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194897
195076
  const orderF = cpB.order; // order of the beziers for simple coordinates
194898
195077
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
194899
195078
  const coffF = new Float64Array(orderF);
194900
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderG);
195079
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderG);
194901
195080
  const axx = matrixAInverse.at(0, 0);
194902
195081
  const axy = matrixAInverse.at(0, 1);
194903
195082
  const axz = 0.0;
@@ -194968,13 +195147,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
194968
195147
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
194969
195148
  reversed) {
194970
195149
  if (!this._xyzwA0)
194971
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195150
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
194972
195151
  if (!this._xyzwA1)
194973
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195152
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
194974
195153
  if (!this._xyzwPlane)
194975
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195154
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
194976
195155
  if (!this._xyzwB)
194977
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195156
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
194978
195157
  /*
194979
195158
  const roots = univariateBezierG.roots(0.0, true);
194980
195159
  if (roots) {
@@ -195000,7 +195179,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195000
195179
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
195001
195180
  f1 = i * df;
195002
195181
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
195003
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195182
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195004
195183
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
195005
195184
  let errors = 0;
195006
195185
  const roots = univariateBezierB.roots(0.0, true);
@@ -195008,11 +195187,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195008
195187
  for (const r of roots) {
195009
195188
  let bezierBFraction = r;
195010
195189
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
195011
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195012
- if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195013
- let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(f0, segmentAFraction, f1);
195190
+ const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195191
+ if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195192
+ let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(f0, segmentAFraction, f1);
195014
195193
  const xyMatchingFunction = new BezierBezierIntersectionXYRRToRRD(bezierA, bezierB);
195015
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195194
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195016
195195
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
195017
195196
  if (newtonSearcher.runIterations()) {
195018
195197
  bezierAFraction = newtonSearcher.getU();
@@ -195055,8 +195234,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195055
195234
  const rangeB = this.getRanges(bezierSpanB);
195056
195235
  const orderA = bcurveA.order;
195057
195236
  const orderB = bcurveB.order;
195058
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderA);
195059
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderB);
195237
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderA);
195238
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderB);
195060
195239
  for (let a = 0; a < numA; a++) {
195061
195240
  for (let b = 0; b < numB; b++) {
195062
195241
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -195080,7 +195259,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195080
195259
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
195081
195260
  if (this._worldToLocalAffine)
195082
195261
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
195083
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createFromPointAndWeight(xyz, w);
195262
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createFromPointAndWeight(xyz, w);
195084
195263
  }
195085
195264
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
195086
195265
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -195104,7 +195283,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195104
195283
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB, reversed) {
195105
195284
  const pointA0H = this.projectPoint(pointA0);
195106
195285
  const pointA1H = this.projectPoint(pointA1);
195107
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195286
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195108
195287
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
195109
195288
  // NOW .. we have a plane in world space. Intersect it with the bspline:
195110
195289
  const intersections = [];
@@ -195116,10 +195295,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195116
195295
  const fractionB = detail.fraction;
195117
195296
  const curvePoint = detail.point;
195118
195297
  const curvePointH = this.projectPoint(curvePoint);
195119
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195120
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
195121
- this.acceptFraction(extendB, fractionB, extendB)) {
195122
- this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
195298
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195299
+ if (lineFraction !== undefined) {
195300
+ if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB, fractionB, extendB)) {
195301
+ this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
195302
+ }
195123
195303
  }
195124
195304
  }
195125
195305
  }
@@ -195220,72 +195400,130 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195220
195400
  transform.multiplyPoint3d(pointB0, this._workPointB0);
195221
195401
  transform.multiplyPoint3d(pointB1, this._workPointB1);
195222
195402
  }
195403
+ /** Low level dispatch of curve collection. */
195404
+ dispatchCurveCollection(geomA, geomAHandler) {
195405
+ const geomB = this._geometryB; // save
195406
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
195407
+ return;
195408
+ for (const child of geomB.children) {
195409
+ this.resetGeometry(child);
195410
+ geomAHandler(geomA);
195411
+ }
195412
+ this._geometryB = geomB; // restore
195413
+ }
195414
+ /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
195415
+ dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
195416
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex))
195417
+ return;
195418
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195419
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
195420
+ return;
195421
+ }
195422
+ const index0 = this._results.length;
195423
+ const geomB = this._geometryB; // save
195424
+ for (const child of geomB.path.children) {
195425
+ this.resetGeometry(child);
195426
+ geomAHandler(geomA);
195427
+ }
195428
+ this.resetGeometry(geomB); // restore
195429
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
195430
+ }
195223
195431
  /** Double dispatch handler for strongly typed segment. */
195224
195432
  handleLineSegment3d(segmentA) {
195225
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195433
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195226
195434
  const segmentB = this._geometryB;
195227
195435
  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);
195228
195436
  }
195229
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
195437
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195230
195438
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
195231
195439
  }
195232
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
195440
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195233
195441
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
195234
195442
  }
195235
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
195443
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195236
195444
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
195237
195445
  }
195446
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195447
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
195448
+ }
195449
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195450
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
195451
+ }
195238
195452
  return undefined;
195239
195453
  }
195240
195454
  /** Double dispatch handler for strongly typed linestring. */
195241
195455
  handleLineString3d(lsA) {
195242
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
195456
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195243
195457
  const lsB = this._geometryB;
195244
195458
  this.computeLineStringLineString(lsA, lsB, false);
195245
195459
  }
195246
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195460
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195247
195461
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195248
195462
  }
195249
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
195463
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195250
195464
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195251
195465
  }
195252
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
195466
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195253
195467
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
195254
195468
  }
195469
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195470
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
195471
+ }
195472
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195473
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
195474
+ }
195255
195475
  return undefined;
195256
195476
  }
195257
195477
  /** Double dispatch handler for strongly typed arc. */
195258
195478
  handleArc3d(arc0) {
195259
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195479
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195260
195480
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
195261
195481
  }
195262
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
195482
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195263
195483
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
195264
195484
  }
195265
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
195485
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195266
195486
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
195267
195487
  }
195268
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
195488
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195269
195489
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
195270
195490
  }
195491
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195492
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
195493
+ }
195494
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195495
+ this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
195496
+ }
195271
195497
  return undefined;
195272
195498
  }
195273
195499
  /** Double dispatch handler for strongly typed bspline curve. */
195274
195500
  handleBSplineCurve3d(curve) {
195275
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
195501
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195276
195502
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
195277
195503
  }
195278
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
195504
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195279
195505
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
195280
195506
  }
195281
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
195507
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195282
195508
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
195283
195509
  }
195284
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3dBase) {
195510
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
195285
195511
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
195286
195512
  }
195513
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195514
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
195515
+ }
195516
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195517
+ this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
195518
+ }
195287
195519
  return undefined;
195288
195520
  }
195521
+ /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
195522
+ handleCurveChainWithDistanceIndex(chain) {
195523
+ super.handleCurveChainWithDistanceIndex(chain);
195524
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
195525
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
195526
+ }
195289
195527
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
195290
195528
  handleBSplineCurve3dH(_curve) {
195291
195529
  /*
@@ -195304,19 +195542,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195304
195542
  return undefined;
195305
195543
  }
195306
195544
  }
195307
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__.Vector2d.create();
195308
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195309
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195310
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195311
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
195312
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195313
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195314
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195315
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195316
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195317
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195318
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195319
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
195545
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__.Vector2d.create();
195546
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195547
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195548
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195549
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195550
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195551
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195552
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195553
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195554
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195555
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195556
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195557
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195320
195558
 
195321
195559
 
195322
195560
 
@@ -195333,17 +195571,20 @@ __webpack_require__.r(__webpack_exports__);
195333
195571
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
195334
195572
  /* harmony export */ CurveCurveIntersectXYZ: () => (/* binding */ CurveCurveIntersectXYZ)
195335
195573
  /* harmony export */ });
195336
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195337
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195338
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195339
- /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
195340
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195341
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195342
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195343
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195344
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195345
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195346
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195574
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
195575
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195576
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195577
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195578
+ /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
195579
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195580
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195581
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195582
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195583
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
195584
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
195585
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195586
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195587
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195347
195588
  /*---------------------------------------------------------------------------------------------
195348
195589
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
195349
195590
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -195362,6 +195603,9 @@ __webpack_require__.r(__webpack_exports__);
195362
195603
 
195363
195604
 
195364
195605
 
195606
+
195607
+
195608
+
195365
195609
  // cspell:word XYRR
195366
195610
  /**
195367
195611
  * Handler class for XYZ intersections between _geometryB and another geometry.
@@ -195369,7 +195613,7 @@ __webpack_require__.r(__webpack_exports__);
195369
195613
  * * geometryB is saved for later reference.
195370
195614
  * @internal
195371
195615
  */
195372
- class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__.NullGeometryHandler {
195616
+ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.RecurseToCurvesGeometryHandler {
195373
195617
  /**
195374
195618
  * @param extendA flag to enable using extension of the other geometry.
195375
195619
  * @param geometryB second curve for intersection. Saved for reference by specific handler methods.
@@ -195382,6 +195626,10 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195382
195626
  this._extendB = extendB;
195383
195627
  this._results = [];
195384
195628
  }
195629
+ /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
195630
+ resetGeometry(geometryB) {
195631
+ this._geometryB = geometryB;
195632
+ }
195385
195633
  /**
195386
195634
  * Return the results structure for the intersection calculation, structured as an array of CurveLocationDetailPair.
195387
195635
  * @param reinitialize if true, a new results structure is created for use by later calls.
@@ -195406,21 +195654,21 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195406
195654
  * Record with fraction mapping.
195407
195655
  */
195408
195656
  recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, cpB, fractionB0, fractionB1, reversed) {
195409
- const globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195410
- const globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195411
- // ignore duplicate of most recent point . ..
195657
+ const globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195658
+ const globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195659
+ // ignore duplicate of most recent point
195412
195660
  const numPrevious = this._results.length;
195413
195661
  if (numPrevious > 0) {
195414
- const topFractionA = this._results[numPrevious - 1].detailA.fraction;
195415
- const topFractionB = this._results[numPrevious - 1].detailB.fraction;
195662
+ const oldDetailA = this._results[numPrevious - 1].detailA;
195663
+ const oldDetailB = this._results[numPrevious - 1].detailB;
195416
195664
  if (reversed) {
195417
- if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionA, globalFractionB) &&
195418
- _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionB, globalFractionA))
195665
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
195666
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
195419
195667
  return;
195420
195668
  }
195421
195669
  else {
195422
- if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionA, globalFractionA) &&
195423
- _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionB, globalFractionB))
195670
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
195671
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
195424
195672
  return;
195425
195673
  }
195426
195674
  }
@@ -195428,16 +195676,16 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195428
195676
  const pointB = cpB.fractionToPoint(globalFractionB);
195429
195677
  if (!pointA.isAlmostEqualMetric(pointB))
195430
195678
  return;
195431
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, pointA);
195432
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveIntervalRole.isolated);
195433
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, pointB);
195434
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveIntervalRole.isolated);
195679
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, pointA);
195680
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveIntervalRole.isolated);
195681
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, pointB);
195682
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveIntervalRole.isolated);
195435
195683
  if (reversed) {
195436
- const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetailPair(detailB, detailA);
195684
+ const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair(detailB, detailA);
195437
195685
  this._results.push(pair);
195438
195686
  }
195439
195687
  else {
195440
- const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetailPair(detailA, detailB);
195688
+ const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair(detailA, detailB);
195441
195689
  this._results.push(pair);
195442
195690
  }
195443
195691
  }
@@ -195448,7 +195696,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195448
195696
  */
195449
195697
  computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
195450
195698
  const uv = CurveCurveIntersectXYZ._workVector2dA;
195451
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
195699
+ if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
195452
195700
  this.acceptFraction(extendA0, uv.x, extendA1) && this.acceptFraction(extendB0, uv.y, extendB1)) {
195453
195701
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
195454
195702
  }
@@ -195475,20 +195723,20 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195475
195723
  * @param vectorC second candidate for additional in-plane vector
195476
195724
  */
195477
195725
  createPlaneWithPreferredPerpendicular(origin, vectorA, cosineValue, vectorB, vectorC) {
195478
- cosineValue = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.restrictToInterval(Math.abs(cosineValue), 0.0, 1.0 - _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction);
195726
+ cosineValue = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.restrictToInterval(Math.abs(cosineValue), 0.0, 1.0 - _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallFraction);
195479
195727
  const dotAA = vectorA.magnitudeSquared();
195480
195728
  const dotBB = vectorB.magnitudeSquared();
195481
195729
  const dotAB = Math.abs(vectorA.dotProduct(vectorB));
195482
195730
  const cross = vectorA.unitCrossProduct(dotAB * dotAB <= cosineValue * cosineValue * dotAA * dotBB ? vectorB : vectorC);
195483
195731
  if (cross)
195484
- return _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(origin, cross);
195732
+ return _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(origin, cross);
195485
195733
  return undefined;
195486
195734
  }
195487
195735
  // Caller accesses data from a linestring or segment and passes it here.
195488
195736
  // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
195489
195737
  // The fraction and extend parameters allow all combinations to be passed in.
195490
195738
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
195491
- const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Vector3d.createStartEnd(pointA0, pointA1);
195739
+ const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(pointA0, pointA1);
195492
195740
  const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, 0.94, arc.perpendicularVector, arc.vector0);
195493
195741
  if (plane !== undefined) {
195494
195742
  const candidates = [];
@@ -195497,7 +195745,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195497
195745
  let linePoint;
195498
195746
  for (const c of candidates) {
195499
195747
  if (this.acceptFraction(extendB0, c.fraction, extendB1)) {
195500
- lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
195748
+ lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
195501
195749
  if (lineFraction !== undefined) {
195502
195750
  linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
195503
195751
  if (linePoint.isAlmostEqualMetric(c.point)
@@ -195518,7 +195766,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195518
195766
  if (otherVectors !== undefined) {
195519
195767
  const ellipseRadians = [];
195520
195768
  const circleRadians = [];
195521
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
195769
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
195522
195770
  for (let i = 0; i < ellipseRadians.length; i++) {
195523
195771
  const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
195524
195772
  const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
@@ -195538,8 +195786,8 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195538
195786
  // 2) accept points that appear in both intersection sets.
195539
195787
  // If arcs are in parallel planes -- no intersections.
195540
195788
  // If arcs are in the same plane -- xy intersection in that plane.
195541
- const planeA = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(cpA.center, cpA.perpendicularVector);
195542
- const planeB = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(cpB.center, cpB.perpendicularVector);
195789
+ const planeA = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(cpA.center, cpA.perpendicularVector);
195790
+ const planeB = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(cpB.center, cpB.perpendicularVector);
195543
195791
  if (planeA === undefined || planeB === undefined)
195544
195792
  return;
195545
195793
  if (planeA.getNormalRef().isParallelTo(planeB.getNormalRef())) {
@@ -195940,72 +196188,130 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
195940
196188
  }
195941
196189
  }
195942
196190
  }
196191
+ /** Low level dispatch of curve collection. */
196192
+ dispatchCurveCollection(geomA, geomAHandler) {
196193
+ const geomB = this._geometryB; // save
196194
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection))
196195
+ return;
196196
+ for (const child of geomB.children) {
196197
+ this.resetGeometry(child);
196198
+ geomAHandler(geomA);
196199
+ }
196200
+ this._geometryB = geomB; // restore
196201
+ }
196202
+ /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
196203
+ dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
196204
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex))
196205
+ return;
196206
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
196207
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
196208
+ return;
196209
+ }
196210
+ const index0 = this._results.length;
196211
+ const geomB = this._geometryB; // save
196212
+ for (const child of geomB.path.children) {
196213
+ this.resetGeometry(child);
196214
+ geomAHandler(geomA);
196215
+ }
196216
+ this.resetGeometry(geomB); // restore
196217
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
196218
+ }
195943
196219
  /** Double dispatch handler for strongly typed segment. */
195944
196220
  handleLineSegment3d(segmentA) {
195945
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
196221
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
195946
196222
  const segmentB = this._geometryB;
195947
196223
  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);
195948
196224
  }
195949
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
196225
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
195950
196226
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
195951
196227
  }
195952
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
196228
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
195953
196229
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
195954
196230
  }
195955
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
196231
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
195956
196232
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
195957
196233
  }
196234
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
196235
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
196236
+ }
196237
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
196238
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
196239
+ }
195958
196240
  return undefined;
195959
196241
  }
195960
196242
  /** double dispatch handler for strongly typed linestring. */
195961
196243
  handleLineString3d(lsA) {
195962
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
196244
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
195963
196245
  const lsB = this._geometryB;
195964
196246
  this.computeLineStringLineString(lsA, lsB, false);
195965
196247
  }
195966
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
196248
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
195967
196249
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195968
196250
  }
195969
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
196251
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
195970
196252
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195971
196253
  }
195972
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
196254
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
195973
196255
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
195974
196256
  }
196257
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
196258
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
196259
+ }
196260
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
196261
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
196262
+ }
195975
196263
  return undefined;
195976
196264
  }
195977
196265
  /** Double dispatch handler for strongly typed arc. */
195978
196266
  handleArc3d(arc0) {
195979
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
196267
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
195980
196268
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
195981
196269
  }
195982
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
196270
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
195983
196271
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
195984
196272
  }
195985
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
196273
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
195986
196274
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
195987
196275
  }
195988
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
196276
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
195989
196277
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
195990
196278
  }
196279
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
196280
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
196281
+ }
196282
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
196283
+ this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
196284
+ }
195991
196285
  return undefined;
195992
196286
  }
195993
196287
  /** Double dispatch handler for strongly typed bspline curve. */
195994
196288
  handleBSplineCurve3d(curve) {
195995
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
196289
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
195996
196290
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
195997
196291
  }
195998
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
196292
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
195999
196293
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
196000
196294
  }
196001
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
196295
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
196002
196296
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
196003
196297
  }
196004
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3dBase) {
196298
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
196005
196299
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
196006
196300
  }
196301
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
196302
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
196303
+ }
196304
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
196305
+ this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
196306
+ }
196007
196307
  return undefined;
196008
196308
  }
196309
+ /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
196310
+ handleCurveChainWithDistanceIndex(chain) {
196311
+ super.handleCurveChainWithDistanceIndex(chain);
196312
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
196313
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
196314
+ }
196009
196315
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
196010
196316
  handleBSplineCurve3dH(_curve) {
196011
196317
  /*
@@ -196024,11 +196330,11 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
196024
196330
  return undefined;
196025
196331
  }
196026
196332
  }
196027
- CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_10__.Vector2d.create();
196028
- CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
196029
- CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
196030
- CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
196031
- CurveCurveIntersectXYZ._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
196333
+ CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_13__.Vector2d.create();
196334
+ CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
196335
+ CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
196336
+ CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
196337
+ CurveCurveIntersectXYZ._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
196032
196338
 
196033
196339
 
196034
196340
 
@@ -196393,10 +196699,9 @@ class MultiChainCollector {
196393
196699
  captureCurve(candidate) {
196394
196700
  if (candidate instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
196395
196701
  this.captureCurvePrimitive(candidate);
196396
- else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection && candidate.children !== undefined) {
196397
- for (const c of candidate.children) {
196702
+ else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection) {
196703
+ for (const c of candidate.children)
196398
196704
  this.captureCurve(c);
196399
- }
196400
196705
  }
196401
196706
  }
196402
196707
  /** If allowed by the geometry type, move an endpoint. */
@@ -202027,9 +202332,7 @@ class CoincidentGeometryQuery {
202027
202332
  detail.point = pointA.interpolate(detail.fraction, pointB, detail.point);
202028
202333
  detail.point1 = pointA.interpolate(detail.fraction1, pointB, detail.point1);
202029
202334
  }
202030
- /** Return a curve location detail with projection of a `spacePoint` to the line segment with `pointA` and `pointB`
202031
- *
202032
- */
202335
+ /** Return a curve location detail with projection of a `spacePoint` to the line segment with `pointA` and `pointB` */
202033
202336
  projectPointToSegmentXY(spacePoint, pointA, pointB) {
202034
202337
  this._vectorU = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(pointA, pointB, this._vectorU);
202035
202338
  this._vectorV = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(pointA, spacePoint, this._vectorV);
@@ -202039,12 +202342,78 @@ class CoincidentGeometryQuery {
202039
202342
  return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(undefined, fraction, pointA.interpolate(fraction, pointB));
202040
202343
  }
202041
202344
  /**
202042
- * * project `pointA0` and `pointA1` onto the segment with `pointB0` and `pointB1`
202043
- * * In the returned detail pair, the `detailA` has fractions along segmentA, and `detailB` has fractions along segment B
202345
+ * Given a detail pair representing the projection of each of two colinear line segments onto the other,
202346
+ * clamp the details (in place) to the line segments' endpoints according to the given flags.
202347
+ * @param overlap segment overlap as returned by [[coincidentSegmentRangeXY]], modified on return
202348
+ * @param pointA0 start point of segment A
202349
+ * @param pointA1 end point of segment A
202350
+ * @param pointB0 start point of segment B
202351
+ * @param pointB1 end point of segment B
202352
+ * @param extendA0 whether to extend segment A beyond its start
202353
+ * @param extendA1 whether to extend segment A beyond its end
202354
+ * @param extendB0 whether to extend segment B beyond its start
202355
+ * @param extendB1 whether to extend segment B beyond its end
202356
+ * @return reference to the input clamped in place, or undefined (leaving interval untouched) if clamping would result in empty interval.
202357
+ */
202358
+ clampCoincidentOverlapToSegmentBounds(overlap, pointA0, pointA1, pointB0, pointB1, extendA0 = false, extendA1 = false, extendB0 = false, extendB1 = false) {
202359
+ const rangeA = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(overlap.detailA.fraction, overlap.detailA.hasFraction1 ? overlap.detailA.fraction1 : overlap.detailA.fraction);
202360
+ const rangeB = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(overlap.detailB.fraction, overlap.detailB.hasFraction1 ? overlap.detailB.fraction1 : overlap.detailB.fraction);
202361
+ const reversed = rangeA.signedDelta() < 0.0;
202362
+ const updateIntervalFromRangesAndInterpolatedPoints = () => {
202363
+ const a0 = rangeA.x0;
202364
+ const a1 = rangeA.x1;
202365
+ const b0 = rangeB.x0;
202366
+ const b1 = rangeB.x1;
202367
+ CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(overlap.detailA, a0, a1, pointA0, pointA1, a0 > a1);
202368
+ CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(overlap.detailB, b0, b1, pointB0, pointB1, b0 > b1);
202369
+ return overlap;
202370
+ };
202371
+ const haveIntervalA = rangeA.clampDirectedTo01(!extendA0, !extendA1, false);
202372
+ const haveIntervalB = rangeB.clampDirectedTo01(!extendB0, !extendB1, false);
202373
+ if (haveIntervalA && haveIntervalB) {
202374
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(rangeA.absoluteDelta(), rangeB.absoluteDelta(), _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction))
202375
+ return updateIntervalFromRangesAndInterpolatedPoints(); // intersection of partially clamped ranges
202376
+ else if (rangeA.clampDirectedTo01(true, true, false) && rangeB.clampDirectedTo01(true, true, false))
202377
+ return updateIntervalFromRangesAndInterpolatedPoints(); // intersection of fully clamped ranges
202378
+ }
202379
+ const collapseToSingleton = (pointA, pointB, atStartA, atStartB) => {
202380
+ pointA.clone(overlap.detailA.point);
202381
+ pointB.clone(overlap.detailB.point);
202382
+ overlap.detailA.fraction = atStartA ? 0.0 : 1.0;
202383
+ overlap.detailB.fraction = atStartB ? 0.0 : 1.0;
202384
+ overlap.detailA.collapseToStart();
202385
+ overlap.detailB.collapseToStart();
202386
+ return overlap;
202387
+ };
202388
+ const haveSingletonA = rangeA.clampDirectedTo01(true, true, true);
202389
+ const haveSingletonB = rangeB.clampDirectedTo01(true, true, true);
202390
+ if (haveSingletonA && haveSingletonB) { // intersection is a single point
202391
+ const point1 = overlap.detailA.point1 ?? overlap.detailA.point;
202392
+ if (reversed) {
202393
+ if (overlap.detailA.point.isAlmostEqual(pointA0, this.tolerance))
202394
+ return collapseToSingleton(pointA0, pointB0, true, true);
202395
+ else if (point1.isAlmostEqual(pointA1, this.tolerance))
202396
+ return collapseToSingleton(pointA1, pointB1, false, false);
202397
+ }
202398
+ else {
202399
+ if (point1.isAlmostEqual(pointA0, this.tolerance))
202400
+ return collapseToSingleton(pointA0, pointB1, true, false);
202401
+ else if (overlap.detailA.point.isAlmostEqual(pointA1, this.tolerance))
202402
+ return collapseToSingleton(pointA1, pointB0, false, true);
202403
+ }
202404
+ }
202405
+ return undefined; // no intersection
202406
+ }
202407
+ /**
202408
+ * Compute whether two line segments have a coincident overlap in xy.
202409
+ * * Project `pointA0` and `pointA1` onto the line formed by `pointB0` and `pointB1` and vice versa
202410
+ * * If all projection distances are sufficiently small, return a detail pair recording the coincident interval, optionally clipped to segment bounds.
202044
202411
  * @param pointA0 start point of segment A
202045
202412
  * @param pointA1 end point of segment A
202046
202413
  * @param pointB0 start point of segment B
202047
202414
  * @param pointB1 end point of segment B
202415
+ * @param restrictToBounds whether to clip the coincident segment details to the segment bounds
202416
+ * @return detail pair for the coincident interval (`detailA` has fractions along segment A, and `detailB` has fractions along segment B), or undefined if no coincidence
202048
202417
  */
202049
202418
  coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1, restrictToBounds = true) {
202050
202419
  const detailA0OnB = this.projectPointToSegmentXY(pointA0, pointB0, pointB1);
@@ -202063,46 +202432,8 @@ class CoincidentGeometryQuery {
202063
202432
  detailA0OnB.point1 = detailA1OnB.point; // capture -- detailA1OnB is not reused.
202064
202433
  detailB0OnA.fraction1 = detailB1OnA.fraction;
202065
202434
  detailB0OnA.point1 = detailB1OnA.point;
202066
- if (!restrictToBounds)
202067
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202068
- const segment = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(detailB0OnA.fraction, detailB0OnA.fraction1);
202069
- if (segment.clampDirectedTo01()) {
202070
- const f0 = segment.x0;
202071
- const f1 = segment.x1;
202072
- const h0 = detailB0OnA.inverseInterpolateFraction(f0);
202073
- const h1 = detailB0OnA.inverseInterpolateFraction(f1);
202074
- // recompute fractions and points..
202075
- CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(detailB0OnA, f0, f1, pointA0, pointA1, f0 > f1);
202076
- CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(detailA0OnB, h0, h1, pointB0, pointB1, h0 > h1);
202077
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202078
- }
202079
- else {
202080
- if (segment.signedDelta() < 0.0) {
202081
- if (detailB0OnA.point.isAlmostEqual(pointA0, this.tolerance)) {
202082
- detailB0OnA.collapseToStart();
202083
- detailA0OnB.collapseToStart();
202084
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202085
- }
202086
- if (detailB0OnA.point1.isAlmostEqual(pointA1, this.tolerance)) {
202087
- detailB0OnA.collapseToEnd();
202088
- detailA0OnB.collapseToEnd();
202089
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202090
- }
202091
- }
202092
- else {
202093
- if (detailB0OnA.point.isAlmostEqual(pointA1, this.tolerance)) {
202094
- detailB0OnA.collapseToStart();
202095
- detailA0OnB.collapseToEnd();
202096
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202097
- }
202098
- if (detailB0OnA.point1.isAlmostEqual(pointA0, this.tolerance)) {
202099
- detailB0OnA.collapseToEnd();
202100
- detailA0OnB.collapseToStart();
202101
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202102
- }
202103
- }
202104
- }
202105
- return undefined;
202435
+ const interval = _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
202436
+ return restrictToBounds ? this.clampCoincidentOverlapToSegmentBounds(interval, pointA0, pointA1, pointB0, pointB1) : interval;
202106
202437
  }
202107
202438
  /**
202108
202439
  * Create a CurveLocationDetailPair for a coincident interval of two overlapping curves
@@ -219194,24 +219525,28 @@ class Segment1d {
219194
219525
  * * On output, it is restricted to (0,1) while maintaining direction
219195
219526
  * * If the clip leaves nothing, leave this segment alone and return false.
219196
219527
  * * If the clip leaves something, update this segment and return true.
219528
+ * @param clamp0 whether to clamp the smaller number to 0. Default value is true.
219529
+ * @param clamp1 whether to clamp the larger number to 1. Default value is true.
219530
+ * @param allowSingleton whether to return true for an interval clipped to a single number (x0 === x1). Default value is false.
219531
+ * @return whether this interval was clipped
219197
219532
  */
219198
- clampDirectedTo01() {
219533
+ clampDirectedTo01(clamp0 = true, clamp1 = true, allowSingleton = false) {
219199
219534
  let x0 = this.x0;
219200
219535
  let x1 = this.x1;
219201
219536
  if (x1 > x0) {
219202
- if (x0 < 0)
219537
+ if (x0 < 0 && clamp0)
219203
219538
  x0 = 0;
219204
- if (x1 > 1)
219539
+ if (x1 > 1 && clamp1)
219205
219540
  x1 = 1;
219206
- if (x0 >= x1)
219541
+ if (x0 > x1 || (x0 === x1 && !allowSingleton))
219207
219542
  return false;
219208
219543
  }
219209
219544
  else {
219210
- if (x0 > 1)
219545
+ if (x0 > 1 && clamp1)
219211
219546
  x0 = 1;
219212
- if (x1 < 0)
219547
+ if (x1 < 0 && clamp0)
219213
219548
  x1 = 0;
219214
- if (x0 <= x1)
219549
+ if (x0 < x1 || (x0 === x1 && !allowSingleton))
219215
219550
  return false;
219216
219551
  }
219217
219552
  this.set(x0, x1);
@@ -222599,7 +222934,7 @@ class Point4d extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__.Plane3d {
222599
222934
  return undefined;
222600
222935
  }
222601
222936
  /**
222602
- * * Return xyz projection of spacePoint to the plane of the DPoint4d (understood as coefficients, not point coordinates)
222937
+ * * Return xyz projection of spacePoint to the plane (this Point4d is understood as plane coefficients, not point coordinates)
222603
222938
  * * If the xyz part of `this` are all zero, (a clone of) `spacePoint` is returned.
222604
222939
  */
222605
222940
  projectPointToPlane(spacePoint, result) {
@@ -223119,14 +223454,15 @@ class BezierCoffs {
223119
223454
  for (let i = 0; i < this.coffs.length; i++)
223120
223455
  this.coffs[i] += a;
223121
223456
  }
223122
- /** Compute parameter values where the bezier value matches _targetValue.
223457
+ /** Compute parameter values where the bezier value matches targetValue.
223123
223458
  * * The base class finds roots only in 01. (i.e. ignores _restrictTo01)
223124
- * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
223459
+ * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
223125
223460
  */
223126
223461
  roots(targetValue, _restrictTo01) {
223127
223462
  const bezier = UnivariateBezier.create(this);
223128
223463
  bezier.addInPlace(-targetValue);
223129
- return UnivariateBezier.deflateRoots01(bezier);
223464
+ const roots = UnivariateBezier.deflateRoots(bezier);
223465
+ return this.filter01(roots, true);
223130
223466
  }
223131
223467
  /** Given an array of numbers, optionally remove those not in the 0..1 interval.
223132
223468
  * @param roots candidate values
@@ -223154,7 +223490,9 @@ class BezierCoffs {
223154
223490
  return undefined;
223155
223491
  }
223156
223492
  /** zero out all coefficients. */
223157
- zero() { this.coffs.fill(0); }
223493
+ zero() {
223494
+ this.coffs.fill(0);
223495
+ }
223158
223496
  /** Subdivide -- write results into caller-supplied bezier coffs (which must be of the same order) */
223159
223497
  subdivide(u, left, right) {
223160
223498
  const order = this.order;
@@ -223677,11 +224015,10 @@ class UnivariateBezier extends BezierCoffs {
223677
224015
  // first c0*b0 = a0
223678
224016
  // last c[orderC-1]*b1 = a[orderA-1]
223679
224017
  /** Find roots of a bezier polynomial
223680
- * * Only look for roots in 0..1
223681
224018
  * * As roots are found, deflate the polynomial.
223682
224019
  * * bezier coffs are changed (and order reduced) at each step.
223683
224020
  */
223684
- static deflateRoots01(bezier) {
224021
+ static deflateRoots(bezier) {
223685
224022
  const roots = [];
223686
224023
  const coffs = bezier.coffs;
223687
224024
  let a0, a1, segmentFraction, globalStartFraction, newtonFraction;
@@ -233260,7 +233597,7 @@ class PolyfaceClip {
233260
233597
  * * This method computes the portion of the input mesh that lies inside the clipper generated from sweeping the input region in the given direction.
233261
233598
  * @param mesh input mesh, untouched
233262
233599
  * @param region planar region to drape onto mesh
233263
- * @param sweepVector optional sweep direction for region; if undefined, region normal is used
233600
+ * @param sweepVector optional sweep direction for region, magnitude unused. If undefined, sweep is along the region normal.
233264
233601
  * @param options how to stroke the region boundary
233265
233602
  * @returns clipped facets. No other mesh data but vertices appear in output.
233266
233603
  */
@@ -233270,10 +233607,13 @@ class PolyfaceClip {
233270
233607
  const contour = _solid_SweepContour__WEBPACK_IMPORTED_MODULE_15__.SweepContour.createForLinearSweep(region);
233271
233608
  if (!contour)
233272
233609
  return undefined;
233273
- const clipper = contour.sweepToUnionOfConvexClipPlaneSets(sweepVector, false, false, options);
233610
+ let sweep = sweepVector;
233611
+ if (sweepVector && contour.localToWorld.matrix.dotColumnZ(sweepVector) < 0.0)
233612
+ sweep = sweepVector.scale(-1); // avoid inverted clipper
233613
+ const clipper = contour.sweepToUnionOfConvexClipPlaneSets(sweep, false, false, options);
233274
233614
  if (!clipper)
233275
233615
  return undefined;
233276
- const builders = ClippedPolyfaceBuilders.create(true);
233616
+ const builders = ClippedPolyfaceBuilders.create(true); // we want only the facets inside the clipper
233277
233617
  this.clipPolyfaceUnionOfConvexClipPlaneSetsToBuilders(mesh, clipper, builders, 1);
233278
233618
  return builders.claimPolyface(0, true);
233279
233619
  }
@@ -234124,7 +234464,7 @@ class PolyfaceQuery {
234124
234464
  return result;
234125
234465
  }
234126
234466
  /** Return the sum of all facet areas.
234127
- * @param vectorToEye compute facet area projected to a view plane perpendicular to this vector
234467
+ * @param vectorToEye compute sum of *signed* facet areas projected to a view plane perpendicular to this vector
234128
234468
  */
234129
234469
  static sumFacetAreas(source, vectorToEye) {
234130
234470
  let s = 0;
@@ -250839,9 +251179,11 @@ class SweepContour {
250839
251179
  }
250840
251180
  /**
250841
251181
  * Create a UnionOfConvexClipPlaneSets that clips to the swept faceted contour region.
250842
- * @param sweepVector the sweep direction (does not have to be perpendicular to the contour). If undefined, the sweep direction is perpendicular to the plane of the contour, and no caps are constructed.
251182
+ * @param sweepVector the sweep direction and distance:
251183
+ * * If undefined, the sweep direction is along the contour normal and no caps are constructed (the sweep is infinite in both directions).
251184
+ * * If defined, the returned clipper is inverted if and only if sweepVector is in the opposite half-space as the computed contour normal.
250843
251185
  * @param cap0 construct a clip plane equal to the contour plane. Note that `sweepVector` must be defined.
250844
- * @param cap1 construct a clip plane parallel to the contour plane at the end of `sweepVector`. That is, sweepVector indicates both direction and distance.
251186
+ * @param cap1 construct a clip plane parallel to the contour plane at the end of `sweepVector`.
250845
251187
  * @param options how to stroke the contour
250846
251188
  * @returns clipper defined by faceting then sweeping the contour region
250847
251189
  */
@@ -277599,7 +277941,7 @@ const chai_1 = __webpack_require__(/*! chai */ "../../common/temp/node_modules/.
277599
277941
  const core_frontend_1 = __webpack_require__(/*! @itwin/core-frontend */ "../../core/frontend/lib/esm/core-frontend.js");
277600
277942
  const imodels_client_management_1 = __webpack_require__(/*! @itwin/imodels-client-management */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-client-management@3.1.0/node_modules/@itwin/imodels-client-management/lib/esm/index.js");
277601
277943
  const itwins_client_1 = __webpack_require__(/*! @itwin/itwins-client */ "../../common/temp/node_modules/.pnpm/@itwin+itwins-client@1.2.0/node_modules/@itwin/itwins-client/lib/esm/itwins-client.js");
277602
- const imodels_access_frontend_1 = __webpack_require__(/*! @itwin/imodels-access-frontend */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js");
277944
+ const imodels_access_frontend_1 = __webpack_require__(/*! @itwin/imodels-access-frontend */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js");
277603
277945
  class IModelSession {
277604
277946
  constructor(iModelId, iTwinId, changesetId) {
277605
277947
  this.iTwinId = iTwinId;
@@ -277691,7 +278033,7 @@ const Settings_1 = __webpack_require__(/*! ../../common/Settings */ "./lib/commo
277691
278033
  const SideChannels_1 = __webpack_require__(/*! ../../common/SideChannels */ "./lib/common/SideChannels.js");
277692
278034
  const IModelSession_1 = __webpack_require__(/*! ./IModelSession */ "./lib/frontend/setup/IModelSession.js");
277693
278035
  const core_common_1 = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
277694
- const imodels_access_frontend_1 = __webpack_require__(/*! @itwin/imodels-access-frontend */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.0_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js");
278036
+ const imodels_access_frontend_1 = __webpack_require__(/*! @itwin/imodels-access-frontend */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-access-frontend@3.1.1_ueafa4slb6ohrhyf7kbp6egmha/node_modules/@itwin/imodels-access-frontend/lib/esm/index.js");
277695
278037
  const imodels_client_management_1 = __webpack_require__(/*! @itwin/imodels-client-management */ "../../common/temp/node_modules/.pnpm/@itwin+imodels-client-management@3.1.0/node_modules/@itwin/imodels-client-management/lib/esm/index.js");
277696
278038
  class TestContext {
277697
278039
  constructor(env) {
@@ -282734,7 +283076,7 @@ var WidgetState;
282734
283076
 
282735
283077
  /***/ }),
282736
283078
 
282737
- /***/ "?1120":
283079
+ /***/ "?088e":
282738
283080
  /*!**********************!*\
282739
283081
  !*** util (ignored) ***!
282740
283082
  \**********************/
@@ -284376,9 +284718,9 @@ const gBase64 = {
284376
284718
 
284377
284719
  /***/ }),
284378
284720
 
284379
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
284721
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
284380
284722
  /*!******************************************************************************************************************************!*\
284381
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
284723
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
284382
284724
  \******************************************************************************************************************************/
284383
284725
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284384
284726
 
@@ -284395,9 +284737,9 @@ function _arrayLikeToArray(arr, len) {
284395
284737
 
284396
284738
  /***/ }),
284397
284739
 
284398
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
284740
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
284399
284741
  /*!****************************************************************************************************************************!*\
284400
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
284742
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
284401
284743
  \****************************************************************************************************************************/
284402
284744
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284403
284745
 
@@ -284412,9 +284754,9 @@ function _arrayWithHoles(arr) {
284412
284754
 
284413
284755
  /***/ }),
284414
284756
 
284415
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
284757
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
284416
284758
  /*!***********************************************************************************************************************************!*\
284417
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
284759
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
284418
284760
  \***********************************************************************************************************************************/
284419
284761
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284420
284762
 
@@ -284432,9 +284774,9 @@ function _assertThisInitialized(self) {
284432
284774
 
284433
284775
  /***/ }),
284434
284776
 
284435
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
284777
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
284436
284778
  /*!****************************************************************************************************************************!*\
284437
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
284779
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
284438
284780
  \****************************************************************************************************************************/
284439
284781
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284440
284782
 
@@ -284451,9 +284793,9 @@ function _classCallCheck(instance, Constructor) {
284451
284793
 
284452
284794
  /***/ }),
284453
284795
 
284454
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js":
284796
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js":
284455
284797
  /*!*************************************************************************************************************************!*\
284456
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
284798
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
284457
284799
  \*************************************************************************************************************************/
284458
284800
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284459
284801
 
@@ -284462,7 +284804,7 @@ __webpack_require__.r(__webpack_exports__);
284462
284804
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284463
284805
  /* harmony export */ "default": () => (/* binding */ _createClass)
284464
284806
  /* harmony export */ });
284465
- /* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
284807
+ /* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
284466
284808
 
284467
284809
  function _defineProperties(target, props) {
284468
284810
  for (var i = 0; i < props.length; i++) {
@@ -284484,9 +284826,9 @@ function _createClass(Constructor, protoProps, staticProps) {
284484
284826
 
284485
284827
  /***/ }),
284486
284828
 
284487
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
284829
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
284488
284830
  /*!****************************************************************************************************************************!*\
284489
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
284831
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
284490
284832
  \****************************************************************************************************************************/
284491
284833
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284492
284834
 
@@ -284495,7 +284837,7 @@ __webpack_require__.r(__webpack_exports__);
284495
284837
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284496
284838
  /* harmony export */ "default": () => (/* binding */ _defineProperty)
284497
284839
  /* harmony export */ });
284498
- /* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
284840
+ /* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
284499
284841
 
284500
284842
  function _defineProperty(obj, key, value) {
284501
284843
  key = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(key);
@@ -284514,9 +284856,9 @@ function _defineProperty(obj, key, value) {
284514
284856
 
284515
284857
  /***/ }),
284516
284858
 
284517
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
284859
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
284518
284860
  /*!****************************************************************************************************************************!*\
284519
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
284861
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
284520
284862
  \****************************************************************************************************************************/
284521
284863
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284522
284864
 
@@ -284534,9 +284876,9 @@ function _getPrototypeOf(o) {
284534
284876
 
284535
284877
  /***/ }),
284536
284878
 
284537
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/inherits.js":
284879
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/inherits.js":
284538
284880
  /*!**********************************************************************************************************************!*\
284539
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
284881
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
284540
284882
  \**********************************************************************************************************************/
284541
284883
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284542
284884
 
@@ -284545,7 +284887,7 @@ __webpack_require__.r(__webpack_exports__);
284545
284887
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284546
284888
  /* harmony export */ "default": () => (/* binding */ _inherits)
284547
284889
  /* harmony export */ });
284548
- /* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
284890
+ /* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
284549
284891
 
284550
284892
  function _inherits(subClass, superClass) {
284551
284893
  if (typeof superClass !== "function" && superClass !== null) {
@@ -284566,9 +284908,9 @@ function _inherits(subClass, superClass) {
284566
284908
 
284567
284909
  /***/ }),
284568
284910
 
284569
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
284911
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
284570
284912
  /*!*****************************************************************************************************************************!*\
284571
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
284913
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
284572
284914
  \*****************************************************************************************************************************/
284573
284915
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284574
284916
 
@@ -284583,9 +284925,9 @@ function _iterableToArray(iter) {
284583
284925
 
284584
284926
  /***/ }),
284585
284927
 
284586
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
284928
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
284587
284929
  /*!*****************************************************************************************************************************!*\
284588
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
284930
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
284589
284931
  \*****************************************************************************************************************************/
284590
284932
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284591
284933
 
@@ -284600,9 +284942,9 @@ function _nonIterableRest() {
284600
284942
 
284601
284943
  /***/ }),
284602
284944
 
284603
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
284945
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
284604
284946
  /*!***************************************************************************************************************************************!*\
284605
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
284947
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
284606
284948
  \***************************************************************************************************************************************/
284607
284949
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284608
284950
 
@@ -284611,8 +284953,8 @@ __webpack_require__.r(__webpack_exports__);
284611
284953
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284612
284954
  /* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn)
284613
284955
  /* harmony export */ });
284614
- /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js");
284615
- /* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
284956
+ /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js");
284957
+ /* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
284616
284958
 
284617
284959
 
284618
284960
  function _possibleConstructorReturn(self, call) {
@@ -284626,9 +284968,9 @@ function _possibleConstructorReturn(self, call) {
284626
284968
 
284627
284969
  /***/ }),
284628
284970
 
284629
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
284971
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
284630
284972
  /*!****************************************************************************************************************************!*\
284631
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
284973
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
284632
284974
  \****************************************************************************************************************************/
284633
284975
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284634
284976
 
@@ -284647,9 +284989,9 @@ function _setPrototypeOf(o, p) {
284647
284989
 
284648
284990
  /***/ }),
284649
284991
 
284650
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toArray.js":
284992
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toArray.js":
284651
284993
  /*!*********************************************************************************************************************!*\
284652
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
284994
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
284653
284995
  \*********************************************************************************************************************/
284654
284996
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284655
284997
 
@@ -284658,10 +285000,10 @@ __webpack_require__.r(__webpack_exports__);
284658
285000
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284659
285001
  /* harmony export */ "default": () => (/* binding */ _toArray)
284660
285002
  /* harmony export */ });
284661
- /* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
284662
- /* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
284663
- /* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
284664
- /* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
285003
+ /* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
285004
+ /* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
285005
+ /* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
285006
+ /* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
284665
285007
 
284666
285008
 
284667
285009
 
@@ -284672,9 +285014,9 @@ function _toArray(arr) {
284672
285014
 
284673
285015
  /***/ }),
284674
285016
 
284675
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
285017
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
284676
285018
  /*!*************************************************************************************************************************!*\
284677
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
285019
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
284678
285020
  \*************************************************************************************************************************/
284679
285021
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284680
285022
 
@@ -284683,7 +285025,7 @@ __webpack_require__.r(__webpack_exports__);
284683
285025
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284684
285026
  /* harmony export */ "default": () => (/* binding */ _toPrimitive)
284685
285027
  /* harmony export */ });
284686
- /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js");
285028
+ /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js");
284687
285029
 
284688
285030
  function _toPrimitive(input, hint) {
284689
285031
  if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input) !== "object" || input === null) return input;
@@ -284698,9 +285040,9 @@ function _toPrimitive(input, hint) {
284698
285040
 
284699
285041
  /***/ }),
284700
285042
 
284701
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
285043
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
284702
285044
  /*!***************************************************************************************************************************!*\
284703
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
285045
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
284704
285046
  \***************************************************************************************************************************/
284705
285047
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284706
285048
 
@@ -284709,8 +285051,8 @@ __webpack_require__.r(__webpack_exports__);
284709
285051
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284710
285052
  /* harmony export */ "default": () => (/* binding */ _toPropertyKey)
284711
285053
  /* harmony export */ });
284712
- /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js");
284713
- /* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js");
285054
+ /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js");
285055
+ /* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js");
284714
285056
 
284715
285057
 
284716
285058
  function _toPropertyKey(arg) {
@@ -284720,9 +285062,9 @@ function _toPropertyKey(arg) {
284720
285062
 
284721
285063
  /***/ }),
284722
285064
 
284723
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js":
285065
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js":
284724
285066
  /*!********************************************************************************************************************!*\
284725
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
285067
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
284726
285068
  \********************************************************************************************************************/
284727
285069
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284728
285070
 
@@ -284731,21 +285073,21 @@ __webpack_require__.r(__webpack_exports__);
284731
285073
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284732
285074
  /* harmony export */ "default": () => (/* binding */ _typeof)
284733
285075
  /* harmony export */ });
284734
- function _typeof(obj) {
285076
+ function _typeof(o) {
284735
285077
  "@babel/helpers - typeof";
284736
285078
 
284737
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
284738
- return typeof obj;
284739
- } : function (obj) {
284740
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
284741
- }, _typeof(obj);
285079
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
285080
+ return typeof o;
285081
+ } : function (o) {
285082
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
285083
+ }, _typeof(o);
284742
285084
  }
284743
285085
 
284744
285086
  /***/ }),
284745
285087
 
284746
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
285088
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
284747
285089
  /*!****************************************************************************************************************************************!*\
284748
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
285090
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
284749
285091
  \****************************************************************************************************************************************/
284750
285092
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
284751
285093
 
@@ -284754,7 +285096,7 @@ __webpack_require__.r(__webpack_exports__);
284754
285096
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
284755
285097
  /* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray)
284756
285098
  /* harmony export */ });
284757
- /* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
285099
+ /* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
284758
285100
 
284759
285101
  function _unsupportedIterableToArray(o, minLen) {
284760
285102
  if (!o) return;
@@ -285188,15 +285530,15 @@ __webpack_require__.r(__webpack_exports__);
285188
285530
  /* harmony export */ t: () => (/* binding */ t),
285189
285531
  /* harmony export */ use: () => (/* binding */ use)
285190
285532
  /* harmony export */ });
285191
- /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js");
285192
- /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
285193
- /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js");
285194
- /* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
285195
- /* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/inherits.js");
285196
- /* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js");
285197
- /* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js");
285198
- /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
285199
- /* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toArray.js");
285533
+ /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js");
285534
+ /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
285535
+ /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js");
285536
+ /* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
285537
+ /* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/inherits.js");
285538
+ /* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js");
285539
+ /* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js");
285540
+ /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
285541
+ /* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toArray.js");
285200
285542
 
285201
285543
 
285202
285544
 
@@ -288076,7 +288418,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
288076
288418
  /***/ ((module) => {
288077
288419
 
288078
288420
  "use strict";
288079
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.0","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.0","@itwin/core-bentley":"workspace:^4.3.0-dev.0","@itwin/core-common":"workspace:^4.3.0-dev.0","@itwin/core-geometry":"workspace:^4.3.0-dev.0","@itwin/core-orbitgt":"workspace:^4.3.0-dev.0","@itwin/core-quantity":"workspace:^4.3.0-dev.0"},"//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","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"}}');
288421
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.10","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.10","@itwin/core-bentley":"workspace:^4.3.0-dev.10","@itwin/core-common":"workspace:^4.3.0-dev.10","@itwin/core-geometry":"workspace:^4.3.0-dev.10","@itwin/core-orbitgt":"workspace:^4.3.0-dev.10","@itwin/core-quantity":"workspace:^4.3.0-dev.10"},"//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"}}');
288080
288422
 
288081
288423
  /***/ })
288082
288424