@itwin/rpcinterface-full-stack-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) {
@@ -9891,7 +9891,7 @@ function BufferBigIntNotDefined () {
9891
9891
  "use strict";
9892
9892
 
9893
9893
  /* eslint-disable no-invalid-this */
9894
- let checkError = __webpack_require__(/*! check-error */ "../../common/temp/node_modules/.pnpm/check-error@1.0.2/node_modules/check-error/index.js");
9894
+ let checkError = __webpack_require__(/*! check-error */ "../../common/temp/node_modules/.pnpm/check-error@1.0.3/node_modules/check-error/index.js");
9895
9895
 
9896
9896
  module.exports = (chai, utils) => {
9897
9897
  const Assertion = chai.Assertion;
@@ -18939,7 +18939,7 @@ exports.getOperator = __webpack_require__(/*! ./getOperator */ "../../common/tem
18939
18939
  // https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js
18940
18940
 
18941
18941
  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");
18942
- var loupe = __webpack_require__(/*! loupe */ "../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js");
18942
+ var loupe = __webpack_require__(/*! loupe */ "../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js");
18943
18943
  var config = __webpack_require__(/*! ../config */ "../../common/temp/node_modules/.pnpm/chai@4.3.10/node_modules/chai/lib/chai/config.js");
18944
18944
 
18945
18945
  module.exports = inspect;
@@ -19634,189 +19634,6 @@ module.exports = function transferFlags(assertion, object, includeAll) {
19634
19634
  };
19635
19635
 
19636
19636
 
19637
- /***/ }),
19638
-
19639
- /***/ "../../common/temp/node_modules/.pnpm/check-error@1.0.2/node_modules/check-error/index.js":
19640
- /*!************************************************************************************************!*\
19641
- !*** ../../common/temp/node_modules/.pnpm/check-error@1.0.2/node_modules/check-error/index.js ***!
19642
- \************************************************************************************************/
19643
- /***/ ((module) => {
19644
-
19645
- "use strict";
19646
-
19647
-
19648
- /* !
19649
- * Chai - checkError utility
19650
- * Copyright(c) 2012-2016 Jake Luer <jake@alogicalparadox.com>
19651
- * MIT Licensed
19652
- */
19653
-
19654
- /**
19655
- * ### .checkError
19656
- *
19657
- * Checks that an error conforms to a given set of criteria and/or retrieves information about it.
19658
- *
19659
- * @api public
19660
- */
19661
-
19662
- /**
19663
- * ### .compatibleInstance(thrown, errorLike)
19664
- *
19665
- * Checks if two instances are compatible (strict equal).
19666
- * Returns false if errorLike is not an instance of Error, because instances
19667
- * can only be compatible if they're both error instances.
19668
- *
19669
- * @name compatibleInstance
19670
- * @param {Error} thrown error
19671
- * @param {Error|ErrorConstructor} errorLike object to compare against
19672
- * @namespace Utils
19673
- * @api public
19674
- */
19675
-
19676
- function compatibleInstance(thrown, errorLike) {
19677
- return errorLike instanceof Error && thrown === errorLike;
19678
- }
19679
-
19680
- /**
19681
- * ### .compatibleConstructor(thrown, errorLike)
19682
- *
19683
- * Checks if two constructors are compatible.
19684
- * This function can receive either an error constructor or
19685
- * an error instance as the `errorLike` argument.
19686
- * Constructors are compatible if they're the same or if one is
19687
- * an instance of another.
19688
- *
19689
- * @name compatibleConstructor
19690
- * @param {Error} thrown error
19691
- * @param {Error|ErrorConstructor} errorLike object to compare against
19692
- * @namespace Utils
19693
- * @api public
19694
- */
19695
-
19696
- function compatibleConstructor(thrown, errorLike) {
19697
- if (errorLike instanceof Error) {
19698
- // If `errorLike` is an instance of any error we compare their constructors
19699
- return thrown.constructor === errorLike.constructor || thrown instanceof errorLike.constructor;
19700
- } else if (errorLike.prototype instanceof Error || errorLike === Error) {
19701
- // If `errorLike` is a constructor that inherits from Error, we compare `thrown` to `errorLike` directly
19702
- return thrown.constructor === errorLike || thrown instanceof errorLike;
19703
- }
19704
-
19705
- return false;
19706
- }
19707
-
19708
- /**
19709
- * ### .compatibleMessage(thrown, errMatcher)
19710
- *
19711
- * Checks if an error's message is compatible with a matcher (String or RegExp).
19712
- * If the message contains the String or passes the RegExp test,
19713
- * it is considered compatible.
19714
- *
19715
- * @name compatibleMessage
19716
- * @param {Error} thrown error
19717
- * @param {String|RegExp} errMatcher to look for into the message
19718
- * @namespace Utils
19719
- * @api public
19720
- */
19721
-
19722
- function compatibleMessage(thrown, errMatcher) {
19723
- var comparisonString = typeof thrown === 'string' ? thrown : thrown.message;
19724
- if (errMatcher instanceof RegExp) {
19725
- return errMatcher.test(comparisonString);
19726
- } else if (typeof errMatcher === 'string') {
19727
- return comparisonString.indexOf(errMatcher) !== -1; // eslint-disable-line no-magic-numbers
19728
- }
19729
-
19730
- return false;
19731
- }
19732
-
19733
- /**
19734
- * ### .getFunctionName(constructorFn)
19735
- *
19736
- * Returns the name of a function.
19737
- * This also includes a polyfill function if `constructorFn.name` is not defined.
19738
- *
19739
- * @name getFunctionName
19740
- * @param {Function} constructorFn
19741
- * @namespace Utils
19742
- * @api private
19743
- */
19744
-
19745
- var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\(\/]+)/;
19746
- function getFunctionName(constructorFn) {
19747
- var name = '';
19748
- if (typeof constructorFn.name === 'undefined') {
19749
- // Here we run a polyfill if constructorFn.name is not defined
19750
- var match = String(constructorFn).match(functionNameMatch);
19751
- if (match) {
19752
- name = match[1];
19753
- }
19754
- } else {
19755
- name = constructorFn.name;
19756
- }
19757
-
19758
- return name;
19759
- }
19760
-
19761
- /**
19762
- * ### .getConstructorName(errorLike)
19763
- *
19764
- * Gets the constructor name for an Error instance or constructor itself.
19765
- *
19766
- * @name getConstructorName
19767
- * @param {Error|ErrorConstructor} errorLike
19768
- * @namespace Utils
19769
- * @api public
19770
- */
19771
-
19772
- function getConstructorName(errorLike) {
19773
- var constructorName = errorLike;
19774
- if (errorLike instanceof Error) {
19775
- constructorName = getFunctionName(errorLike.constructor);
19776
- } else if (typeof errorLike === 'function') {
19777
- // If `err` is not an instance of Error it is an error constructor itself or another function.
19778
- // If we've got a common function we get its name, otherwise we may need to create a new instance
19779
- // of the error just in case it's a poorly-constructed error. Please see chaijs/chai/issues/45 to know more.
19780
- constructorName = getFunctionName(errorLike).trim() ||
19781
- getFunctionName(new errorLike()); // eslint-disable-line new-cap
19782
- }
19783
-
19784
- return constructorName;
19785
- }
19786
-
19787
- /**
19788
- * ### .getMessage(errorLike)
19789
- *
19790
- * Gets the error message from an error.
19791
- * If `err` is a String itself, we return it.
19792
- * If the error has no message, we return an empty string.
19793
- *
19794
- * @name getMessage
19795
- * @param {Error|String} errorLike
19796
- * @namespace Utils
19797
- * @api public
19798
- */
19799
-
19800
- function getMessage(errorLike) {
19801
- var msg = '';
19802
- if (errorLike && errorLike.message) {
19803
- msg = errorLike.message;
19804
- } else if (typeof errorLike === 'string') {
19805
- msg = errorLike;
19806
- }
19807
-
19808
- return msg;
19809
- }
19810
-
19811
- module.exports = {
19812
- compatibleInstance: compatibleInstance,
19813
- compatibleConstructor: compatibleConstructor,
19814
- compatibleMessage: compatibleMessage,
19815
- getMessage: getMessage,
19816
- getConstructorName: getConstructorName,
19817
- };
19818
-
19819
-
19820
19637
  /***/ }),
19821
19638
 
19822
19639
  /***/ "../../common/temp/node_modules/.pnpm/check-error@1.0.3/node_modules/check-error/index.js":
@@ -21138,8 +20955,8 @@ __webpack_require__.r(__webpack_exports__);
21138
20955
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21139
20956
  /* harmony export */ "default": () => (/* binding */ Browser)
21140
20957
  /* harmony export */ });
21141
- /* 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");
21142
- /* 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");
20958
+ /* 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");
20959
+ /* 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");
21143
20960
 
21144
20961
 
21145
20962
 
@@ -21654,9 +21471,9 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
21654
21471
 
21655
21472
  /***/ }),
21656
21473
 
21657
- /***/ "../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js":
21474
+ /***/ "../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js":
21658
21475
  /*!************************************************************************************!*\
21659
- !*** ../../common/temp/node_modules/.pnpm/loupe@2.3.6/node_modules/loupe/loupe.js ***!
21476
+ !*** ../../common/temp/node_modules/.pnpm/loupe@2.3.7/node_modules/loupe/loupe.js ***!
21660
21477
  \************************************************************************************/
21661
21478
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
21662
21479
 
@@ -21970,6 +21787,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
21970
21787
 
21971
21788
  var toString = Function.prototype.toString;
21972
21789
  var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/;
21790
+ var maxFunctionSourceLength = 512;
21973
21791
  function getFuncName(aFunc) {
21974
21792
  if (typeof aFunc !== 'function') {
21975
21793
  return null;
@@ -21977,8 +21795,15 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
21977
21795
 
21978
21796
  var name = '';
21979
21797
  if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') {
21798
+ // eslint-disable-next-line prefer-reflect
21799
+ var functionSource = toString.call(aFunc);
21800
+ // To avoid unconstrained resource consumption due to pathalogically large function names,
21801
+ // we limit the available return value to be less than 512 characters.
21802
+ if (functionSource.indexOf('(') > maxFunctionSourceLength) {
21803
+ return name;
21804
+ }
21980
21805
  // Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined
21981
- var match = toString.call(aFunc).match(functionNameMatch);
21806
+ var match = functionSource.match(functionNameMatch);
21982
21807
  if (match) {
21983
21808
  name = match[1];
21984
21809
  }
@@ -22338,7 +22163,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22338
22163
 
22339
22164
  try {
22340
22165
  // eslint-disable-next-line global-require
22341
- var nodeUtil = __webpack_require__(/*! util */ "?1120");
22166
+ var nodeUtil = __webpack_require__(/*! util */ "?088e");
22342
22167
 
22343
22168
  nodeInspect = nodeUtil.inspect ? nodeUtil.inspect.custom : false;
22344
22169
  } catch (noNodeInspect) {
@@ -32756,6 +32581,7 @@ __webpack_require__.r(__webpack_exports__);
32756
32581
  /* harmony export */ DbValueFormat: () => (/* binding */ DbValueFormat),
32757
32582
  /* harmony export */ QueryBinder: () => (/* binding */ QueryBinder),
32758
32583
  /* harmony export */ QueryOptionsBuilder: () => (/* binding */ QueryOptionsBuilder),
32584
+ /* harmony export */ QueryParamType: () => (/* binding */ QueryParamType),
32759
32585
  /* harmony export */ QueryRowFormat: () => (/* binding */ QueryRowFormat)
32760
32586
  /* harmony export */ });
32761
32587
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
@@ -33010,11 +32836,10 @@ class QueryBinder {
33010
32836
  if (typeof indexOrName === "number") {
33011
32837
  if (indexOrName < 1)
33012
32838
  throw new Error("expect index to be >= 1");
32839
+ return;
33013
32840
  }
33014
- if (typeof indexOrName === "string") {
33015
- if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
33016
- throw new Error("expect named parameter to meet identifier specification");
33017
- }
32841
+ if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
32842
+ throw new Error("expect named parameter to meet identifier specification");
33018
32843
  }
33019
32844
  }
33020
32845
  /**
@@ -33245,12 +33070,12 @@ class QueryBinder {
33245
33070
  else if (val instanceof Array && val.length > 0 && typeof val[0] === "string" && _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.isValidId64(val[0])) {
33246
33071
  params.bindIdSet(nameOrId, val);
33247
33072
  }
33248
- else if (typeof val === "object" && !Array.isArray(val)) {
33249
- params.bindStruct(nameOrId, val);
33250
- }
33251
33073
  else if (typeof val === "undefined" || val === null) {
33252
33074
  params.bindNull(nameOrId);
33253
33075
  }
33076
+ else if (typeof val === "object" && !Array.isArray(val)) {
33077
+ params.bindStruct(nameOrId, val);
33078
+ }
33254
33079
  else {
33255
33080
  throw new Error("unsupported type");
33256
33081
  }
@@ -47346,6 +47171,7 @@ __webpack_require__.r(__webpack_exports__);
47346
47171
  /* harmony export */ Quantization: () => (/* reexport safe */ _QPoint__WEBPACK_IMPORTED_MODULE_86__.Quantization),
47347
47172
  /* harmony export */ QueryBinder: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryBinder),
47348
47173
  /* harmony export */ QueryOptionsBuilder: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryOptionsBuilder),
47174
+ /* harmony export */ QueryParamType: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryParamType),
47349
47175
  /* harmony export */ QueryRowFormat: () => (/* reexport safe */ _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_80__.QueryRowFormat),
47350
47176
  /* harmony export */ REGISTRY: () => (/* reexport safe */ _rpc_core_RpcRegistry__WEBPACK_IMPORTED_MODULE_122__.REGISTRY),
47351
47177
  /* harmony export */ Rank: () => (/* reexport safe */ _ElementProps__WEBPACK_IMPORTED_MODULE_24__.Rank),
@@ -76822,6 +76648,34 @@ class BackgroundMapGeometry {
76822
76648
  });
76823
76649
  return Promise.all(promises);
76824
76650
  }
76651
+ async cartographicToDbFromWgs84Gcs(cartographic) {
76652
+ let db;
76653
+ if (this.globeMode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.GlobeMode.Plane) {
76654
+ const fraction = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(0, 0);
76655
+ db = cartographic.map((p) => {
76656
+ this._mercatorTilingScheme.cartographicToFraction(p.latitude, p.longitude, fraction);
76657
+ return this._mercatorFractionToDb.multiplyXYZ(fraction.x, fraction.y, p.height);
76658
+ });
76659
+ }
76660
+ else {
76661
+ db = cartographic.map((p) => this._ecefToDb.multiplyPoint3d(p.toEcef()));
76662
+ }
76663
+ if (this._iModel.noGcsDefined)
76664
+ return db;
76665
+ const toReprojectCoords = [];
76666
+ const toReprojectIdx = [];
76667
+ db.forEach(async (p, i) => {
76668
+ if (this.cartesianRange.containsPoint(p)) {
76669
+ toReprojectCoords.push({ x: cartographic[i].longitudeDegrees, y: cartographic[i].latitudeDegrees, z: cartographic[i].height });
76670
+ toReprojectIdx.push(i);
76671
+ }
76672
+ });
76673
+ const spatialPoints = await this._iModel.toSpatialFromGcs(toReprojectCoords, { horizontalCRS: { epsg: 4326 }, verticalCRS: { id: "ELLIPSOID" } });
76674
+ return db.map((p, i) => {
76675
+ const reprojectedIdx = toReprojectIdx.findIndex((value) => value === i);
76676
+ return (reprojectedIdx === -1 ? p : spatialPoints[reprojectedIdx]);
76677
+ });
76678
+ }
76825
76679
  cartographicToDb(cartographic, result) {
76826
76680
  if (this.globeMode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.GlobeMode.Plane) {
76827
76681
  const fraction = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(0, 0);
@@ -87514,7 +87368,7 @@ class RealityDataSourceTilesetUrlImpl {
87514
87368
  return (0,_request_Request__WEBPACK_IMPORTED_MODULE_2__.request)(tileUrl, "json");
87515
87369
  }
87516
87370
  getTileContentType(url) {
87517
- return url.endsWith("json") ? "tileset" : "tile";
87371
+ return new URL(url, "https://localhost/").pathname.toLowerCase().endsWith("json") ? "tileset" : "tile";
87518
87372
  }
87519
87373
  /**
87520
87374
  * Gets spatial location and extents of this reality data source
@@ -98303,7 +98157,7 @@ class GltfParser {
98303
98157
  if (dracoMeshes.length === 0)
98304
98158
  return;
98305
98159
  try {
98306
- 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;
98160
+ 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;
98307
98161
  await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
98308
98162
  }
98309
98163
  catch (err) {
@@ -103416,6 +103270,7 @@ const UNIT_DATA = [
103416
103270
  { name: "Units.SQ_FT", phenomenon: "Units.AREA", system: "Units.USCUSTOM", conversion: { numerator: 1.0, denominator: .09290304, offset: 0.0 }, displayLabel: "ft²" },
103417
103271
  { 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)" },
103418
103272
  { name: "Units.SQ_M", phenomenon: "Units.AREA", system: "Units.SI", conversion: { numerator: 1.0, denominator: 1.0, offset: 0.0 }, displayLabel: "m²" },
103273
+ { name: "Units.SQ_KM", phenomenon: "Units.AREA", system: "Units.SI", conversion: { numerator: 1.0, denominator: 1000000.0, offset: 0.0 }, displayLabel: "km²" },
103419
103274
  // conversion => specified unit to base unit m³
103420
103275
  { name: "Units.CUB_FT", phenomenon: "Units.VOLUME", system: "Units.USCUSTOM", conversion: { numerator: 1.0, denominator: 0.028316847, offset: 0.0 }, displayLabel: "ft³" },
103421
103276
  { name: "Units.CUB_US_SURVEY_FT", phenomenon: "Units.VOLUME", system: "Units.USSURVEY", conversion: { numerator: 1, denominator: 0.0283170164937591, offset: 0.0 }, displayLabel: "ft³" },
@@ -139644,8 +139499,8 @@ class ContextShareProvider {
139644
139499
  // Not a valid URL for Context share
139645
139500
  return false;
139646
139501
  }
139647
- // If api.bentley.com/realitydata is used, it is context share
139648
- if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata"))
139502
+ // If api.bentley.com/realitydata or api.bentley.com/reality-management is used, it is context share
139503
+ if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata") || tilesetUrl.toLowerCase().includes("api.bentley.com/reality-management/reality-data"))
139649
139504
  return true;
139650
139505
  // detect if it is a RDS url
139651
139506
  const formattedUrl1 = attUrl.pathname.replace(/~2F/g, "/").replace(/\\/g, "/");
@@ -139675,16 +139530,24 @@ class ContextShareProvider {
139675
139530
  // Not a valid URL and not equal, probably $cesiumAsset
139676
139531
  return invalidUrlInfo;
139677
139532
  }
139678
- // If api.bentley.com/realitydata is used, it is context share
139679
- if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata")) {
139533
+ // If api.bentley.com/realitydata or api.bentley.com/reality-management is used, it is context share
139534
+ if (tilesetUrl.toLowerCase().includes("api.bentley.com/realitydata") || tilesetUrl.toLowerCase().includes("api.bentley.com/reality-management/reality-data")) {
139680
139535
  const lcTilesetUrl = tilesetUrl.toLowerCase();
139681
139536
  // NOTICE: We assume it is a ThreeDTile BUT this could technically be a point cloud (OPC).
139682
139537
  // This method was used in typical workflow where format was always ThreeDTile and is here for legacy support.
139683
139538
  // 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)
139684
139539
  const format = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataFormat.ThreeDTile;
139685
- const indexId = lcTilesetUrl.indexOf("realitydata/") + 12; // lenght of "realitydata/" = 12;
139540
+ let indexId = -1;
139541
+ let indexProjectId = -1;
139542
+ if (tilesetUrl.toLowerCase().includes("reality-management/reality-data")) {
139543
+ indexId = lcTilesetUrl.indexOf("reality-management/reality-data/") + 32; // length of "reality-management/reality-data/" = 32;
139544
+ indexProjectId = lcTilesetUrl.indexOf("itwinid=") + 8; // length of "itwinid=" = 8;
139545
+ }
139546
+ else if (tilesetUrl.toLowerCase().includes("realitydata")) {
139547
+ indexId = lcTilesetUrl.indexOf("realitydata/") + 12; // length of "realitydata/" = 12;
139548
+ indexProjectId = lcTilesetUrl.indexOf("projectid=") + 10; // length of "projectid=" = 10;
139549
+ }
139686
139550
  const id = lcTilesetUrl.substring(indexId, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Guid.empty.length + indexId);
139687
- const indexProjectId = lcTilesetUrl.indexOf("projectid=") + 10; // lenght of "projectid=" = 10;
139688
139551
  let projectId;
139689
139552
  if (indexProjectId && indexProjectId > 0)
139690
139553
  projectId = lcTilesetUrl.substring(indexProjectId, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Guid.empty.length + indexProjectId);
@@ -141417,7 +141280,7 @@ class GltfReader {
141417
141280
  if (dracoMeshes.length === 0)
141418
141281
  return;
141419
141282
  try {
141420
- 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;
141283
+ 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;
141421
141284
  await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
141422
141285
  }
141423
141286
  catch (err) {
@@ -144295,7 +144158,7 @@ function readPnts(stream, dataOffset, pnts) {
144295
144158
  }
144296
144159
  async function decodeDracoPointCloud(buf) {
144297
144160
  try {
144298
- 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;
144161
+ 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;
144299
144162
  const mesh = await dracoLoader.parse(buf, {});
144300
144163
  if (mesh.topology !== "point-list")
144301
144164
  return undefined;
@@ -149893,7 +149756,8 @@ var TileGraphicType;
149893
149756
  */
149894
149757
  class TileTreeReference /* implements RenderMemory.Consumer */ {
149895
149758
  /** Force a new tree owner / tile tree to be created for the current tile tree reference
149896
- /* @internal */
149759
+ * @internal
149760
+ */
149897
149761
  resetTreeOwner() { }
149898
149762
  /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.
149899
149763
  * Override this and call super if you have such auxiliary trees.
@@ -151019,7 +150883,10 @@ __webpack_require__.r(__webpack_exports__);
151019
150883
  /** @packageDocumentation
151020
150884
  * @module Tiles
151021
150885
  */
151022
- /** @internal */
150886
+ /**
150887
+ * Class representing an ArcGIS error code.
150888
+ * @internal
150889
+ */
151023
150890
  var ArcGisErrorCode;
151024
150891
  (function (ArcGisErrorCode) {
151025
150892
  ArcGisErrorCode[ArcGisErrorCode["InvalidCredentials"] = 401] = "InvalidCredentials";
@@ -151028,7 +150895,10 @@ var ArcGisErrorCode;
151028
150895
  ArcGisErrorCode[ArcGisErrorCode["UnknownError"] = 1000] = "UnknownError";
151029
150896
  ArcGisErrorCode[ArcGisErrorCode["NoTokenService"] = 1001] = "NoTokenService";
151030
150897
  })(ArcGisErrorCode || (ArcGisErrorCode = {}));
151031
- /** @internal */
150898
+ /**
150899
+ * Class containing utilities relating to ArcGIS services and coordinate systems.
150900
+ * @internal
150901
+ */
151032
150902
  class ArcGisUtilities {
151033
150903
  static getBBoxString(range) {
151034
150904
  if (!range)
@@ -151086,6 +150956,12 @@ class ArcGisUtilities {
151086
150956
  }
151087
150957
  return sources;
151088
150958
  }
150959
+ /**
150960
+ * Get map layer sources from an ArcGIS query.
150961
+ * @param range Range for the query.
150962
+ * @param url URL for the query.
150963
+ * @returns List of map layer sources.
150964
+ */
151089
150965
  static async getSourcesFromQuery(range, url = "https://usgs.maps.arcgis.com/sharing/rest/search") {
151090
150966
  const sources = new Array();
151091
150967
  for (let start = 1; start > 0;) {
@@ -151105,11 +150981,11 @@ class ArcGisUtilities {
151105
150981
  return sources;
151106
150982
  }
151107
150983
  /**
151108
- * Parse the URL to check if it represent a valid ArcGIS service
150984
+ * Parse the URL to check if it represents a valid ArcGIS service
151109
150985
  * @param url URL to validate.
151110
150986
  * @param serviceType Service type to validate (i.e FeatureServer, MapServer)
151111
150987
  * @return Validation Status.
151112
- */
150988
+ */
151113
150989
  static validateUrl(url, serviceType) {
151114
150990
  const urlObj = new URL(url.toLowerCase());
151115
150991
  if (urlObj.pathname.includes("/rest/services/")) {
@@ -151132,10 +151008,10 @@ class ArcGisUtilities {
151132
151008
  * @param capabilitiesFilter List of capabilities 'keyword' that needs to be advertised in the service's metadata
151133
151009
  * in order to be valid. For example: 'Map', 'Query', etc
151134
151010
  * @param userName Username to use for legacy token based security.
151135
- * @param password Username to use for legacy token based security.
151011
+ * @param password Password to use for legacy token based security.
151136
151012
  * @param ignoreCache Flag to skip cache lookup (i.e. force a new server request)
151137
151013
  * @return Validation Status. If successful, a list of available sub-layers will also be returned.
151138
- */
151014
+ */
151139
151015
  static async validateSource(url, formatId, capabilitiesFilter, userName, password, ignoreCache) {
151140
151016
  const metadata = await this.getServiceJson(url, formatId, userName, password, ignoreCache);
151141
151017
  const json = metadata?.content;
@@ -151179,9 +151055,7 @@ class ArcGisUtilities {
151179
151055
  }
151180
151056
  return { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.Valid, subLayers };
151181
151057
  }
151182
- /**
151183
- * Validate MapService tiling metadata and checks if the tile tree is 'Google Maps' compatible.
151184
- */
151058
+ /** Validate MapService tiling metadata and checks if the tile tree is 'Google Maps' compatible. */
151185
151059
  static isEpsg3857Compatible(tileInfo) {
151186
151060
  if (tileInfo.spatialReference?.latestWkid !== 3857 || !Array.isArray(tileInfo.lods))
151187
151061
  return false;
@@ -151189,11 +151063,17 @@ class ArcGisUtilities {
151189
151063
  return zeroLod.level === 0 && Math.abs(zeroLod.resolution - 156543.03392800014) < .001;
151190
151064
  }
151191
151065
  /**
151192
- * Fetch an ArcGIS service metadata, and returns its JSON representation.
151066
+ * Fetches an ArcGIS service metadata, and returns its JSON representation.
151193
151067
  * If an access client has been configured for the specified formatId,
151194
151068
  * it will be used to apply required security token.
151195
151069
  * By default, response for each URL are cached.
151196
- */
151070
+ * @param url URL of the ArcGIS service
151071
+ * @param formatId Format ID of the service
151072
+ * @param userName Username to use for legacy token based security
151073
+ * @param password Password to use for legacy token based security
151074
+ * @param ignoreCache Flag to skip cache lookup (i.e. force a new server request)
151075
+ * @param requireToken Flag to indicate if a token is required
151076
+ */
151197
151077
  static async getServiceJson(url, formatId, userName, password, ignoreCache, requireToken) {
151198
151078
  if (!ignoreCache) {
151199
151079
  const cached = ArcGisUtilities._serviceCache.get(url);
@@ -151240,8 +151120,7 @@ class ArcGisUtilities {
151240
151120
  return undefined;
151241
151121
  }
151242
151122
  }
151243
- /** Read a response from ArcGIS server and check for error code in the response.
151244
- */
151123
+ /** Read a response from ArcGIS server and check for error code in the response. */
151245
151124
  static async checkForResponseErrorCode(response) {
151246
151125
  const tmpResponse = response;
151247
151126
  if (response.headers && tmpResponse.headers.get("content-type")?.toLowerCase().includes("json")) {
@@ -151282,8 +151161,7 @@ class ArcGisUtilities {
151282
151161
  * @param latitude Latitude in degrees to use to compute scales (i.e 0 for Equator)
151283
151162
  * @param tileSize Size of a tile in pixels (i.e 256)
151284
151163
  * @param screenDpi Monitor resolution in dots per inch (i.e. typically 96dpi is used by Google Maps)
151285
- *
151286
- * @returns An array containing resolution and scale values for each requested zoom level
151164
+ * @returns An array containing resolution and scale values for each requested zoom level
151287
151165
  */
151288
151166
  static computeZoomLevelsScales(startZoom = 0, endZoom = 20, latitude = 0, tileSize = 256, screenDpi = 96) {
151289
151167
  // Note: There is probably a more direct way to compute this, but I prefer to go for a simple and well documented approach.
@@ -151302,12 +151180,12 @@ class ArcGisUtilities {
151302
151180
  return results;
151303
151181
  }
151304
151182
  /**
151305
- * Match the provided minScale,maxScale values to corresponding wgs84 zoom levels
151183
+ * Match the provided minScale, maxScale values to corresponding wgs84 zoom levels
151306
151184
  * @param defaultMaxLod Value of the last LOD (i.e 22)
151307
151185
  * @param tileSize Size of a tile in pixels (i.e 256)
151308
151186
  * @param minScale Minimum scale value that needs to be matched to a LOD level
151309
151187
  * @param maxScale Maximum scale value that needs to be matched to a LOD level
151310
- * @returns minLod: LOD value matching minScale, maxLod: LOD value matching maxScale
151188
+ * @returns minLod: LOD value matching minScale, maxLod: LOD value matching maxScale
151311
151189
  */
151312
151190
  static getZoomLevelsScales(defaultMaxLod, tileSize, minScale, maxScale, tolerance = 0) {
151313
151191
  let minLod, maxLod;
@@ -152324,9 +152202,9 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
152324
152202
  return undefined;
152325
152203
  }
152326
152204
  }
152327
- _generateChildIds(tile, resolveChildren) {
152328
- const childIds = this.getPotentialChildIds(tile);
152329
- if (tile.quadId.level < Math.max(1, this.minimumZoomLevel - 1)) {
152205
+ _generateChildIds(quadId, resolveChildren) {
152206
+ const childIds = this.getPotentialChildIds(quadId);
152207
+ if (quadId.level < Math.max(1, this.minimumZoomLevel - 1)) {
152330
152208
  resolveChildren(childIds);
152331
152209
  return;
152332
152210
  }
@@ -152495,7 +152373,7 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
152495
152373
  const tolerancePixel = options?.tolerance ?? 7;
152496
152374
  const json = await this.getIdentifyData(quadId, carto, tolerancePixel, true, maxAllowableOffset);
152497
152375
  if (json && Array.isArray(json.results)) {
152498
- const renderer = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisGraphicsRenderer(hit.iModel);
152376
+ const renderer = new _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisGraphicsRenderer({ viewport: hit.viewport });
152499
152377
  const layerInfo = { layerName: this._settings.name, subLayerInfos: [] };
152500
152378
  // The 'identify' service returns us a flat/unordered list of records..
152501
152379
  // results may represent features for the a common subLayer.
@@ -152816,12 +152694,13 @@ const loggerCategory = "MapLayerImageryProvider.ArcGisGraphicsRenderer";
152816
152694
  */
152817
152695
  class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcGisGeometryBaseRenderer {
152818
152696
  get attributeSymbology() { return undefined; } // No symbology is applied in this renderer
152819
- constructor(iModel) {
152697
+ constructor(props) {
152820
152698
  super();
152821
152699
  this._scratchPointsArray = new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
152822
152700
  this._scratchPaths = [];
152823
152701
  this._graphics = [];
152824
- this._iModel = iModel;
152702
+ this._viewport = props.viewport;
152703
+ this._iModel = props.viewport.iModel;
152825
152704
  }
152826
152705
  moveGraphics() {
152827
152706
  const graphics = this._graphics;
@@ -152851,20 +152730,13 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
152851
152730
  async fill() {
152852
152731
  if (this._scratchPaths.length > 0) {
152853
152732
  const loops = [];
152854
- if (this._iModel.noGcsDefined) {
152855
- for (const points of this._scratchPaths) {
152856
- loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(this.toSpatialFromEcf(points))));
152857
- }
152733
+ const pathPromises = [];
152734
+ for (const points of this._scratchPaths) {
152735
+ pathPromises.push(this.toSpatial(points));
152858
152736
  }
152859
- else {
152860
- const pathPromises = [];
152861
- for (const points of this._scratchPaths) {
152862
- pathPromises.push(this.toSpatialFromGcs(points));
152863
- }
152864
- const pathsArray = await Promise.all(pathPromises);
152865
- for (const pointsArray of pathsArray) {
152866
- loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(pointsArray)));
152867
- }
152737
+ const pathsArray = await Promise.all(pathPromises);
152738
+ for (const pointsArray of pathsArray) {
152739
+ loops.push(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Loop.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.LineString3d.create(pointsArray)));
152868
152740
  }
152869
152741
  const mergedLoops = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.RegionOps.constructAllXYRegionLoops(loops);
152870
152742
  for (const loop of mergedLoops) {
@@ -152880,20 +152752,13 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
152880
152752
  this._scratchPaths.push(this._scratchPointsArray.getArray());
152881
152753
  this._scratchPointsArray.clear();
152882
152754
  }
152883
- if (this._iModel.noGcsDefined) {
152884
- for (const linestring of this._scratchPaths) {
152885
- this._graphics.push({ type: "linestring", points: this.toSpatialFromEcf(linestring) });
152886
- }
152755
+ const pathPromises = [];
152756
+ for (const geoPt of this._scratchPaths) {
152757
+ pathPromises.push(this.toSpatial(geoPt));
152887
152758
  }
152888
- else {
152889
- const pathPromises = [];
152890
- for (const noGcsDefined of this._scratchPaths) {
152891
- pathPromises.push(this.toSpatialFromGcs(noGcsDefined));
152892
- }
152893
- const reprojectedPaths = await Promise.all(pathPromises);
152894
- for (const path of reprojectedPaths) {
152895
- this._graphics.push({ type: "linestring", points: _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3dArray.clonePoint3dArray(path) });
152896
- }
152759
+ const reprojectedPaths = await Promise.all(pathPromises);
152760
+ for (const path of reprojectedPaths) {
152761
+ this._graphics.push({ type: "linestring", points: _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3dArray.clonePoint3dArray(path) });
152897
152762
  }
152898
152763
  this._scratchPaths = [];
152899
152764
  }
@@ -152902,33 +152767,25 @@ class ArcGisGraphicsRenderer extends _internal__WEBPACK_IMPORTED_MODULE_3__.ArcG
152902
152767
  }
152903
152768
  async finishPoints() {
152904
152769
  if (this._scratchPointsArray.length > 0) {
152905
- if (this._iModel.noGcsDefined) {
152906
- this._graphics.push({ type: "pointstring", points: this.toSpatialFromEcf(this._scratchPointsArray.getArray()) });
152770
+ // Backend reprojection
152771
+ const pointsArray = this._scratchPointsArray.getArray();
152772
+ try {
152773
+ const spatialPoints = await this.toSpatial(pointsArray);
152774
+ this._graphics.push({ type: "pointstring", points: spatialPoints });
152907
152775
  }
152908
- else {
152909
- // Backend reprojection
152910
- const pointsArray = this._scratchPointsArray.getArray();
152911
- try {
152912
- const spatialPoints = await this.toSpatialFromGcs(pointsArray);
152913
- this._graphics.push({ type: "pointstring", points: spatialPoints });
152914
- }
152915
- catch (error) {
152916
- _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, "ArcGisFeatureGraphicsRenderer: Could not reproject points");
152917
- }
152776
+ catch (error) {
152777
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, "ArcGisFeatureGraphicsRenderer: Could not reproject points");
152918
152778
  }
152919
152779
  this._scratchPointsArray.clear();
152920
152780
  }
152921
152781
  }
152922
- async toSpatialFromGcs(geoPoints) {
152923
- return this._iModel.toSpatialFromGcs(geoPoints, { horizontalCRS: { epsg: 3857 }, verticalCRS: { id: "ELLIPSOID" } });
152924
- }
152925
- toSpatialFromEcf(geoPoints) {
152926
- const spatials = [];
152927
- for (const pt of geoPoints) {
152928
- 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 };
152929
- spatials.push(this._iModel.cartographicToSpatialFromEcef(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromDegrees(carto)));
152782
+ async toSpatial(geoPoints) {
152783
+ const bgMapGeom = this._viewport.displayStyle.getBackgroundMapGeometry();
152784
+ if (bgMapGeom) {
152785
+ 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 }));
152786
+ return bgMapGeom.cartographicToDbFromWgs84Gcs(cartoPts);
152930
152787
  }
152931
- return spatials;
152788
+ return [];
152932
152789
  }
152933
152790
  }
152934
152791
 
@@ -153625,14 +153482,14 @@ class WmtsMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2__
153625
153482
  getDisplayedTileMatrixSetAndLimits() {
153626
153483
  return this._preferredLayerTileMatrixSet.get(this.displayedLayerName);
153627
153484
  }
153628
- _generateChildIds(tile, resolveChildren) {
153629
- const childIds = this.getPotentialChildIds(tile);
153485
+ _generateChildIds(quadId, resolveChildren) {
153486
+ const childIds = this.getPotentialChildIds(quadId);
153630
153487
  const matrixSetAndLimits = this.getDisplayedTileMatrixSetAndLimits();
153631
153488
  if (!matrixSetAndLimits) {
153632
153489
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false); // Must always hava a matrix set.
153633
153490
  return;
153634
153491
  }
153635
- const limits = matrixSetAndLimits.limits?.[tile.quadId.level + 1]?.limits;
153492
+ const limits = matrixSetAndLimits.limits?.[quadId.level + 1]?.limits;
153636
153493
  if (!limits) {
153637
153494
  resolveChildren(childIds);
153638
153495
  return;
@@ -154012,17 +153869,24 @@ class ImageryMapLayerTreeSupplier {
154012
153869
  }
154013
153870
  const imageryTreeSupplier = new ImageryMapLayerTreeSupplier();
154014
153871
  /** A reference to one of our tile trees. The specific TileTree drawn may change when the desired imagery type or target iModel changes.
154015
- * @internal
153872
+ * @beta
154016
153873
  */
154017
153874
  class ImageryMapLayerTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_4__.MapLayerTileTreeReference {
154018
- constructor(layerSettings, layerIndex, iModel) {
154019
- super(layerSettings, layerIndex, iModel);
153875
+ /**
153876
+ * Constructor for an ImageryMapLayerTreeReference.
153877
+ * @param layerSettings Map layer settings that are applied to the ImageryMapLayerTreeReference.
153878
+ * @param layerIndex The index of the associated map layer. Usually passed in through [[createMapLayerTreeReference]] in [[MapTileTree]]'s constructor.
153879
+ * @param iModel The iModel containing the ImageryMapLayerTreeReference.
153880
+ */
153881
+ constructor(args) {
153882
+ super(args.layerSettings, args.layerIndex, args.iModel);
154020
153883
  }
154021
153884
  get castsShadows() { return false; }
154022
153885
  /** Return the owner of the TileTree to draw. */
154023
153886
  get treeOwner() {
154024
153887
  return this.iModel.tiles.getTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);
154025
153888
  }
153889
+ /* @internal */
154026
153890
  resetTreeOwner() {
154027
153891
  return this.iModel.tiles.resetTileTreeOwner({ settings: this._layerSettings }, imageryTreeSupplier);
154028
153892
  }
@@ -154289,32 +154153,52 @@ __webpack_require__.r(__webpack_exports__);
154289
154153
 
154290
154154
 
154291
154155
  const loggerCategory = "ArcGISFeatureProvider";
154292
- /** Class representing a map-layer format.
154156
+ /**
154157
+ * Class representing a map-layer format.
154293
154158
  * Each format has it's unique 'formatId' string, used to uniquely identify a format in the [[MapLayerFormatRegistry]].
154294
154159
  * When creating an [[ImageMapLayerSettings]] object, a format needs to be specified this 'formatId'.
154295
154160
  * The MapLayerFormat object can later be used to validate a source, or create a provider.
154296
154161
  *
154297
- * Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].
154162
+ * Subclasses should override formatId, [[MapLayerFormat.createImageryProvider]], and [[MapLayerFormat.createMapLayerTree]].
154298
154163
  * @public
154299
154164
  */
154300
154165
  class MapLayerFormat {
154301
- /** Register the current format in the [[MapLayerFormatRegistry]].
154302
- */
154166
+ /** Register the current format in the [[MapLayerFormatRegistry]]. */
154303
154167
  static register() { _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.mapLayerFormatRegistry.register(this); }
154304
- /** Allow a source of a specific to be validated before being attached as a map-layer.
154305
- */
154168
+ /**
154169
+ * Allow a source of a specific format to be validated before being attached as a map-layer.
154170
+ * @param _url The URL of the source.
154171
+ * @param _userName The username to access the source if needed.
154172
+ * @param _password The password to access the source if needed.
154173
+ * @param _ignoreCache Flag to skip cache lookup (i.e. force a new server request).
154174
+ * @returns Validation Status. If successful, a list of available sub-layers may also be returned.
154175
+ */
154306
154176
  static async validateSource(_url, _userName, _password, _ignoreCache) { return { status: _internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerSourceStatus.Valid }; }
154307
- /** Create a [[MapLayerImageryProvider]] that will be used to feed data in a map-layer tile Tree.
154308
- * @internal
154309
- */
154310
- static createImageryProvider(_settings) { (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false); }
154311
- /** @internal */
154177
+ /**
154178
+ * Create a [[MapLayerImageryProvider]] that will be used to feed data in a map-layer tile tree.
154179
+ * @param _settings The map layer settings to be applied to the imagery provider.
154180
+ * @returns Returns the new imagery provider.
154181
+ * @beta
154182
+ */
154183
+ static createImageryProvider(_settings) {
154184
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Subclasses must override this method.");
154185
+ return undefined;
154186
+ }
154187
+ /**
154188
+ * Creates a MapLayerTileTreeReference for this map layer format.
154189
+ * @param _layerSettings Map layer settings that are applied to the MapLayerTileTreeReference.
154190
+ * @param _layerIndex The index of the associated map layer.
154191
+ * @param _iModel The iModel containing the MapLayerTileTreeReference.
154192
+ * @returns Returns the new tile tree reference.
154193
+ * @beta
154194
+ */
154312
154195
  static createMapLayerTree(_layerSettings, _layerIndex, _iModel) {
154313
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
154196
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Subclasses must override this method.");
154314
154197
  return undefined;
154315
154198
  }
154316
154199
  }
154317
- /** A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
154200
+ /**
154201
+ * A registry of MapLayerFormats identified by their unique format IDs. The registry can be accessed via [[IModelApp.mapLayerFormatRegistry]].
154318
154202
  * @public
154319
154203
  */
154320
154204
  class MapLayerFormatRegistry {
@@ -154357,7 +154241,8 @@ class MapLayerFormatRegistry {
154357
154241
  }
154358
154242
  return format.createMapLayerTree(layerSettings, layerIndex, iModel);
154359
154243
  }
154360
- /** Returns a [[MapLayerImageryProvider]] based on the provided [[ImageMapLayerSettings]] object.
154244
+ /**
154245
+ * Returns a [[MapLayerImageryProvider]] based on the provided [[ImageMapLayerSettings]] object.
154361
154246
  * @internal
154362
154247
  */
154363
154248
  createImageryProvider(layerSettings) {
@@ -154402,7 +154287,7 @@ __webpack_require__.r(__webpack_exports__);
154402
154287
  class ImageryMapLayerFormat extends _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerFormat {
154403
154288
  /** @internal */
154404
154289
  static createMapLayerTree(layerSettings, layerIndex, iModel) {
154405
- return new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryMapLayerTreeReference(layerSettings, layerIndex, iModel);
154290
+ return new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryMapLayerTreeReference({ layerSettings, layerIndex, iModel });
154406
154291
  }
154407
154292
  }
154408
154293
  class WmsMapLayerFormat extends ImageryMapLayerFormat {
@@ -154634,15 +154519,23 @@ class MapLayerImageryProvider {
154634
154519
  this._geographicTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.GeographicTilingScheme();
154635
154520
  /** @internal */
154636
154521
  this._status = MapLayerImageryProviderStatus.Valid;
154637
- // Those values are used internally for various computation, this should not get overriden.
154638
- /** @internal */
154522
+ /**
154523
+ * This value is used internally for various computations, this should not get overriden.
154524
+ * @internal
154525
+ */
154639
154526
  this.defaultMinimumZoomLevel = 0;
154640
- /** @internal */
154527
+ /**
154528
+ * This value is used internally for various computations, this should not get overriden.
154529
+ * @internal
154530
+ */
154641
154531
  this.defaultMaximumZoomLevel = 22;
154642
154532
  this._mercatorTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.WebMercatorTilingScheme();
154643
154533
  this._geographicTilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_5__.GeographicTilingScheme(2, 1, true);
154644
154534
  }
154645
- /** @internal */
154535
+ /**
154536
+ * Initialize the provider by loading the first tile at its default maximum zoom level.
154537
+ * @beta
154538
+ */
154646
154539
  async initialize() {
154647
154540
  this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData) => {
154648
154541
  if (tileData !== undefined)
@@ -154650,20 +154543,31 @@ class MapLayerImageryProvider {
154650
154543
  });
154651
154544
  }
154652
154545
  get tilingScheme() { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }
154653
- /** @internal */
154546
+ /**
154547
+ * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.
154548
+ * @param _cards Logo cards HTML element that may contain custom data attributes.
154549
+ * @param _viewport Viewport to add logo cards to.
154550
+ * @beta
154551
+ */
154654
154552
  addLogoCards(_cards, _viewport) { }
154655
154553
  /** @internal */
154656
154554
  get transparentBackgroundString() { return this._settings.transparentBackground ? "true" : "false"; }
154657
154555
  /** @internal */
154658
154556
  async _areChildrenAvailable(_tile) { return true; }
154659
154557
  /** @internal */
154660
- getPotentialChildIds(tile) {
154661
- const childLevel = tile.quadId.level + 1;
154662
- return tile.quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));
154558
+ getPotentialChildIds(quadId) {
154559
+ const childLevel = quadId.level + 1;
154560
+ return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));
154663
154561
  }
154664
- /** @internal */
154665
- _generateChildIds(tile, resolveChildren) {
154666
- resolveChildren(this.getPotentialChildIds(tile));
154562
+ /**
154563
+ * Get child IDs of a quad and generate tiles based on these child IDs.
154564
+ * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.
154565
+ * @param quadId quad to generate child IDs for.
154566
+ * @param resolveChildren Function that creates tiles from child IDs.
154567
+ * @beta
154568
+ */
154569
+ _generateChildIds(quadId, resolveChildren) {
154570
+ resolveChildren(this.getPotentialChildIds(quadId));
154667
154571
  }
154668
154572
  /** @internal */
154669
154573
  generateChildIds(tile, resolveChildren) {
@@ -154671,9 +154575,16 @@ class MapLayerImageryProvider {
154671
154575
  tile.setLeaf();
154672
154576
  return;
154673
154577
  }
154674
- this._generateChildIds(tile, resolveChildren);
154578
+ this._generateChildIds(tile.quadId, resolveChildren);
154675
154579
  }
154676
- /** @internal */
154580
+ /**
154581
+ * Get tooltip text for a specific quad and cartographic position.
154582
+ * @param strings List of strings to contain tooltip text.
154583
+ * @param quadId Quad ID to get tooltip for.
154584
+ * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.
154585
+ * @param tree Tree associated with the quad to get the tooltip for.
154586
+ * @internal
154587
+ */
154677
154588
  async getToolTip(strings, quadId, _carto, tree) {
154678
154589
  if (doDebugToolTips) {
154679
154590
  const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);
@@ -154708,7 +154619,8 @@ class MapLayerImageryProvider {
154708
154619
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false, "Invalid tile content type");
154709
154620
  return undefined;
154710
154621
  }
154711
- /** Change the status of this provider.
154622
+ /**
154623
+ * Change the status of this provider.
154712
154624
  * Sub-classes should override 'onStatusUpdated' instead of this method.
154713
154625
  * @internal
154714
154626
  */
@@ -154791,31 +154703,49 @@ class MapLayerImageryProvider {
154791
154703
  }
154792
154704
  return true;
154793
154705
  }
154794
- /** @internal */
154795
- // calculates the projected x cartesian coordinate in EPSG:3857from the longitude in EPSG:4326 (WGS84)
154706
+ /**
154707
+ * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)
154708
+ * @param longitude Longitude in EPSG:4326 (WGS84)
154709
+ * @internal
154710
+ */
154796
154711
  getEPSG3857X(longitude) {
154797
154712
  return longitude * 20037508.34 / 180.0;
154798
154713
  }
154799
- /** @internal */
154800
- // calculates the projected y cartesian coordinate in EPSG:3857from the latitude in EPSG:4326 (WGS84)
154714
+ /**
154715
+ * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)
154716
+ * @param latitude Latitude in EPSG:4326 (WGS84)
154717
+ * @internal
154718
+ */
154801
154719
  getEPSG3857Y(latitude) {
154802
154720
  const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);
154803
154721
  return y * 20037508.34 / 180.0;
154804
154722
  }
154805
- /** @internal */
154806
- // calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857
154723
+ /**
154724
+ * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857
154725
+ * @param x3857 Projected x cartesian coordinate in EPSG:3857
154726
+ * @internal
154727
+ */
154807
154728
  getEPSG4326Lon(x3857) {
154808
154729
  return _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Angle.radiansToDegrees(x3857 / earthRadius);
154809
154730
  }
154810
- /** @internal */
154811
- // calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857
154731
+ /**
154732
+ * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857
154733
+ * @param y3857 Projected y cartesian coordinate in EPSG:3857
154734
+ * @internal
154735
+ */
154812
154736
  getEPSG4326Lat(y3857) {
154813
154737
  const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);
154814
154738
  return _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Angle.radiansToDegrees(y);
154815
154739
  }
154816
- /** @internal */
154817
- // Map tile providers like Bing and Mapbox allow the URL to be constructed directory from the zoom level and tile coordinates.
154818
- // However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.
154740
+ /**
154741
+ * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.
154742
+ * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.
154743
+ * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.
154744
+ * @param row Row of the tile
154745
+ * @param column Column of the tile
154746
+ * @param zoomLevel Desired zoom level of the tile
154747
+ * @internal
154748
+ */
154819
154749
  getEPSG4326Extent(row, column, zoomLevel) {
154820
154750
  // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,
154821
154751
  // so use Math.pow instead (I assume the performance lost to be minimal)
@@ -154830,7 +154760,13 @@ class MapLayerImageryProvider {
154830
154760
  const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;
154831
154761
  return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };
154832
154762
  }
154833
- /** @internal */
154763
+ /**
154764
+ * Get the bounding box/extents of a tile in EPSG:3857 format.
154765
+ * @param row Row of the tile
154766
+ * @param column Column of the tile
154767
+ * @param zoomLevel Desired zoom level of the tile
154768
+ * @internal
154769
+ */
154834
154770
  getEPSG3857Extent(row, column, zoomLevel) {
154835
154771
  const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);
154836
154772
  const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);
@@ -155107,24 +155043,45 @@ __webpack_require__.r(__webpack_exports__);
155107
155043
 
155108
155044
 
155109
155045
 
155110
- /** @internal */
155046
+ /**
155047
+ * A [[TileTreeReference]] to be used specifically for [[MapTileTree]]s.
155048
+ * The reference refers to its MapTileTree by way of the tree's [[TileTreeOwner]].
155049
+ * Multiple MapLayerTileTreeReferences can refer to the same TileTree if the map layer settings are equivalent, meaning
155050
+ * they have identical format IDs, URLs, credentials, etc.
155051
+ * @beta
155052
+ */
155111
155053
  class MapLayerTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_3__.TileTreeReference {
155054
+ /**
155055
+ * Constructor for a MapLayerTileTreeReference.
155056
+ * @param _layerSettings Map layer settings that are applied to the MapLayerTileTreeReference.
155057
+ * @param _layerIndex The index of the associated map layer.
155058
+ * @param iModel The iModel containing the MapLayerTileTreeReference.
155059
+ * @internal
155060
+ */
155112
155061
  constructor(_layerSettings, _layerIndex, iModel) {
155113
155062
  super();
155114
155063
  this._layerSettings = _layerSettings;
155115
155064
  this._layerIndex = _layerIndex;
155116
155065
  this.iModel = iModel;
155117
155066
  }
155067
+ /* @internal */
155118
155068
  get _transparency() { return this._layerSettings.transparency ? this._layerSettings.transparency : undefined; }
155069
+ /** Returns true if the associated map layer, including its sublayers, is opaque. */
155119
155070
  get isOpaque() {
155120
155071
  return this._layerSettings.visible && (!this._layerSettings.allSubLayersInvisible) && !this._layerSettings.transparentBackground && 0 === this._layerSettings.transparency;
155121
155072
  }
155073
+ /* Returns the map layer name. */
155122
155074
  get layerName() { return this._layerSettings.name; }
155075
+ /** Returns the imagery provider for the tile tree. */
155123
155076
  get imageryProvider() { return undefined; }
155124
155077
  set layerSettings(layerSettings) { this._layerSettings = layerSettings; }
155078
+ /** Returns the layer settings for the map layer. */
155125
155079
  get layerSettings() { return this._layerSettings; }
155080
+ /** Returns the index of the map layer associated with the tile tree. */
155126
155081
  get layerIndex() { return this._layerIndex; }
155082
+ /** Returns the transparency value of the map layer. */
155127
155083
  get transparency() { return this._transparency; }
155084
+ /* Returns a tooltip describing the hit with the map layer name. */
155128
155085
  async getToolTip(hit) {
155129
155086
  const tree = this.treeOwner.tileTree;
155130
155087
  if (undefined === tree || hit.iModel !== tree.iModel || tree.modelId !== hit.sourceId)
@@ -155136,7 +155093,14 @@ class MapLayerTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_3__.T
155136
155093
  return div;
155137
155094
  }
155138
155095
  }
155139
- /** @internal */
155096
+ /**
155097
+ * Creates a MapLayerTileTreeReference.
155098
+ * @param layerSettings Model or image map layer settings that are applied to the MapLayerTileTreeReference.
155099
+ * @param layerIndex The index of the associated map layer.
155100
+ * @param iModel The iModel containing the new MapLayerTileTreeReference.
155101
+ * @returns Returns the new tile tree reference, either a ModelMapLayerTileTreeReference or an ImageryMapLayerTreeReference.
155102
+ * @internal
155103
+ */
155140
155104
  function createMapLayerTreeReference(layerSettings, layerIndex, iModel) {
155141
155105
  if (layerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerSettings) {
155142
155106
  return (0,_internal__WEBPACK_IMPORTED_MODULE_3__.createModelMapLayerTileTreeReference)(layerSettings, layerIndex, iModel);
@@ -173082,10 +173046,8 @@ class Geometry {
173082
173046
  * Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds `Geometry.largeFractionResult`
173083
173047
  */
173084
173048
  static inverseInterpolate01(f0, f1, fTarget = 0) {
173085
- /**
173086
- * Line equation is "fTarget-f0 = (f1-f0)*x" so "x = (fTarget-f0)/(f1-f0)"
173087
- */
173088
- return Geometry.conditionalDivideFraction(fTarget - f0, f1 - f0); // x = (fTarget-f0)/(f1-f0)
173049
+ // Line equation is fTarget-f0 = (f1-f0)*x so x = (fTarget-f0)/(f1-f0)
173050
+ return Geometry.conditionalDivideFraction(fTarget - f0, f1 - f0);
173089
173051
  }
173090
173052
  /**
173091
173053
  * Return `true` if `json` is an array with at least `minEntries` entries and all entries are numbers (including
@@ -186139,11 +186101,28 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
186139
186101
  curveLengthBetweenFractions(fraction0, fraction1) {
186140
186102
  return Math.abs(fraction1 - fraction0) * this._totalLength;
186141
186103
  }
186104
+ /** Flatten CurveChainWithDistanceIndex children in the input chain.
186105
+ * @return cloned flattened CurveChain, or reference to the input chain if no nesting
186106
+ */
186107
+ static flattenNestedChains(chain) {
186108
+ if (-1 === chain.children.findIndex((child) => { return child instanceof CurveChainWithDistanceIndex; }))
186109
+ return chain;
186110
+ const flatChain = chain.clone();
186111
+ const flatChildren = flatChain.children.flatMap((child) => {
186112
+ if (child instanceof CurveChainWithDistanceIndex)
186113
+ return child.path.children;
186114
+ else
186115
+ return [child];
186116
+ });
186117
+ flatChain.children.splice(0, Infinity, ...flatChildren);
186118
+ return flatChain;
186119
+ }
186142
186120
  /**
186143
186121
  * Capture (not clone) a path into a new `CurveChainWithDistanceIndex`
186144
186122
  * @param path primitive array to be CAPTURED (not cloned)
186145
186123
  */
186146
186124
  static createCapture(path, options) {
186125
+ path = this.flattenNestedChains(path); // nested chains not allowed
186147
186126
  const fragments = DistanceIndexConstructionContext.createPathFragmentIndex(path, options);
186148
186127
  const result = new CurveChainWithDistanceIndex(path, fragments);
186149
186128
  return result;
@@ -186479,6 +186458,36 @@ class CurveChainWithDistanceIndex extends _curve_CurvePrimitive__WEBPACK_IMPORTE
186479
186458
  }
186480
186459
  return undefined;
186481
186460
  }
186461
+ /**
186462
+ * Given a parent chain, convert the corresponding child details in the specified pairs.
186463
+ * * Converted details refer to the chain's global parameterization instead of the child's.
186464
+ * * It is assumed that for all i >= index0, `pairs[i].detailA.curve` is a child of chainA (similarly for chainB).
186465
+ * @param pairs array to mutate
186466
+ * @param index0 convert details of pairs in the tail of the array, starting at index0
186467
+ * @param chainA convert each specified detailA to the global parameterization of chainA
186468
+ * @param chainB convert each specified detailB to the global parameterization of chainB
186469
+ * @param compressAdjacent whether to remove adjacent duplicate pairs after conversion
186470
+ * @return the converted array
186471
+ * @internal
186472
+ */
186473
+ static convertChildDetailToChainDetail(pairs, index0, chainA, chainB, compressAdjacent) {
186474
+ for (let i = index0; i < pairs.length; ++i) {
186475
+ const childDetailPair = pairs[i];
186476
+ if (chainA) {
186477
+ const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
186478
+ if (chainDetail)
186479
+ childDetailPair.detailA = chainDetail;
186480
+ }
186481
+ if (chainB) {
186482
+ const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
186483
+ if (chainDetail)
186484
+ childDetailPair.detailB = chainDetail;
186485
+ }
186486
+ }
186487
+ if (compressAdjacent)
186488
+ pairs = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_8__.CurveLocationDetailPair.removeAdjacentDuplicates(pairs, index0);
186489
+ return pairs;
186490
+ }
186482
186491
  }
186483
186492
  CurveChainWithDistanceIndex._numCalls = 0;
186484
186493
  CurveChainWithDistanceIndex._numTested = 0;
@@ -186537,15 +186546,13 @@ __webpack_require__.r(__webpack_exports__);
186537
186546
 
186538
186547
  /**
186539
186548
  * A `CurveCollection` is an abstract (non-instantiable) class for various sets of curves with particular structures:
186540
- * - `CurveChain` is a (non-instantiable) intermediate class for a sequence of `CurvePrimitive` joining head-to-tail.
186541
- * The two instantiable forms of `CurveChain` are
186542
- * - `Path` - A chain not required to close and not enclosing a planar area (so curves do not have to be on the
186543
- * same plane).
186544
- * - `Loop` - A chain required to close from last to first so that a planar area is enclosed (so curves have to
186545
- * be on the same plane).
186546
- * - `ParityRegion` -- a collection of coplanar `Loop`, with "in/out" classification by parity rules.
186547
- * - `UnionRegion` -- a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
186548
- * - `BagOfCurves` -- a collection of `AnyCurve` with no implied structure.
186549
+ * - [[CurveChain]] - a non-instantiable intermediate class for a sequence of [[CurvePrimitive]] joining head-to-tail.
186550
+ * The two instantiable forms of `CurveChain` are:
186551
+ * - [[Path]] - a chain of curves. Does not have to be closed or planar. A closed `Path` is not treated as bounding a surface.
186552
+ * - [[Loop]] - a closed and planar chain of curves. A `Loop` is treated as bounding a planar area.
186553
+ * - [[ParityRegion]] - a collection of coplanar `Loop`, with "in/out" classification by parity rules.
186554
+ * - [[UnionRegion]] - a collection of coplanar `Loop` and/or `ParityRegion`, with "in/out" classification by union rules.
186555
+ * - [[BagOfCurves]] - a collection of [[AnyCurve]] with no implied structure.
186549
186556
  *
186550
186557
  * @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.
186551
186558
  * @public
@@ -186555,7 +186562,6 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
186555
186562
  super(...arguments);
186556
186563
  /** String name for schema properties */
186557
186564
  this.geometryCategory = "curveCollection";
186558
- /* eslint-disable @typescript-eslint/naming-convention, no-empty */
186559
186565
  /** Flag for inner loop status. Only used by `Loop`. */
186560
186566
  this.isInner = false;
186561
186567
  }
@@ -186932,11 +186938,9 @@ __webpack_require__.r(__webpack_exports__);
186932
186938
  /* harmony export */ CurveCurve: () => (/* binding */ CurveCurve)
186933
186939
  /* harmony export */ });
186934
186940
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
186935
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
186936
- /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
186937
- /* harmony import */ var _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalContexts/CurveCurveCloseApproachXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js");
186941
+ /* harmony import */ var _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internalContexts/CurveCurveCloseApproachXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js");
186938
186942
  /* harmony import */ var _internalContexts_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXY */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js");
186939
- /* harmony import */ var _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js");
186943
+ /* harmony import */ var _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internalContexts/CurveCurveIntersectXYZ */ "../../core/geometry/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js");
186940
186944
  /*---------------------------------------------------------------------------------------------
186941
186945
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
186942
186946
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -186948,8 +186952,6 @@ __webpack_require__.r(__webpack_exports__);
186948
186952
 
186949
186953
 
186950
186954
 
186951
-
186952
-
186953
186955
  /**
186954
186956
  * `CurveCurve` has static method for various computations that work on a pair of curves or curve collections.
186955
186957
  * @public
@@ -186964,22 +186966,11 @@ class CurveCurve {
186964
186966
  * @param tolerance optional distance tolerance for coincidence
186965
186967
  */
186966
186968
  static intersectionXYPairs(curveA, extendA, curveB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
186967
- const handler = new _internalContexts_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_1__.CurveCurveIntersectXY(undefined, extendA, curveB, extendB, tolerance);
186968
- if (curveB instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_2__.CurvePrimitive) {
186969
- curveA.dispatchToGeometryHandler(handler);
186970
- }
186971
- else if (curveB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_3__.CurveCollection) {
186972
- const allCurves = curveB.collectCurvePrimitives();
186973
- for (const child of allCurves) {
186974
- handler.resetGeometry(false, child, false);
186975
- curveA.dispatchToGeometryHandler(handler);
186976
- }
186977
- }
186978
- return handler.grabPairedResults();
186969
+ return CurveCurve.intersectionProjectedXYPairs(undefined, curveA, extendA, curveB, extendB, tolerance);
186979
186970
  }
186980
186971
  /**
186981
186972
  * Return xy intersections of 2 projected curves.
186982
- * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections.
186973
+ * @param worldToLocal transform (possibly perspective) defining the local coordinates in which to compute xy intersections
186983
186974
  * @param curveA first curve
186984
186975
  * @param extendA true to allow curveA to extend
186985
186976
  * @param curveB second curve
@@ -187003,7 +186994,7 @@ class CurveCurve {
187003
186994
  * @returns array of intersections structured as CurveLocationDetailPair[]
187004
186995
  */
187005
186996
  static intersectionXYZPairs(curveA, extendA, curveB, extendB) {
187006
- const handler = new _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_4__.CurveCurveIntersectXYZ(extendA, curveB, extendB);
186997
+ const handler = new _internalContexts_CurveCurveIntersectXYZ__WEBPACK_IMPORTED_MODULE_2__.CurveCurveIntersectXYZ(extendA, curveB, extendB);
187007
186998
  curveA.dispatchToGeometryHandler(handler);
187008
186999
  return handler.grabPairedResults();
187009
187000
  }
@@ -187017,7 +187008,7 @@ class CurveCurve {
187017
187008
  for (let i = 0; i < primitives.length; i++) {
187018
187009
  const curveA = primitives[i];
187019
187010
  for (let j = i + 1; j < primitives.length; j++) {
187020
- handler.resetGeometry(false, primitives[j], false);
187011
+ handler.resetGeometry(primitives[j]);
187021
187012
  curveA.dispatchToGeometryHandler(handler);
187022
187013
  }
187023
187014
  }
@@ -187037,7 +187028,7 @@ class CurveCurve {
187037
187028
  * Close approaches further than this xy-distance are not returned.
187038
187029
  */
187039
187030
  static closeApproachProjectedXYPairs(curveA, curveB, maxDistance) {
187040
- const handler = new _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_5__.CurveCurveCloseApproachXY(curveB);
187031
+ const handler = new _internalContexts_CurveCurveCloseApproachXY__WEBPACK_IMPORTED_MODULE_3__.CurveCurveCloseApproachXY(curveB);
187041
187032
  handler.maxDistanceToAccept = maxDistance;
187042
187033
  curveA.dispatchToGeometryHandler(handler);
187043
187034
  return handler.grabPairedResults();
@@ -187939,19 +187930,13 @@ class CurveLocationDetail {
187939
187930
  * * No action if undefined.
187940
187931
  */
187941
187932
  collapseToEnd() {
187942
- if (this.fraction1 !== undefined) {
187933
+ if (this.fraction1 !== undefined)
187943
187934
  this.fraction = this.fraction1;
187944
- this.fraction1 = undefined;
187945
- }
187946
- if (this.point1) {
187935
+ if (this.point1)
187947
187936
  this.point = this.point1;
187948
- this.point1 = undefined;
187949
- }
187937
+ this.collapseToStart();
187950
187938
  }
187951
- /**
187952
- * Make (fraction, point) the primary (and only) data.
187953
- * * No action if undefined.
187954
- */
187939
+ /** Make (fraction, point) the primary (and only) data. */
187955
187940
  collapseToStart() {
187956
187941
  this.fraction1 = undefined;
187957
187942
  this.point1 = undefined;
@@ -188171,6 +188156,10 @@ class CurveLocationDetail {
188171
188156
  }
188172
188157
  return detailB;
188173
188158
  }
188159
+ /** Compare only the curve and fraction of this detail with `other`. */
188160
+ isSameCurveAndFraction(other) {
188161
+ return this.curve === other.curve && _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(this.fraction, other.fraction);
188162
+ }
188174
188163
  }
188175
188164
  /**
188176
188165
  * Enumeration of configurations for intersections and min/max distance-between-curve
@@ -188233,6 +188222,30 @@ class CurveLocationDetailPair {
188233
188222
  this.detailA = this.detailB;
188234
188223
  this.detailB = q;
188235
188224
  }
188225
+ /**
188226
+ * Mutate the input array by removing the second of two adjacent duplicate pairs.
188227
+ * * Ignores details representing coincident intervals (e.g., for which `fraction1` is defined).
188228
+ * * Comparison is performed by [[CurveLocationDetail.isSameCurveAndFraction]].
188229
+ * * No sorting is performed.
188230
+ * @param pairs array to de-duplicate in place
188231
+ * @param index0 look for duplicates in the tail of the array starting at index0
188232
+ * @return reference to input array
188233
+ * @internal
188234
+ */
188235
+ static removeAdjacentDuplicates(pairs, index0 = 0) {
188236
+ return pairs.flatMap((pair, i, arr) => {
188237
+ if (i >= index0 && i > 0) {
188238
+ if (!pair.detailA.hasFraction1 && !pair.detailB.hasFraction1) {
188239
+ if (pair.detailA.isSameCurveAndFraction(arr[i - 1].detailA)) {
188240
+ if (pair.detailB.isSameCurveAndFraction(arr[i - 1].detailB)) {
188241
+ return []; // remove the i_th pair
188242
+ }
188243
+ }
188244
+ }
188245
+ }
188246
+ return [pair]; // preserve the i_th pair
188247
+ });
188248
+ }
188236
188249
  }
188237
188250
  /**
188238
188251
  * Data bundle for a pair of arrays of CurveLocationDetail structures.
@@ -189283,10 +189296,8 @@ class CurveWireMomentsXYZ {
189283
189296
  if (root instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_3__.CurvePrimitive)
189284
189297
  root.emitStrokableParts(this);
189285
189298
  else if (root instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_4__.CurveCollection) {
189286
- if (root.children !== undefined)
189287
- for (const child of root.children) {
189288
- this.visitLeaves(child);
189289
- }
189299
+ for (const child of root.children)
189300
+ this.visitLeaves(child);
189290
189301
  }
189291
189302
  }
189292
189303
  }
@@ -190675,10 +190686,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190675
190686
  isInPlane(plane) {
190676
190687
  return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
190677
190688
  }
190678
- /**
190679
- * Push a hit, fixing up the prior entry if needed.
190680
- * Return the incremented counter.
190681
- */
190689
+ /** Push a hit, fixing up the prior entry if needed. */
190682
190690
  static pushVertexHit(result, counter, cp, fraction, point) {
190683
190691
  const detail = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.createCurveFractionPoint(cp, fraction, point);
190684
190692
  result.push(detail);
@@ -193859,7 +193867,8 @@ class RegionOps {
193859
193867
  return halfDistTol * (range.xLength() + range.yLength() + halfDistTol);
193860
193868
  }
193861
193869
  /**
193862
- * Return an xy area for a loop, parity region, or union region.
193870
+ * Return a (signed) xy area for a region.
193871
+ * * The area is negative if and only if the region is oriented clockwise with respect to the positive z-axis.
193863
193872
  * @param root any Loop, ParityRegion, or UnionRegion.
193864
193873
  */
193865
193874
  static computeXYArea(root) {
@@ -196498,10 +196507,6 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196498
196507
  this._results = [];
196499
196508
  return result;
196500
196509
  }
196501
- /** Returns `true` if `detail` has same curve and fraction. */
196502
- sameCurveAndFraction(cp, fraction, detail) {
196503
- return cp === detail.curve && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isAlmostEqualNumber(fraction, detail.fraction);
196504
- }
196505
196510
  /**
196506
196511
  * If distance between pointA and pointB is less than maxDistance, record CurveLocationDetailPair which is
196507
196512
  * the approach from pointA to pointB.
@@ -196552,13 +196557,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196552
196557
  const oldDetailA = this._results[numPrevious - 1].detailA;
196553
196558
  const oldDetailB = this._results[numPrevious - 1].detailB;
196554
196559
  if (reversed) {
196555
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
196556
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
196560
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
196561
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
196557
196562
  return;
196558
196563
  }
196559
196564
  else {
196560
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
196561
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
196565
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
196566
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
196562
196567
  return;
196563
196568
  }
196564
196569
  }
@@ -196604,13 +196609,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196604
196609
  const oldDetailA = this._results[numPrevious - 1].detailA;
196605
196610
  const oldDetailB = this._results[numPrevious - 1].detailB;
196606
196611
  if (reversed) {
196607
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
196608
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
196612
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
196613
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
196609
196614
  return;
196610
196615
  }
196611
196616
  else {
196612
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
196613
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
196617
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
196618
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
196614
196619
  return;
196615
196620
  }
196616
196621
  }
@@ -196996,38 +197001,22 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
196996
197001
  }
196997
197002
  this._geometryB = geomB; // restore
196998
197003
  }
196999
- /**
197000
- * Given a parent chain, convert the corresponding child details so that they refer to the chain's global parameterization.
197001
- * * It is assumed that `this._results[i].detailA.curve` is a child of chainA, and similarly for detailB/chainB.
197002
- * @param chainA convert each detailA to the global parameterization of chainA
197003
- * @param chainB convert each detailB to the global parameterization of chainB
197004
- */
197005
- convertChildDetailToChainDetail(chainA, chainB) {
197006
- for (const childDetailPair of this._results) {
197007
- if (chainA) {
197008
- const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
197009
- if (chainDetail)
197010
- childDetailPair.detailA = chainDetail;
197011
- }
197012
- if (chainB) {
197013
- const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
197014
- if (chainDetail)
197015
- childDetailPair.detailB = chainDetail;
197016
- }
197017
- }
197018
- }
197019
197004
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
197020
197005
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
197021
197006
  if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
197022
197007
  return;
197008
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
197009
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
197010
+ return;
197011
+ }
197012
+ const index0 = this._results.length;
197023
197013
  const geomB = this._geometryB; // save
197024
197014
  for (const child of geomB.path.children) {
197025
197015
  this.resetGeometry(child);
197026
197016
  geomAHandler(geomA);
197027
197017
  }
197028
197018
  this.resetGeometry(geomB); // restore
197029
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!(geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex));
197030
- this.convertChildDetailToChainDetail(undefined, geomB);
197019
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
197031
197020
  }
197032
197021
  /** Double dispatch handler for strongly typed segment. */
197033
197022
  handleLineSegment3d(segmentA) {
@@ -197198,7 +197187,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
197198
197187
  /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
197199
197188
  handleCurveChainWithDistanceIndex(chain) {
197200
197189
  super.handleCurveChainWithDistanceIndex(chain);
197201
- this.convertChildDetailToChainDetail(chain, this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex ? this._geometryB : undefined);
197190
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
197191
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
197202
197192
  }
197203
197193
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
197204
197194
  handleBSplineCurve3dH(_curve) {
@@ -197240,27 +197230,36 @@ __webpack_require__.r(__webpack_exports__);
197240
197230
  /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* binding */ BezierBezierIntersectionXYRRToRRD),
197241
197231
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
197242
197232
  /* harmony export */ });
197243
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
197244
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
197245
- /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
197246
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
197247
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
197248
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
197249
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
197250
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
197251
- /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
197252
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
197253
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
197254
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
197255
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
197256
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
197257
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
197258
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
197259
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
197233
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
197234
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
197235
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
197236
+ /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
197237
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
197238
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
197239
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
197240
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
197241
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
197242
+ /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
197243
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
197244
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
197245
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
197246
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
197247
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
197248
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
197249
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
197250
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
197251
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
197252
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
197260
197253
  /*---------------------------------------------------------------------------------------------
197261
197254
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
197262
197255
  * See LICENSE.md in the project root for license terms and full copyright notice.
197263
197256
  *--------------------------------------------------------------------------------------------*/
197257
+ /** @packageDocumentation
197258
+ * @module Curve
197259
+ */
197260
+
197261
+
197262
+
197264
197263
 
197265
197264
 
197266
197265
 
@@ -197284,13 +197283,13 @@ __webpack_require__.r(__webpack_exports__);
197284
197283
  * * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
197285
197284
  * @internal
197286
197285
  */
197287
- class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__.NewtonEvaluatorRRtoRRD {
197286
+ class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.NewtonEvaluatorRRtoRRD {
197288
197287
  constructor(curveA, curveB) {
197289
197288
  super();
197290
197289
  this._curveA = curveA;
197291
197290
  this._curveB = curveB;
197292
- this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__.Ray3d.createZero();
197293
- this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_1__.Ray3d.createZero();
197291
+ this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
197292
+ this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
197294
197293
  }
197295
197294
  evaluate(fractionA, fractionB) {
197296
197295
  this._curveA.fractionToPointAndDerivative(fractionA, this._rayA);
@@ -197305,7 +197304,7 @@ class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORT
197305
197304
  * * geometryB is saved for later reference.
197306
197305
  * @internal
197307
197306
  */
197308
- class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_2__.NullGeometryHandler {
197307
+ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.RecurseToCurvesGeometryHandler {
197309
197308
  /**
197310
197309
  * The constructor.
197311
197310
  * @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
@@ -197314,7 +197313,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197314
197313
  * @param extendB flag for extension of geometryB.
197315
197314
  * @param tolerance optional distance tolerance for coincidence.
197316
197315
  */
197317
- constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance) {
197316
+ constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
197318
197317
  super();
197319
197318
  this._extendA = extendA;
197320
197319
  this._geometryB = geometryB;
@@ -197326,14 +197325,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197326
197325
  if (!this._worldToLocalAffine)
197327
197326
  this._worldToLocalPerspective = worldToLocal.clone();
197328
197327
  }
197329
- this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_4__.CoincidentGeometryQuery.create(tolerance);
197328
+ this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__.CoincidentGeometryQuery.create(tolerance);
197330
197329
  this._results = [];
197331
197330
  }
197332
- /** Reset the geometry and flags, leaving all other parts unchanged (and preserving accumulated intersections) */
197333
- resetGeometry(extendA, geometryB, extendB) {
197334
- this._extendA = extendA;
197331
+ /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
197332
+ resetGeometry(geometryB) {
197335
197333
  this._geometryB = geometryB;
197336
- this._extendB = extendB;
197337
197334
  }
197338
197335
  acceptFraction(extend0, fraction, extend1, fractionTol = 1.0e-12) {
197339
197336
  if (!extend0 && fraction < -fractionTol)
@@ -197343,12 +197340,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197343
197340
  return true;
197344
197341
  }
197345
197342
  /** Test the fraction by strict parameter, but allow toleranced distance test at ends. */
197346
- acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance) {
197343
+ acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
197347
197344
  if (!extend0 && fraction < 0) {
197348
- return _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
197345
+ return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
197349
197346
  }
197350
197347
  else if (!extend1 && fraction > 1.0)
197351
- return _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
197348
+ return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
197352
197349
  return true;
197353
197350
  }
197354
197351
  /**
@@ -197361,9 +197358,6 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197361
197358
  this._results = [];
197362
197359
  return result;
197363
197360
  }
197364
- sameCurveAndFraction(cp, fraction, detail) {
197365
- return cp === detail.curve && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isAlmostEqualNumber(fraction, detail.fraction);
197366
- }
197367
197361
  /**
197368
197362
  * Record the pre-computed intersection between two curves. Filter by extension rules. Record with fraction mapping.
197369
197363
  * @param localFractionA intersection fraction local to the subcurve of cpA between fractionA0 and fractionA1
@@ -197384,14 +197378,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197384
197378
  intervalDetails.detailA.hasFraction1 &&
197385
197379
  intervalDetails.detailB.hasFraction1;
197386
197380
  if (isInterval) {
197387
- globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
197388
- globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
197389
- globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
197390
- globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
197381
+ globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
197382
+ globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
197383
+ globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
197384
+ globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
197391
197385
  }
197392
197386
  else {
197393
- globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
197394
- globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
197387
+ globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
197388
+ globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
197395
197389
  }
197396
197390
  // ignore duplicate of most recent pair
197397
197391
  const numPrevious = this._results.length;
@@ -197399,31 +197393,31 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197399
197393
  const oldDetailA = this._results[numPrevious - 1].detailA;
197400
197394
  const oldDetailB = this._results[numPrevious - 1].detailB;
197401
197395
  if (reversed) {
197402
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
197403
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
197396
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
197397
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
197404
197398
  return;
197405
197399
  }
197406
197400
  else {
197407
- if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
197408
- this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
197401
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
197402
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
197409
197403
  return;
197410
197404
  }
197411
197405
  }
197412
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
197413
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
197406
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
197407
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
197414
197408
  if (isInterval) {
197415
197409
  detailA.captureFraction1Point1(globalFractionA1, cpA.fractionToPoint(globalFractionA1));
197416
197410
  detailB.captureFraction1Point1(globalFractionB1, cpB.fractionToPoint(globalFractionB1));
197417
197411
  }
197418
197412
  else {
197419
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveIntervalRole.isolated);
197420
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveIntervalRole.isolated);
197413
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
197414
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
197421
197415
  }
197422
197416
  if (reversed) {
197423
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetailPair(detailB, detailA));
197417
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailB, detailA));
197424
197418
  }
197425
197419
  else {
197426
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_5__.CurveLocationDetailPair(detailA, detailB));
197420
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailA, detailB));
197427
197421
  }
197428
197422
  }
197429
197423
  /**
@@ -197447,11 +197441,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197447
197441
  // But the transverse intersector notion of coincidence is based on the determinant ratios, which are hard
197448
197442
  // to relate to physical tolerance.
197449
197443
  // So do the overlap first. This should do a quick exit in non-coincident case.
197450
- const overlap = this._coincidentGeometryContext.coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1);
197451
- if (overlap) {
197452
- this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
197444
+ const overlap = this._coincidentGeometryContext.coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1, false);
197445
+ if (overlap) { // the lines are coincident
197446
+ if (this._coincidentGeometryContext.clampCoincidentOverlapToSegmentBounds(overlap, pointA0, pointA1, pointB0, pointB1, extendA0, extendA1, extendB0, extendB1)) {
197447
+ this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
197448
+ }
197453
197449
  }
197454
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
197450
+ else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
197455
197451
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
197456
197452
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
197457
197453
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -197471,7 +197467,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197471
197467
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
197472
197468
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
197473
197469
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
197474
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
197470
+ const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
197475
197471
  if (fractionAB !== undefined) {
197476
197472
  const fractionA = fractionAB.x;
197477
197473
  const fractionB = fractionAB.y;
@@ -197514,17 +197510,17 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197514
197510
  const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
197515
197511
  const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
197516
197512
  const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
197517
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
197518
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
197519
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
197520
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197521
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197522
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197523
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197513
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
197514
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
197515
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
197516
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197517
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197518
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197519
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197524
197520
  for (let i = 0; i < numRoots; i++) {
197525
197521
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
197526
197522
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
197527
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
197523
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
197528
197524
  if (lineFraction !== undefined &&
197529
197525
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
197530
197526
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -197540,19 +197536,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197540
197536
  pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
197541
197537
  pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
197542
197538
  }
197543
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
197544
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
197545
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
197546
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197547
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197548
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
197549
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197539
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
197540
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
197541
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
197542
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197543
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197544
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
197545
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
197550
197546
  const lineFractionTol = 1.0e-10;
197551
197547
  const arcFractionTol = 1.0e-7;
197552
197548
  for (let i = 0; i < numRoots; i++) {
197553
197549
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
197554
197550
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
197555
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197551
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
197556
197552
  if (lineFraction !== undefined &&
197557
197553
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
197558
197554
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -197573,7 +197569,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197573
197569
  const localB = inverseA.multiplyMatrixMatrix(matrixB); // localB->localA transform
197574
197570
  const ellipseRadians = [];
197575
197571
  const circleRadians = [];
197576
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
197572
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
197577
197573
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
197578
197574
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
197579
197575
  ellipseRadians, circleRadians);
@@ -197604,14 +197600,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197604
197600
  if (this._worldToLocalPerspective) {
197605
197601
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
197606
197602
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
197607
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197608
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
197603
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197604
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
197609
197605
  }
197610
197606
  else {
197611
197607
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
197612
197608
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
197613
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197614
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
197609
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197610
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
197615
197611
  }
197616
197612
  const conditionA = matrixA.conditionNumber();
197617
197613
  const conditionB = matrixB.conditionNumber();
@@ -197641,11 +197637,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197641
197637
  let matrixA;
197642
197638
  if (this._worldToLocalPerspective) {
197643
197639
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
197644
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197640
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
197645
197641
  }
197646
197642
  else {
197647
197643
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
197648
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197644
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
197649
197645
  }
197650
197646
  // The worldToLocal has moved the arc vectors into local space.
197651
197647
  // matrixA captures the xyw parts (ignoring z)
@@ -197656,7 +197652,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197656
197652
  const orderF = cpB.order; // order of the beziers for simple coordinates
197657
197653
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
197658
197654
  const coffF = new Float64Array(orderF);
197659
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderG);
197655
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderG);
197660
197656
  const axx = matrixAInverse.at(0, 0);
197661
197657
  const axy = matrixAInverse.at(0, 1);
197662
197658
  const axz = 0.0;
@@ -197727,13 +197723,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197727
197723
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
197728
197724
  reversed) {
197729
197725
  if (!this._xyzwA0)
197730
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
197726
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
197731
197727
  if (!this._xyzwA1)
197732
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
197728
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
197733
197729
  if (!this._xyzwPlane)
197734
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
197730
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
197735
197731
  if (!this._xyzwB)
197736
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
197732
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
197737
197733
  /*
197738
197734
  const roots = univariateBezierG.roots(0.0, true);
197739
197735
  if (roots) {
@@ -197759,7 +197755,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197759
197755
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
197760
197756
  f1 = i * df;
197761
197757
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
197762
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
197758
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
197763
197759
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
197764
197760
  let errors = 0;
197765
197761
  const roots = univariateBezierB.roots(0.0, true);
@@ -197767,11 +197763,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197767
197763
  for (const r of roots) {
197768
197764
  let bezierBFraction = r;
197769
197765
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
197770
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
197771
- if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
197772
- let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(f0, segmentAFraction, f1);
197766
+ const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
197767
+ if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
197768
+ let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(f0, segmentAFraction, f1);
197773
197769
  const xyMatchingFunction = new BezierBezierIntersectionXYRRToRRD(bezierA, bezierB);
197774
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_0__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
197770
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
197775
197771
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
197776
197772
  if (newtonSearcher.runIterations()) {
197777
197773
  bezierAFraction = newtonSearcher.getU();
@@ -197814,8 +197810,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197814
197810
  const rangeB = this.getRanges(bezierSpanB);
197815
197811
  const orderA = bcurveA.order;
197816
197812
  const orderB = bcurveB.order;
197817
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderA);
197818
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_9__.UnivariateBezier(orderB);
197813
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderA);
197814
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderB);
197819
197815
  for (let a = 0; a < numA; a++) {
197820
197816
  for (let b = 0; b < numB; b++) {
197821
197817
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -197839,7 +197835,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197839
197835
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
197840
197836
  if (this._worldToLocalAffine)
197841
197837
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
197842
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createFromPointAndWeight(xyz, w);
197838
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createFromPointAndWeight(xyz, w);
197843
197839
  }
197844
197840
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
197845
197841
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -197863,7 +197859,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197863
197859
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB, reversed) {
197864
197860
  const pointA0H = this.projectPoint(pointA0);
197865
197861
  const pointA1H = this.projectPoint(pointA1);
197866
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
197862
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
197867
197863
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
197868
197864
  // NOW .. we have a plane in world space. Intersect it with the bspline:
197869
197865
  const intersections = [];
@@ -197875,10 +197871,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197875
197871
  const fractionB = detail.fraction;
197876
197872
  const curvePoint = detail.point;
197877
197873
  const curvePointH = this.projectPoint(curvePoint);
197878
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
197879
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
197880
- this.acceptFraction(extendB, fractionB, extendB)) {
197881
- this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
197874
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
197875
+ if (lineFraction !== undefined) {
197876
+ if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB, fractionB, extendB)) {
197877
+ this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
197878
+ }
197882
197879
  }
197883
197880
  }
197884
197881
  }
@@ -197979,72 +197976,130 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
197979
197976
  transform.multiplyPoint3d(pointB0, this._workPointB0);
197980
197977
  transform.multiplyPoint3d(pointB1, this._workPointB1);
197981
197978
  }
197979
+ /** Low level dispatch of curve collection. */
197980
+ dispatchCurveCollection(geomA, geomAHandler) {
197981
+ const geomB = this._geometryB; // save
197982
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
197983
+ return;
197984
+ for (const child of geomB.children) {
197985
+ this.resetGeometry(child);
197986
+ geomAHandler(geomA);
197987
+ }
197988
+ this._geometryB = geomB; // restore
197989
+ }
197990
+ /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
197991
+ dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
197992
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex))
197993
+ return;
197994
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
197995
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
197996
+ return;
197997
+ }
197998
+ const index0 = this._results.length;
197999
+ const geomB = this._geometryB; // save
198000
+ for (const child of geomB.path.children) {
198001
+ this.resetGeometry(child);
198002
+ geomAHandler(geomA);
198003
+ }
198004
+ this.resetGeometry(geomB); // restore
198005
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
198006
+ }
197982
198007
  /** Double dispatch handler for strongly typed segment. */
197983
198008
  handleLineSegment3d(segmentA) {
197984
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
198009
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
197985
198010
  const segmentB = this._geometryB;
197986
198011
  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);
197987
198012
  }
197988
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
198013
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
197989
198014
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
197990
198015
  }
197991
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
198016
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
197992
198017
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
197993
198018
  }
197994
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
198019
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
197995
198020
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
197996
198021
  }
198022
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198023
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
198024
+ }
198025
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198026
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
198027
+ }
197997
198028
  return undefined;
197998
198029
  }
197999
198030
  /** Double dispatch handler for strongly typed linestring. */
198000
198031
  handleLineString3d(lsA) {
198001
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
198032
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198002
198033
  const lsB = this._geometryB;
198003
198034
  this.computeLineStringLineString(lsA, lsB, false);
198004
198035
  }
198005
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
198036
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198006
198037
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198007
198038
  }
198008
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
198039
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198009
198040
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198010
198041
  }
198011
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
198042
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
198012
198043
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
198013
198044
  }
198045
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198046
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
198047
+ }
198048
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198049
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
198050
+ }
198014
198051
  return undefined;
198015
198052
  }
198016
198053
  /** Double dispatch handler for strongly typed arc. */
198017
198054
  handleArc3d(arc0) {
198018
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
198055
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198019
198056
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
198020
198057
  }
198021
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
198058
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198022
198059
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
198023
198060
  }
198024
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
198061
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198025
198062
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
198026
198063
  }
198027
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3d) {
198064
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
198028
198065
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
198029
198066
  }
198067
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198068
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
198069
+ }
198070
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198071
+ this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
198072
+ }
198030
198073
  return undefined;
198031
198074
  }
198032
198075
  /** Double dispatch handler for strongly typed bspline curve. */
198033
198076
  handleBSplineCurve3d(curve) {
198034
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
198077
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
198035
198078
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
198036
198079
  }
198037
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_12__.LineString3d) {
198080
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
198038
198081
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
198039
198082
  }
198040
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_13__.Arc3d) {
198083
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
198041
198084
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
198042
198085
  }
198043
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_14__.BSplineCurve3dBase) {
198086
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
198044
198087
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
198045
198088
  }
198089
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
198090
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
198091
+ }
198092
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
198093
+ this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
198094
+ }
198046
198095
  return undefined;
198047
198096
  }
198097
+ /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
198098
+ handleCurveChainWithDistanceIndex(chain) {
198099
+ super.handleCurveChainWithDistanceIndex(chain);
198100
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
198101
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
198102
+ }
198048
198103
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
198049
198104
  handleBSplineCurve3dH(_curve) {
198050
198105
  /*
@@ -198063,19 +198118,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
198063
198118
  return undefined;
198064
198119
  }
198065
198120
  }
198066
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_15__.Vector2d.create();
198067
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
198068
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
198069
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
198070
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_10__.Point4d.create();
198071
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198072
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198073
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198074
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198075
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198076
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198077
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198078
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_16__.Point3d.create();
198121
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__.Vector2d.create();
198122
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198123
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198124
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198125
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
198126
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198127
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198128
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198129
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198130
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198131
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198132
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198133
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
198079
198134
 
198080
198135
 
198081
198136
 
@@ -198092,17 +198147,20 @@ __webpack_require__.r(__webpack_exports__);
198092
198147
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
198093
198148
  /* harmony export */ CurveCurveIntersectXYZ: () => (/* binding */ CurveCurveIntersectXYZ)
198094
198149
  /* harmony export */ });
198095
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
198096
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
198097
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
198098
- /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
198099
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
198100
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
198101
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
198102
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
198103
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
198104
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
198105
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
198150
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
198151
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
198152
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
198153
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
198154
+ /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
198155
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
198156
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
198157
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
198158
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
198159
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
198160
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
198161
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
198162
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
198163
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
198106
198164
  /*---------------------------------------------------------------------------------------------
198107
198165
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
198108
198166
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -198121,6 +198179,9 @@ __webpack_require__.r(__webpack_exports__);
198121
198179
 
198122
198180
 
198123
198181
 
198182
+
198183
+
198184
+
198124
198185
  // cspell:word XYRR
198125
198186
  /**
198126
198187
  * Handler class for XYZ intersections between _geometryB and another geometry.
@@ -198128,7 +198189,7 @@ __webpack_require__.r(__webpack_exports__);
198128
198189
  * * geometryB is saved for later reference.
198129
198190
  * @internal
198130
198191
  */
198131
- class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_0__.NullGeometryHandler {
198192
+ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.RecurseToCurvesGeometryHandler {
198132
198193
  /**
198133
198194
  * @param extendA flag to enable using extension of the other geometry.
198134
198195
  * @param geometryB second curve for intersection. Saved for reference by specific handler methods.
@@ -198141,6 +198202,10 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198141
198202
  this._extendB = extendB;
198142
198203
  this._results = [];
198143
198204
  }
198205
+ /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
198206
+ resetGeometry(geometryB) {
198207
+ this._geometryB = geometryB;
198208
+ }
198144
198209
  /**
198145
198210
  * Return the results structure for the intersection calculation, structured as an array of CurveLocationDetailPair.
198146
198211
  * @param reinitialize if true, a new results structure is created for use by later calls.
@@ -198165,21 +198230,21 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198165
198230
  * Record with fraction mapping.
198166
198231
  */
198167
198232
  recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, cpB, fractionB0, fractionB1, reversed) {
198168
- const globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
198169
- const globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
198170
- // ignore duplicate of most recent point . ..
198233
+ const globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
198234
+ const globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
198235
+ // ignore duplicate of most recent point
198171
198236
  const numPrevious = this._results.length;
198172
198237
  if (numPrevious > 0) {
198173
- const topFractionA = this._results[numPrevious - 1].detailA.fraction;
198174
- const topFractionB = this._results[numPrevious - 1].detailB.fraction;
198238
+ const oldDetailA = this._results[numPrevious - 1].detailA;
198239
+ const oldDetailB = this._results[numPrevious - 1].detailB;
198175
198240
  if (reversed) {
198176
- if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionA, globalFractionB) &&
198177
- _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionB, globalFractionA))
198241
+ if (oldDetailB.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
198242
+ oldDetailA.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
198178
198243
  return;
198179
198244
  }
198180
198245
  else {
198181
- if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionA, globalFractionA) &&
198182
- _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(topFractionB, globalFractionB))
198246
+ if (oldDetailA.isSameCurveAndFraction({ curve: cpA, fraction: globalFractionA }) &&
198247
+ oldDetailB.isSameCurveAndFraction({ curve: cpB, fraction: globalFractionB }))
198183
198248
  return;
198184
198249
  }
198185
198250
  }
@@ -198187,16 +198252,16 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198187
198252
  const pointB = cpB.fractionToPoint(globalFractionB);
198188
198253
  if (!pointA.isAlmostEqualMetric(pointB))
198189
198254
  return;
198190
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, pointA);
198191
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveIntervalRole.isolated);
198192
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, pointB);
198193
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveIntervalRole.isolated);
198255
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, pointA);
198256
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveIntervalRole.isolated);
198257
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, pointB);
198258
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveIntervalRole.isolated);
198194
198259
  if (reversed) {
198195
- const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetailPair(detailB, detailA);
198260
+ const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair(detailB, detailA);
198196
198261
  this._results.push(pair);
198197
198262
  }
198198
198263
  else {
198199
- const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_2__.CurveLocationDetailPair(detailA, detailB);
198264
+ const pair = new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair(detailA, detailB);
198200
198265
  this._results.push(pair);
198201
198266
  }
198202
198267
  }
@@ -198207,7 +198272,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198207
198272
  */
198208
198273
  computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
198209
198274
  const uv = CurveCurveIntersectXYZ._workVector2dA;
198210
- if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
198275
+ if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
198211
198276
  this.acceptFraction(extendA0, uv.x, extendA1) && this.acceptFraction(extendB0, uv.y, extendB1)) {
198212
198277
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
198213
198278
  }
@@ -198234,20 +198299,20 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198234
198299
  * @param vectorC second candidate for additional in-plane vector
198235
198300
  */
198236
198301
  createPlaneWithPreferredPerpendicular(origin, vectorA, cosineValue, vectorB, vectorC) {
198237
- cosineValue = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.restrictToInterval(Math.abs(cosineValue), 0.0, 1.0 - _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction);
198302
+ cosineValue = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.restrictToInterval(Math.abs(cosineValue), 0.0, 1.0 - _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallFraction);
198238
198303
  const dotAA = vectorA.magnitudeSquared();
198239
198304
  const dotBB = vectorB.magnitudeSquared();
198240
198305
  const dotAB = Math.abs(vectorA.dotProduct(vectorB));
198241
198306
  const cross = vectorA.unitCrossProduct(dotAB * dotAB <= cosineValue * cosineValue * dotAA * dotBB ? vectorB : vectorC);
198242
198307
  if (cross)
198243
- return _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(origin, cross);
198308
+ return _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(origin, cross);
198244
198309
  return undefined;
198245
198310
  }
198246
198311
  // Caller accesses data from a linestring or segment and passes it here.
198247
198312
  // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
198248
198313
  // The fraction and extend parameters allow all combinations to be passed in.
198249
198314
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
198250
- const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Vector3d.createStartEnd(pointA0, pointA1);
198315
+ const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(pointA0, pointA1);
198251
198316
  const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, 0.94, arc.perpendicularVector, arc.vector0);
198252
198317
  if (plane !== undefined) {
198253
198318
  const candidates = [];
@@ -198256,7 +198321,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198256
198321
  let linePoint;
198257
198322
  for (const c of candidates) {
198258
198323
  if (this.acceptFraction(extendB0, c.fraction, extendB1)) {
198259
- lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
198324
+ lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_4__.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
198260
198325
  if (lineFraction !== undefined) {
198261
198326
  linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
198262
198327
  if (linePoint.isAlmostEqualMetric(c.point)
@@ -198277,7 +198342,7 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198277
198342
  if (otherVectors !== undefined) {
198278
198343
  const ellipseRadians = [];
198279
198344
  const circleRadians = [];
198280
- _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);
198345
+ _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);
198281
198346
  for (let i = 0; i < ellipseRadians.length; i++) {
198282
198347
  const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
198283
198348
  const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
@@ -198297,8 +198362,8 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198297
198362
  // 2) accept points that appear in both intersection sets.
198298
198363
  // If arcs are in parallel planes -- no intersections.
198299
198364
  // If arcs are in the same plane -- xy intersection in that plane.
198300
- const planeA = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(cpA.center, cpA.perpendicularVector);
198301
- const planeB = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_4__.Plane3dByOriginAndUnitNormal.create(cpB.center, cpB.perpendicularVector);
198365
+ const planeA = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(cpA.center, cpA.perpendicularVector);
198366
+ const planeB = _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_5__.Plane3dByOriginAndUnitNormal.create(cpB.center, cpB.perpendicularVector);
198302
198367
  if (planeA === undefined || planeB === undefined)
198303
198368
  return;
198304
198369
  if (planeA.getNormalRef().isParallelTo(planeB.getNormalRef())) {
@@ -198699,72 +198764,130 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198699
198764
  }
198700
198765
  }
198701
198766
  }
198767
+ /** Low level dispatch of curve collection. */
198768
+ dispatchCurveCollection(geomA, geomAHandler) {
198769
+ const geomB = this._geometryB; // save
198770
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection))
198771
+ return;
198772
+ for (const child of geomB.children) {
198773
+ this.resetGeometry(child);
198774
+ geomAHandler(geomA);
198775
+ }
198776
+ this._geometryB = geomB; // restore
198777
+ }
198778
+ /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
198779
+ dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
198780
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex))
198781
+ return;
198782
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
198783
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
198784
+ return;
198785
+ }
198786
+ const index0 = this._results.length;
198787
+ const geomB = this._geometryB; // save
198788
+ for (const child of geomB.path.children) {
198789
+ this.resetGeometry(child);
198790
+ geomAHandler(geomA);
198791
+ }
198792
+ this.resetGeometry(geomB); // restore
198793
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
198794
+ }
198702
198795
  /** Double dispatch handler for strongly typed segment. */
198703
198796
  handleLineSegment3d(segmentA) {
198704
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
198797
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
198705
198798
  const segmentB = this._geometryB;
198706
198799
  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);
198707
198800
  }
198708
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
198801
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
198709
198802
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
198710
198803
  }
198711
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
198804
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
198712
198805
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
198713
198806
  }
198714
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
198807
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
198715
198808
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
198716
198809
  }
198810
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
198811
+ this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
198812
+ }
198813
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
198814
+ this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
198815
+ }
198717
198816
  return undefined;
198718
198817
  }
198719
198818
  /** double dispatch handler for strongly typed linestring. */
198720
198819
  handleLineString3d(lsA) {
198721
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
198820
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
198722
198821
  const lsB = this._geometryB;
198723
198822
  this.computeLineStringLineString(lsA, lsB, false);
198724
198823
  }
198725
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
198824
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
198726
198825
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198727
198826
  }
198728
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
198827
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
198729
198828
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
198730
198829
  }
198731
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
198830
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
198732
198831
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
198733
198832
  }
198833
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
198834
+ this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
198835
+ }
198836
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
198837
+ this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
198838
+ }
198734
198839
  return undefined;
198735
198840
  }
198736
198841
  /** Double dispatch handler for strongly typed arc. */
198737
198842
  handleArc3d(arc0) {
198738
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
198843
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
198739
198844
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
198740
198845
  }
198741
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
198846
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
198742
198847
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
198743
198848
  }
198744
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
198849
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
198745
198850
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
198746
198851
  }
198747
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3d) {
198852
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
198748
198853
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
198749
198854
  }
198855
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
198856
+ this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
198857
+ }
198858
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
198859
+ this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
198860
+ }
198750
198861
  return undefined;
198751
198862
  }
198752
198863
  /** Double dispatch handler for strongly typed bspline curve. */
198753
198864
  handleBSplineCurve3d(curve) {
198754
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d) {
198865
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d) {
198755
198866
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
198756
198867
  }
198757
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d) {
198868
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d) {
198758
198869
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
198759
198870
  }
198760
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_8__.Arc3d) {
198871
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_11__.Arc3d) {
198761
198872
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
198762
198873
  }
198763
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_9__.BSplineCurve3dBase) {
198874
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
198764
198875
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
198765
198876
  }
198877
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_7__.CurveCollection) {
198878
+ this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
198879
+ }
198880
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex) {
198881
+ this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
198882
+ }
198766
198883
  return undefined;
198767
198884
  }
198885
+ /** Double dispatch handler for strongly typed CurveChainWithDistanceIndex. */
198886
+ handleCurveChainWithDistanceIndex(chain) {
198887
+ super.handleCurveChainWithDistanceIndex(chain);
198888
+ // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
198889
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_8__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
198890
+ }
198768
198891
  /** Double dispatch handler for strongly typed homogeneous bspline curve. */
198769
198892
  handleBSplineCurve3dH(_curve) {
198770
198893
  /*
@@ -198783,11 +198906,11 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
198783
198906
  return undefined;
198784
198907
  }
198785
198908
  }
198786
- CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_10__.Vector2d.create();
198787
- CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
198788
- CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
198789
- CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
198790
- CurveCurveIntersectXYZ._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_5__.Point3d.create();
198909
+ CurveCurveIntersectXYZ._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_13__.Vector2d.create();
198910
+ CurveCurveIntersectXYZ._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
198911
+ CurveCurveIntersectXYZ._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
198912
+ CurveCurveIntersectXYZ._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
198913
+ CurveCurveIntersectXYZ._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
198791
198914
 
198792
198915
 
198793
198916
 
@@ -199152,10 +199275,9 @@ class MultiChainCollector {
199152
199275
  captureCurve(candidate) {
199153
199276
  if (candidate instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
199154
199277
  this.captureCurvePrimitive(candidate);
199155
- else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection && candidate.children !== undefined) {
199156
- for (const c of candidate.children) {
199278
+ else if (candidate instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_2__.CurveCollection) {
199279
+ for (const c of candidate.children)
199157
199280
  this.captureCurve(c);
199158
- }
199159
199281
  }
199160
199282
  }
199161
199283
  /** If allowed by the geometry type, move an endpoint. */
@@ -204786,9 +204908,7 @@ class CoincidentGeometryQuery {
204786
204908
  detail.point = pointA.interpolate(detail.fraction, pointB, detail.point);
204787
204909
  detail.point1 = pointA.interpolate(detail.fraction1, pointB, detail.point1);
204788
204910
  }
204789
- /** Return a curve location detail with projection of a `spacePoint` to the line segment with `pointA` and `pointB`
204790
- *
204791
- */
204911
+ /** Return a curve location detail with projection of a `spacePoint` to the line segment with `pointA` and `pointB` */
204792
204912
  projectPointToSegmentXY(spacePoint, pointA, pointB) {
204793
204913
  this._vectorU = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(pointA, pointB, this._vectorU);
204794
204914
  this._vectorV = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(pointA, spacePoint, this._vectorV);
@@ -204798,12 +204918,78 @@ class CoincidentGeometryQuery {
204798
204918
  return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetail.createCurveFractionPoint(undefined, fraction, pointA.interpolate(fraction, pointB));
204799
204919
  }
204800
204920
  /**
204801
- * * project `pointA0` and `pointA1` onto the segment with `pointB0` and `pointB1`
204802
- * * In the returned detail pair, the `detailA` has fractions along segmentA, and `detailB` has fractions along segment B
204921
+ * Given a detail pair representing the projection of each of two colinear line segments onto the other,
204922
+ * clamp the details (in place) to the line segments' endpoints according to the given flags.
204923
+ * @param overlap segment overlap as returned by [[coincidentSegmentRangeXY]], modified on return
204803
204924
  * @param pointA0 start point of segment A
204804
204925
  * @param pointA1 end point of segment A
204805
204926
  * @param pointB0 start point of segment B
204806
204927
  * @param pointB1 end point of segment B
204928
+ * @param extendA0 whether to extend segment A beyond its start
204929
+ * @param extendA1 whether to extend segment A beyond its end
204930
+ * @param extendB0 whether to extend segment B beyond its start
204931
+ * @param extendB1 whether to extend segment B beyond its end
204932
+ * @return reference to the input clamped in place, or undefined (leaving interval untouched) if clamping would result in empty interval.
204933
+ */
204934
+ clampCoincidentOverlapToSegmentBounds(overlap, pointA0, pointA1, pointB0, pointB1, extendA0 = false, extendA1 = false, extendB0 = false, extendB1 = false) {
204935
+ const rangeA = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(overlap.detailA.fraction, overlap.detailA.hasFraction1 ? overlap.detailA.fraction1 : overlap.detailA.fraction);
204936
+ const rangeB = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(overlap.detailB.fraction, overlap.detailB.hasFraction1 ? overlap.detailB.fraction1 : overlap.detailB.fraction);
204937
+ const reversed = rangeA.signedDelta() < 0.0;
204938
+ const updateIntervalFromRangesAndInterpolatedPoints = () => {
204939
+ const a0 = rangeA.x0;
204940
+ const a1 = rangeA.x1;
204941
+ const b0 = rangeB.x0;
204942
+ const b1 = rangeB.x1;
204943
+ CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(overlap.detailA, a0, a1, pointA0, pointA1, a0 > a1);
204944
+ CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(overlap.detailB, b0, b1, pointB0, pointB1, b0 > b1);
204945
+ return overlap;
204946
+ };
204947
+ const haveIntervalA = rangeA.clampDirectedTo01(!extendA0, !extendA1, false);
204948
+ const haveIntervalB = rangeB.clampDirectedTo01(!extendB0, !extendB1, false);
204949
+ if (haveIntervalA && haveIntervalB) {
204950
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(rangeA.absoluteDelta(), rangeB.absoluteDelta(), _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction))
204951
+ return updateIntervalFromRangesAndInterpolatedPoints(); // intersection of partially clamped ranges
204952
+ else if (rangeA.clampDirectedTo01(true, true, false) && rangeB.clampDirectedTo01(true, true, false))
204953
+ return updateIntervalFromRangesAndInterpolatedPoints(); // intersection of fully clamped ranges
204954
+ }
204955
+ const collapseToSingleton = (pointA, pointB, atStartA, atStartB) => {
204956
+ pointA.clone(overlap.detailA.point);
204957
+ pointB.clone(overlap.detailB.point);
204958
+ overlap.detailA.fraction = atStartA ? 0.0 : 1.0;
204959
+ overlap.detailB.fraction = atStartB ? 0.0 : 1.0;
204960
+ overlap.detailA.collapseToStart();
204961
+ overlap.detailB.collapseToStart();
204962
+ return overlap;
204963
+ };
204964
+ const haveSingletonA = rangeA.clampDirectedTo01(true, true, true);
204965
+ const haveSingletonB = rangeB.clampDirectedTo01(true, true, true);
204966
+ if (haveSingletonA && haveSingletonB) { // intersection is a single point
204967
+ const point1 = overlap.detailA.point1 ?? overlap.detailA.point;
204968
+ if (reversed) {
204969
+ if (overlap.detailA.point.isAlmostEqual(pointA0, this.tolerance))
204970
+ return collapseToSingleton(pointA0, pointB0, true, true);
204971
+ else if (point1.isAlmostEqual(pointA1, this.tolerance))
204972
+ return collapseToSingleton(pointA1, pointB1, false, false);
204973
+ }
204974
+ else {
204975
+ if (point1.isAlmostEqual(pointA0, this.tolerance))
204976
+ return collapseToSingleton(pointA0, pointB1, true, false);
204977
+ else if (overlap.detailA.point.isAlmostEqual(pointA1, this.tolerance))
204978
+ return collapseToSingleton(pointA1, pointB0, false, true);
204979
+ }
204980
+ }
204981
+ return undefined; // no intersection
204982
+ }
204983
+ /**
204984
+ * Compute whether two line segments have a coincident overlap in xy.
204985
+ * * Project `pointA0` and `pointA1` onto the line formed by `pointB0` and `pointB1` and vice versa
204986
+ * * If all projection distances are sufficiently small, return a detail pair recording the coincident interval, optionally clipped to segment bounds.
204987
+ * @param pointA0 start point of segment A
204988
+ * @param pointA1 end point of segment A
204989
+ * @param pointB0 start point of segment B
204990
+ * @param pointB1 end point of segment B
204991
+ * @param restrictToBounds whether to clip the coincident segment details to the segment bounds
204992
+ * @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
204807
204993
  */
204808
204994
  coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1, restrictToBounds = true) {
204809
204995
  const detailA0OnB = this.projectPointToSegmentXY(pointA0, pointB0, pointB1);
@@ -204822,46 +205008,8 @@ class CoincidentGeometryQuery {
204822
205008
  detailA0OnB.point1 = detailA1OnB.point; // capture -- detailA1OnB is not reused.
204823
205009
  detailB0OnA.fraction1 = detailB1OnA.fraction;
204824
205010
  detailB0OnA.point1 = detailB1OnA.point;
204825
- if (!restrictToBounds)
204826
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204827
- const segment = _Segment1d__WEBPACK_IMPORTED_MODULE_4__.Segment1d.create(detailB0OnA.fraction, detailB0OnA.fraction1);
204828
- if (segment.clampDirectedTo01()) {
204829
- const f0 = segment.x0;
204830
- const f1 = segment.x1;
204831
- const h0 = detailB0OnA.inverseInterpolateFraction(f0);
204832
- const h1 = detailB0OnA.inverseInterpolateFraction(f1);
204833
- // recompute fractions and points..
204834
- CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(detailB0OnA, f0, f1, pointA0, pointA1, f0 > f1);
204835
- CoincidentGeometryQuery.assignDetailInterpolatedFractionsAndPoints(detailA0OnB, h0, h1, pointB0, pointB1, h0 > h1);
204836
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204837
- }
204838
- else {
204839
- if (segment.signedDelta() < 0.0) {
204840
- if (detailB0OnA.point.isAlmostEqual(pointA0, this.tolerance)) {
204841
- detailB0OnA.collapseToStart();
204842
- detailA0OnB.collapseToStart();
204843
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204844
- }
204845
- if (detailB0OnA.point1.isAlmostEqual(pointA1, this.tolerance)) {
204846
- detailB0OnA.collapseToEnd();
204847
- detailA0OnB.collapseToEnd();
204848
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204849
- }
204850
- }
204851
- else {
204852
- if (detailB0OnA.point.isAlmostEqual(pointA1, this.tolerance)) {
204853
- detailB0OnA.collapseToStart();
204854
- detailA0OnB.collapseToEnd();
204855
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204856
- }
204857
- if (detailB0OnA.point1.isAlmostEqual(pointA0, this.tolerance)) {
204858
- detailB0OnA.collapseToEnd();
204859
- detailA0OnB.collapseToStart();
204860
- return _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
204861
- }
204862
- }
204863
- }
204864
- return undefined;
205011
+ const interval = _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_3__.CurveLocationDetailPair.createCapture(detailB0OnA, detailA0OnB);
205012
+ return restrictToBounds ? this.clampCoincidentOverlapToSegmentBounds(interval, pointA0, pointA1, pointB0, pointB1) : interval;
204865
205013
  }
204866
205014
  /**
204867
205015
  * Create a CurveLocationDetailPair for a coincident interval of two overlapping curves
@@ -221953,24 +222101,28 @@ class Segment1d {
221953
222101
  * * On output, it is restricted to (0,1) while maintaining direction
221954
222102
  * * If the clip leaves nothing, leave this segment alone and return false.
221955
222103
  * * If the clip leaves something, update this segment and return true.
222104
+ * @param clamp0 whether to clamp the smaller number to 0. Default value is true.
222105
+ * @param clamp1 whether to clamp the larger number to 1. Default value is true.
222106
+ * @param allowSingleton whether to return true for an interval clipped to a single number (x0 === x1). Default value is false.
222107
+ * @return whether this interval was clipped
221956
222108
  */
221957
- clampDirectedTo01() {
222109
+ clampDirectedTo01(clamp0 = true, clamp1 = true, allowSingleton = false) {
221958
222110
  let x0 = this.x0;
221959
222111
  let x1 = this.x1;
221960
222112
  if (x1 > x0) {
221961
- if (x0 < 0)
222113
+ if (x0 < 0 && clamp0)
221962
222114
  x0 = 0;
221963
- if (x1 > 1)
222115
+ if (x1 > 1 && clamp1)
221964
222116
  x1 = 1;
221965
- if (x0 >= x1)
222117
+ if (x0 > x1 || (x0 === x1 && !allowSingleton))
221966
222118
  return false;
221967
222119
  }
221968
222120
  else {
221969
- if (x0 > 1)
222121
+ if (x0 > 1 && clamp1)
221970
222122
  x0 = 1;
221971
- if (x1 < 0)
222123
+ if (x1 < 0 && clamp0)
221972
222124
  x1 = 0;
221973
- if (x0 <= x1)
222125
+ if (x0 < x1 || (x0 === x1 && !allowSingleton))
221974
222126
  return false;
221975
222127
  }
221976
222128
  this.set(x0, x1);
@@ -225358,7 +225510,7 @@ class Point4d extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__.Plane3d {
225358
225510
  return undefined;
225359
225511
  }
225360
225512
  /**
225361
- * * Return xyz projection of spacePoint to the plane of the DPoint4d (understood as coefficients, not point coordinates)
225513
+ * * Return xyz projection of spacePoint to the plane (this Point4d is understood as plane coefficients, not point coordinates)
225362
225514
  * * If the xyz part of `this` are all zero, (a clone of) `spacePoint` is returned.
225363
225515
  */
225364
225516
  projectPointToPlane(spacePoint, result) {
@@ -225878,14 +226030,15 @@ class BezierCoffs {
225878
226030
  for (let i = 0; i < this.coffs.length; i++)
225879
226031
  this.coffs[i] += a;
225880
226032
  }
225881
- /** Compute parameter values where the bezier value matches _targetValue.
226033
+ /** Compute parameter values where the bezier value matches targetValue.
225882
226034
  * * The base class finds roots only in 01. (i.e. ignores _restrictTo01)
225883
- * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
226035
+ * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
225884
226036
  */
225885
226037
  roots(targetValue, _restrictTo01) {
225886
226038
  const bezier = UnivariateBezier.create(this);
225887
226039
  bezier.addInPlace(-targetValue);
225888
- return UnivariateBezier.deflateRoots01(bezier);
226040
+ const roots = UnivariateBezier.deflateRoots(bezier);
226041
+ return this.filter01(roots, true);
225889
226042
  }
225890
226043
  /** Given an array of numbers, optionally remove those not in the 0..1 interval.
225891
226044
  * @param roots candidate values
@@ -225913,7 +226066,9 @@ class BezierCoffs {
225913
226066
  return undefined;
225914
226067
  }
225915
226068
  /** zero out all coefficients. */
225916
- zero() { this.coffs.fill(0); }
226069
+ zero() {
226070
+ this.coffs.fill(0);
226071
+ }
225917
226072
  /** Subdivide -- write results into caller-supplied bezier coffs (which must be of the same order) */
225918
226073
  subdivide(u, left, right) {
225919
226074
  const order = this.order;
@@ -226436,11 +226591,10 @@ class UnivariateBezier extends BezierCoffs {
226436
226591
  // first c0*b0 = a0
226437
226592
  // last c[orderC-1]*b1 = a[orderA-1]
226438
226593
  /** Find roots of a bezier polynomial
226439
- * * Only look for roots in 0..1
226440
226594
  * * As roots are found, deflate the polynomial.
226441
226595
  * * bezier coffs are changed (and order reduced) at each step.
226442
226596
  */
226443
- static deflateRoots01(bezier) {
226597
+ static deflateRoots(bezier) {
226444
226598
  const roots = [];
226445
226599
  const coffs = bezier.coffs;
226446
226600
  let a0, a1, segmentFraction, globalStartFraction, newtonFraction;
@@ -236019,7 +236173,7 @@ class PolyfaceClip {
236019
236173
  * * This method computes the portion of the input mesh that lies inside the clipper generated from sweeping the input region in the given direction.
236020
236174
  * @param mesh input mesh, untouched
236021
236175
  * @param region planar region to drape onto mesh
236022
- * @param sweepVector optional sweep direction for region; if undefined, region normal is used
236176
+ * @param sweepVector optional sweep direction for region, magnitude unused. If undefined, sweep is along the region normal.
236023
236177
  * @param options how to stroke the region boundary
236024
236178
  * @returns clipped facets. No other mesh data but vertices appear in output.
236025
236179
  */
@@ -236029,10 +236183,13 @@ class PolyfaceClip {
236029
236183
  const contour = _solid_SweepContour__WEBPACK_IMPORTED_MODULE_15__.SweepContour.createForLinearSweep(region);
236030
236184
  if (!contour)
236031
236185
  return undefined;
236032
- const clipper = contour.sweepToUnionOfConvexClipPlaneSets(sweepVector, false, false, options);
236186
+ let sweep = sweepVector;
236187
+ if (sweepVector && contour.localToWorld.matrix.dotColumnZ(sweepVector) < 0.0)
236188
+ sweep = sweepVector.scale(-1); // avoid inverted clipper
236189
+ const clipper = contour.sweepToUnionOfConvexClipPlaneSets(sweep, false, false, options);
236033
236190
  if (!clipper)
236034
236191
  return undefined;
236035
- const builders = ClippedPolyfaceBuilders.create(true);
236192
+ const builders = ClippedPolyfaceBuilders.create(true); // we want only the facets inside the clipper
236036
236193
  this.clipPolyfaceUnionOfConvexClipPlaneSetsToBuilders(mesh, clipper, builders, 1);
236037
236194
  return builders.claimPolyface(0, true);
236038
236195
  }
@@ -236883,7 +237040,7 @@ class PolyfaceQuery {
236883
237040
  return result;
236884
237041
  }
236885
237042
  /** Return the sum of all facet areas.
236886
- * @param vectorToEye compute facet area projected to a view plane perpendicular to this vector
237043
+ * @param vectorToEye compute sum of *signed* facet areas projected to a view plane perpendicular to this vector
236887
237044
  */
236888
237045
  static sumFacetAreas(source, vectorToEye) {
236889
237046
  let s = 0;
@@ -253598,9 +253755,11 @@ class SweepContour {
253598
253755
  }
253599
253756
  /**
253600
253757
  * Create a UnionOfConvexClipPlaneSets that clips to the swept faceted contour region.
253601
- * @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.
253758
+ * @param sweepVector the sweep direction and distance:
253759
+ * * If undefined, the sweep direction is along the contour normal and no caps are constructed (the sweep is infinite in both directions).
253760
+ * * If defined, the returned clipper is inverted if and only if sweepVector is in the opposite half-space as the computed contour normal.
253602
253761
  * @param cap0 construct a clip plane equal to the contour plane. Note that `sweepVector` must be defined.
253603
- * @param cap1 construct a clip plane parallel to the contour plane at the end of `sweepVector`. That is, sweepVector indicates both direction and distance.
253762
+ * @param cap1 construct a clip plane parallel to the contour plane at the end of `sweepVector`.
253604
253763
  * @param options how to stroke the contour
253605
253764
  * @returns clipper defined by faceting then sweeping the contour region
253606
253765
  */
@@ -280415,7 +280574,7 @@ const core_frontend_1 = __webpack_require__(/*! @itwin/core-frontend */ "../../c
280415
280574
  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");
280416
280575
  const core_common_1 = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
280417
280576
  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");
280418
- 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");
280577
+ 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");
280419
280578
  class IModelSession {
280420
280579
  constructor(iTwinId, imodelId, changesetId) {
280421
280580
  this.iTwinId = iTwinId;
@@ -280507,7 +280666,7 @@ const core_bentley_1 = __webpack_require__(/*! @itwin/core-bentley */ "../../cor
280507
280666
  const core_common_1 = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
280508
280667
  const core_frontend_1 = __webpack_require__(/*! @itwin/core-frontend */ "../../core/frontend/lib/esm/core-frontend.js");
280509
280668
  const frontend_1 = __webpack_require__(/*! @itwin/oidc-signin-tool/lib/cjs/frontend */ "../../common/temp/node_modules/.pnpm/@itwin+oidc-signin-tool@3.6.1_mdtbcqczpmeuv6yjzfaigjndwi/node_modules/@itwin/oidc-signin-tool/lib/cjs/frontend.js");
280510
- 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");
280669
+ 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");
280511
280670
  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");
280512
280671
  const Settings_1 = __webpack_require__(/*! ../../common/Settings */ "./lib/common/Settings.js");
280513
280672
  const SideChannels_1 = __webpack_require__(/*! ../../common/SideChannels */ "./lib/common/SideChannels.js");
@@ -280555,7 +280714,7 @@ class TestContext {
280555
280714
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
280556
280715
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
280557
280716
  await core_frontend_1.NoRenderApp.startup({
280558
- applicationVersion: "4.3.0-dev.0",
280717
+ applicationVersion: "4.3.0-dev.10",
280559
280718
  applicationId: this.settings.gprid,
280560
280719
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
280561
280720
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -294621,7 +294780,7 @@ var WidgetState;
294621
294780
 
294622
294781
  /***/ }),
294623
294782
 
294624
- /***/ "?1120":
294783
+ /***/ "?088e":
294625
294784
  /*!**********************!*\
294626
294785
  !*** util (ignored) ***!
294627
294786
  \**********************/
@@ -296263,9 +296422,9 @@ const gBase64 = {
296263
296422
 
296264
296423
  /***/ }),
296265
296424
 
296266
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
296425
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
296267
296426
  /*!******************************************************************************************************************************!*\
296268
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
296427
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
296269
296428
  \******************************************************************************************************************************/
296270
296429
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296271
296430
 
@@ -296282,9 +296441,9 @@ function _arrayLikeToArray(arr, len) {
296282
296441
 
296283
296442
  /***/ }),
296284
296443
 
296285
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
296444
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
296286
296445
  /*!****************************************************************************************************************************!*\
296287
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
296446
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
296288
296447
  \****************************************************************************************************************************/
296289
296448
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296290
296449
 
@@ -296299,9 +296458,9 @@ function _arrayWithHoles(arr) {
296299
296458
 
296300
296459
  /***/ }),
296301
296460
 
296302
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
296461
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
296303
296462
  /*!***********************************************************************************************************************************!*\
296304
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
296463
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
296305
296464
  \***********************************************************************************************************************************/
296306
296465
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296307
296466
 
@@ -296319,9 +296478,9 @@ function _assertThisInitialized(self) {
296319
296478
 
296320
296479
  /***/ }),
296321
296480
 
296322
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
296481
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
296323
296482
  /*!****************************************************************************************************************************!*\
296324
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
296483
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
296325
296484
  \****************************************************************************************************************************/
296326
296485
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296327
296486
 
@@ -296338,9 +296497,9 @@ function _classCallCheck(instance, Constructor) {
296338
296497
 
296339
296498
  /***/ }),
296340
296499
 
296341
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js":
296500
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js":
296342
296501
  /*!*************************************************************************************************************************!*\
296343
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
296502
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
296344
296503
  \*************************************************************************************************************************/
296345
296504
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296346
296505
 
@@ -296349,7 +296508,7 @@ __webpack_require__.r(__webpack_exports__);
296349
296508
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296350
296509
  /* harmony export */ "default": () => (/* binding */ _createClass)
296351
296510
  /* harmony export */ });
296352
- /* 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");
296511
+ /* 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");
296353
296512
 
296354
296513
  function _defineProperties(target, props) {
296355
296514
  for (var i = 0; i < props.length; i++) {
@@ -296371,9 +296530,9 @@ function _createClass(Constructor, protoProps, staticProps) {
296371
296530
 
296372
296531
  /***/ }),
296373
296532
 
296374
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
296533
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
296375
296534
  /*!****************************************************************************************************************************!*\
296376
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
296535
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
296377
296536
  \****************************************************************************************************************************/
296378
296537
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296379
296538
 
@@ -296382,7 +296541,7 @@ __webpack_require__.r(__webpack_exports__);
296382
296541
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296383
296542
  /* harmony export */ "default": () => (/* binding */ _defineProperty)
296384
296543
  /* harmony export */ });
296385
- /* 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");
296544
+ /* 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");
296386
296545
 
296387
296546
  function _defineProperty(obj, key, value) {
296388
296547
  key = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(key);
@@ -296401,9 +296560,9 @@ function _defineProperty(obj, key, value) {
296401
296560
 
296402
296561
  /***/ }),
296403
296562
 
296404
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
296563
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
296405
296564
  /*!****************************************************************************************************************************!*\
296406
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
296565
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
296407
296566
  \****************************************************************************************************************************/
296408
296567
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296409
296568
 
@@ -296421,9 +296580,9 @@ function _getPrototypeOf(o) {
296421
296580
 
296422
296581
  /***/ }),
296423
296582
 
296424
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/inherits.js":
296583
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/inherits.js":
296425
296584
  /*!**********************************************************************************************************************!*\
296426
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
296585
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
296427
296586
  \**********************************************************************************************************************/
296428
296587
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296429
296588
 
@@ -296432,7 +296591,7 @@ __webpack_require__.r(__webpack_exports__);
296432
296591
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296433
296592
  /* harmony export */ "default": () => (/* binding */ _inherits)
296434
296593
  /* harmony export */ });
296435
- /* 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");
296594
+ /* 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");
296436
296595
 
296437
296596
  function _inherits(subClass, superClass) {
296438
296597
  if (typeof superClass !== "function" && superClass !== null) {
@@ -296453,9 +296612,9 @@ function _inherits(subClass, superClass) {
296453
296612
 
296454
296613
  /***/ }),
296455
296614
 
296456
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
296615
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
296457
296616
  /*!*****************************************************************************************************************************!*\
296458
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
296617
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
296459
296618
  \*****************************************************************************************************************************/
296460
296619
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296461
296620
 
@@ -296470,9 +296629,9 @@ function _iterableToArray(iter) {
296470
296629
 
296471
296630
  /***/ }),
296472
296631
 
296473
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
296632
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
296474
296633
  /*!*****************************************************************************************************************************!*\
296475
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
296634
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
296476
296635
  \*****************************************************************************************************************************/
296477
296636
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296478
296637
 
@@ -296487,9 +296646,9 @@ function _nonIterableRest() {
296487
296646
 
296488
296647
  /***/ }),
296489
296648
 
296490
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
296649
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
296491
296650
  /*!***************************************************************************************************************************************!*\
296492
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
296651
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
296493
296652
  \***************************************************************************************************************************************/
296494
296653
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296495
296654
 
@@ -296498,8 +296657,8 @@ __webpack_require__.r(__webpack_exports__);
296498
296657
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296499
296658
  /* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn)
296500
296659
  /* harmony export */ });
296501
- /* 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");
296502
- /* 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");
296660
+ /* 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");
296661
+ /* 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");
296503
296662
 
296504
296663
 
296505
296664
  function _possibleConstructorReturn(self, call) {
@@ -296513,9 +296672,9 @@ function _possibleConstructorReturn(self, call) {
296513
296672
 
296514
296673
  /***/ }),
296515
296674
 
296516
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
296675
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
296517
296676
  /*!****************************************************************************************************************************!*\
296518
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
296677
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
296519
296678
  \****************************************************************************************************************************/
296520
296679
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296521
296680
 
@@ -296534,9 +296693,9 @@ function _setPrototypeOf(o, p) {
296534
296693
 
296535
296694
  /***/ }),
296536
296695
 
296537
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toArray.js":
296696
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toArray.js":
296538
296697
  /*!*********************************************************************************************************************!*\
296539
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
296698
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
296540
296699
  \*********************************************************************************************************************/
296541
296700
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296542
296701
 
@@ -296545,10 +296704,10 @@ __webpack_require__.r(__webpack_exports__);
296545
296704
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296546
296705
  /* harmony export */ "default": () => (/* binding */ _toArray)
296547
296706
  /* harmony export */ });
296548
- /* 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");
296549
- /* 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");
296550
- /* 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");
296551
- /* 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");
296707
+ /* 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");
296708
+ /* 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");
296709
+ /* 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");
296710
+ /* 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");
296552
296711
 
296553
296712
 
296554
296713
 
@@ -296559,9 +296718,9 @@ function _toArray(arr) {
296559
296718
 
296560
296719
  /***/ }),
296561
296720
 
296562
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
296721
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
296563
296722
  /*!*************************************************************************************************************************!*\
296564
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
296723
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
296565
296724
  \*************************************************************************************************************************/
296566
296725
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296567
296726
 
@@ -296570,7 +296729,7 @@ __webpack_require__.r(__webpack_exports__);
296570
296729
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296571
296730
  /* harmony export */ "default": () => (/* binding */ _toPrimitive)
296572
296731
  /* harmony export */ });
296573
- /* 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");
296732
+ /* 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");
296574
296733
 
296575
296734
  function _toPrimitive(input, hint) {
296576
296735
  if ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input) !== "object" || input === null) return input;
@@ -296585,9 +296744,9 @@ function _toPrimitive(input, hint) {
296585
296744
 
296586
296745
  /***/ }),
296587
296746
 
296588
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
296747
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
296589
296748
  /*!***************************************************************************************************************************!*\
296590
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
296749
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
296591
296750
  \***************************************************************************************************************************/
296592
296751
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296593
296752
 
@@ -296596,8 +296755,8 @@ __webpack_require__.r(__webpack_exports__);
296596
296755
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296597
296756
  /* harmony export */ "default": () => (/* binding */ _toPropertyKey)
296598
296757
  /* harmony export */ });
296599
- /* 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");
296600
- /* 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");
296758
+ /* 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");
296759
+ /* 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");
296601
296760
 
296602
296761
 
296603
296762
  function _toPropertyKey(arg) {
@@ -296607,9 +296766,9 @@ function _toPropertyKey(arg) {
296607
296766
 
296608
296767
  /***/ }),
296609
296768
 
296610
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js":
296769
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js":
296611
296770
  /*!********************************************************************************************************************!*\
296612
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
296771
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
296613
296772
  \********************************************************************************************************************/
296614
296773
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296615
296774
 
@@ -296618,21 +296777,21 @@ __webpack_require__.r(__webpack_exports__);
296618
296777
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296619
296778
  /* harmony export */ "default": () => (/* binding */ _typeof)
296620
296779
  /* harmony export */ });
296621
- function _typeof(obj) {
296780
+ function _typeof(o) {
296622
296781
  "@babel/helpers - typeof";
296623
296782
 
296624
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
296625
- return typeof obj;
296626
- } : function (obj) {
296627
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
296628
- }, _typeof(obj);
296783
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
296784
+ return typeof o;
296785
+ } : function (o) {
296786
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
296787
+ }, _typeof(o);
296629
296788
  }
296630
296789
 
296631
296790
  /***/ }),
296632
296791
 
296633
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
296792
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
296634
296793
  /*!****************************************************************************************************************************************!*\
296635
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
296794
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.23.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
296636
296795
  \****************************************************************************************************************************************/
296637
296796
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
296638
296797
 
@@ -296641,7 +296800,7 @@ __webpack_require__.r(__webpack_exports__);
296641
296800
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
296642
296801
  /* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray)
296643
296802
  /* harmony export */ });
296644
- /* 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");
296803
+ /* 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");
296645
296804
 
296646
296805
  function _unsupportedIterableToArray(o, minLen) {
296647
296806
  if (!o) return;
@@ -297075,15 +297234,15 @@ __webpack_require__.r(__webpack_exports__);
297075
297234
  /* harmony export */ t: () => (/* binding */ t),
297076
297235
  /* harmony export */ use: () => (/* binding */ use)
297077
297236
  /* harmony export */ });
297078
- /* 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");
297079
- /* 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");
297080
- /* 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");
297081
- /* 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");
297082
- /* 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");
297083
- /* 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");
297084
- /* 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");
297085
- /* 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");
297086
- /* 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");
297237
+ /* 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");
297238
+ /* 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");
297239
+ /* 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");
297240
+ /* 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");
297241
+ /* 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");
297242
+ /* 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");
297243
+ /* 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");
297244
+ /* 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");
297245
+ /* 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");
297087
297246
 
297088
297247
 
297089
297248
 
@@ -299963,7 +300122,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
299963
300122
  /***/ ((module) => {
299964
300123
 
299965
300124
  "use strict";
299966
- 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"}}');
300125
+ 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"}}');
299967
300126
 
299968
300127
  /***/ }),
299969
300128