@ohif/app 3.13.0-beta.12 → 3.13.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{1403.bundle.bc464f86fca613e720ee.js → 1403.bundle.04951e42ca54dfd6e107.js} +33 -35
- package/dist/{1459.bundle.65f10b1a9d0ac23dfeea.js → 1459.bundle.a92f2e257fd06811e41f.js} +5 -6
- package/dist/{147.bundle.dca316a851f246b3add7.js → 147.bundle.8dd6a25071c60885fdc2.js} +4 -3
- package/dist/{1608.bundle.0687c661f1c9edfb3b8a.js → 1608.bundle.b9abbf4ed6cc2e491dc3.js} +6 -6
- package/dist/{1730.bundle.12a17675b5aefbb2a870.js → 1730.bundle.14d73e93a7e7f51c3b14.js} +32 -33
- package/dist/{1927.bundle.3050588e95f43cf57cdd.js → 1927.bundle.be67b3aafe238ca9f191.js} +27 -38
- package/dist/{1933.bundle.13b80f38d9087f34f437.js → 1933.bundle.d41f9fb235111463dda6.js} +9 -11
- package/dist/{2018.bundle.17c0416435df3e831ff8.js → 2018.bundle.acc76b4d1425b4da0b7f.js} +18 -19
- package/dist/{2108.bundle.e84aa8d858d8c4f2413e.js → 2108.bundle.f1ef8e8746eb3936bb47.js} +567 -556
- package/dist/{213.bundle.b446c61ab428370ddc68.js → 213.bundle.19ad9eeade4e5239ee8c.js} +3 -5
- package/dist/{3584.bundle.8cc0750425513433e9cc.js → 2199.bundle.974037f21bfd12c4e8af.js} +241 -2219
- package/dist/{2424.bundle.431b04eb2af0dc8ee505.js → 2424.bundle.874da475c5c93ec245ea.js} +3 -5
- package/dist/{2516.bundle.1ea0988d309a757bb6da.js → 2516.bundle.f62228e9a800de8d4b31.js} +6 -6
- package/dist/{2701.bundle.ec41d99d12e54f550e17.js → 2701.bundle.0ab3399a71aefee2ef01.js} +5 -5
- package/dist/{2842.bundle.860b9f10fcdd9656947a.js → 2816.bundle.838fa4d72921c026083c.js} +827 -2240
- package/dist/{3081.bundle.d72d24a8bc824a18f251.js → 3081.bundle.8fff6624e4a737946fab.js} +90 -143
- package/dist/{3343.bundle.d7578ce8f75d158c0bab.js → 3343.bundle.a4424b8418b8c0c1a9e4.js} +25 -25
- package/dist/{3461.bundle.97f3e31822ab273971ec.js → 3461.bundle.6ef9bb11c8e694dfdea2.js} +19 -23
- package/dist/{4202.bundle.5a0f8e4004c5d8a68548.js → 4202.bundle.4f76d3a50d6cf819fba0.js} +4 -4
- package/dist/{4019.bundle.83a604779f7da0101ced.js → 4287.bundle.87e14e648f2bce5e4176.js} +177 -202
- package/dist/{4775.bundle.000ac8bbba493dbb4c87.js → 4775.bundle.0f20ce4a1f5fb1ec5d69.js} +34 -36
- package/dist/{4819.bundle.eaf9cb49a157d5e012ad.js → 4819.bundle.3a97a9b0d5764ca865d1.js} +25 -26
- package/dist/{5028.bundle.ee5f793ab51a51602ee6.js → 5028.bundle.6f59933051687e132169.js} +7 -9
- package/dist/{5261.bundle.6e1a017f8f1027557f5b.js → 5261.bundle.2655560097e9250eac44.js} +412 -345
- package/dist/{5457.bundle.4cbb485ca479065eb217.js → 5457.bundle.9a813439c659be02593f.js} +16 -23
- package/dist/{5462.bundle.21beddaca145b7465c72.js → 5462.bundle.d5bb9b3ddc510fea141f.js} +1106 -1030
- package/dist/{5485.bundle.73a2247ebbc9d95721e5.js → 5485.bundle.2f5f109996b224da8827.js} +14 -29
- package/dist/{5491.bundle.2e01dd7ad29e4cc01bc1.js → 5491.bundle.4866d2ecb20dd089e071.js} +54 -51
- package/dist/5724.bundle.62ea5c07c7809ab4cd74.js +297 -0
- package/dist/5724.css +2 -0
- package/dist/{5802.bundle.783100f1bd99eab393c9.js → 5802.bundle.3ead9f3effbd6b8ccdf9.js} +5 -4
- package/dist/{5830.bundle.b073c265c4fcea1afff3.js → 5830.bundle.791019deddd536980a11.js} +3 -3
- package/dist/{5858.bundle.ff6b340cf7457db76a1a.js → 5858.bundle.466e58128de344ab53f3.js} +90 -86
- package/dist/{6027.bundle.da0a0aa13375efe8f7ce.js → 6027.bundle.33fabf45c75eaa971278.js} +3 -5
- package/dist/{6163.bundle.629b58f2de9d74fb25f6.js → 6163.bundle.33150b6f7ab4e1fd161e.js} +29 -31
- package/dist/{997.bundle.822b33e561263084e18c.js → 6280.bundle.f22f9955eb906e1d7da8.js} +1535 -931
- package/dist/{6347.bundle.784c48912700f281de1d.js → 6347.bundle.f8393c20d5159ed41b64.js} +36 -36
- package/dist/{6354.bundle.c387737dc09c9cab4ff2.js → 6354.bundle.d8a592b03e9a5b7a66c2.js} +102 -96
- package/dist/{6376.bundle.9cb74d7bc08476e2f1a7.js → 6376.bundle.839c708f2fc41e76ee58.js} +6 -6
- package/dist/{6409.bundle.b36048896cb11c8571fb.js → 6409.bundle.24edbaa283b7c521b8f7.js} +73 -73
- package/dist/6939.bundle.41fbdef87597b5172ec6.js +3 -3
- package/dist/7159.bundle.fb9df255868960f69765.js +3 -3
- package/dist/{7190.bundle.e8f0193e0e06472f795c.js → 7190.bundle.6314b558746e394aeb0e.js} +40 -40
- package/dist/{732.bundle.6978ac30a1e36abf06db.js → 732.bundle.ea6f9d8504e37e01a208.js} +5 -13
- package/dist/{7431.bundle.b01791d10e6cf9f503b0.js → 7431.bundle.b31ebb4a2625e89d864e.js} +28 -28
- package/dist/{7639.bundle.15066a5fdf94f4c80517.js → 7639.bundle.fa0de99e70c787d804ab.js} +3 -5
- package/dist/7758.bundle.c8d106364298e7d288f0.js +3 -3
- package/dist/{8094.bundle.5c44190a325ac23e3e5c.js → 8094.bundle.148a66619607e37cbf19.js} +3 -4
- package/dist/{8305.bundle.83d155a6e9af37e695b3.js → 8305.bundle.14b4adf447a72af75367.js} +8 -10
- package/dist/{85.bundle.d52b16b74abdd156a542.js → 85.bundle.ad3f6873b68d89769f90.js} +3 -5
- package/dist/{8558.bundle.22404255f312b2a8fa94.js → 8558.bundle.ffc62338f308fba20eb8.js} +28 -30
- package/dist/{8583.bundle.24f7fd99be47bd7d5fa0.js → 8583.bundle.ef7116322a1188c2e87a.js} +13 -15
- package/dist/{4410.bundle.c5224cd7d6238a7d4660.js → 8665.bundle.dc56c125411422f9f686.js} +3459 -1386
- package/dist/{9195.bundle.72b8ef180ca9dfa3667b.js → 9195.bundle.ae1aa33c8d49d5ef7155.js} +56 -79
- package/dist/{7412.bundle.fab1742191b7fe937330.js → 9205.bundle.2a2f38a4ee23647f5fa4.js} +3162 -1074
- package/dist/{9845.bundle.255e7c7f7a88193b4e47.js → 9845.bundle.31f3e7e2d28fa6033ee5.js} +6 -6
- package/dist/{9862.bundle.3a8958a82c572015d25d.js → 9862.bundle.73ea2a7703bf1bb96275.js} +6 -4
- package/dist/{9927.bundle.154a9203072f76739dca.js → 9927.bundle.3a9132f2abe1032a9f1d.js} +3 -5
- package/dist/app.bundle.css +1 -1
- package/dist/{app.bundle.12c7f92262288947f525.js → app.bundle.e63b64ca34760589a341.js} +62020 -61152
- package/dist/{polySeg.bundle.a5aa9130b4191253c410.js → compute.bundle.73440405025831e0e072.js} +8 -20
- package/dist/{histogram-worker.bundle.d4e40a8018d2698b072e.js → histogram-worker.bundle.5b679ce4142c803c80a4.js} +11 -23
- package/dist/index.html +1 -1
- package/dist/{interpolation.bundle.c70cb95d164dc494e6dc.js → interpolation.bundle.072a28b303f2dbafe05c.js} +14 -26
- package/dist/{compute.bundle.64280c7af19ff567465f.js → polySeg.bundle.6373e24bd578ae0d41eb.js} +10 -22
- package/dist/sw.js +1 -1
- package/package.json +20 -20
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2199],{
|
|
3
3
|
|
|
4
|
-
/***/ 74690
|
|
5
|
-
|
|
4
|
+
/***/ 74690
|
|
5
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
// EXPORTS
|
|
@@ -17,8 +17,8 @@ var enums = __webpack_require__(29857);
|
|
|
17
17
|
var eventListeners = __webpack_require__(21418);
|
|
18
18
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/mouse/mouseDownListener.js
|
|
19
19
|
var mouseDownListener = __webpack_require__(68014);
|
|
20
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js +
|
|
21
|
-
var ToolGroupManager = __webpack_require__(
|
|
20
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js + 7 modules
|
|
21
|
+
var ToolGroupManager = __webpack_require__(7754);
|
|
22
22
|
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js
|
|
23
23
|
|
|
24
24
|
|
|
@@ -135,10 +135,10 @@ function keyUp(evt) {
|
|
|
135
135
|
|
|
136
136
|
|
|
137
137
|
|
|
138
|
-
/***/ }
|
|
138
|
+
/***/ },
|
|
139
139
|
|
|
140
|
-
/***/ 40100
|
|
141
|
-
|
|
140
|
+
/***/ 40100
|
|
141
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
142
142
|
|
|
143
143
|
|
|
144
144
|
// EXPORTS
|
|
@@ -183,8 +183,8 @@ var filterToolsWithAnnotationsForElement = __webpack_require__(57725);
|
|
|
183
183
|
var filterMoveableAnnotationTools = __webpack_require__(25972);
|
|
184
184
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/index.js + 18 modules
|
|
185
185
|
var eventListeners = __webpack_require__(21418);
|
|
186
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js +
|
|
187
|
-
var ToolGroupManager = __webpack_require__(
|
|
186
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js + 7 modules
|
|
187
|
+
var ToolGroupManager = __webpack_require__(7754);
|
|
188
188
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/shared/getMouseModifier.js
|
|
189
189
|
var getMouseModifier = __webpack_require__(76910);
|
|
190
190
|
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js
|
|
@@ -499,17 +499,17 @@ function mouseWheel(evt) {
|
|
|
499
499
|
|
|
500
500
|
|
|
501
501
|
|
|
502
|
-
/***/ }
|
|
502
|
+
/***/ },
|
|
503
503
|
|
|
504
|
-
/***/ 96198
|
|
505
|
-
|
|
504
|
+
/***/ 96198
|
|
505
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
506
506
|
|
|
507
507
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
508
508
|
/* harmony export */ A: () => (/* binding */ customCallbackHandler)
|
|
509
509
|
/* harmony export */ });
|
|
510
510
|
/* harmony import */ var _store_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85204);
|
|
511
511
|
/* harmony import */ var _enums_ToolModes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49892);
|
|
512
|
-
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
512
|
+
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7754);
|
|
513
513
|
|
|
514
514
|
|
|
515
515
|
|
|
@@ -542,15 +542,15 @@ function customCallbackHandler(handlerType, customFunction, evt) {
|
|
|
542
542
|
}
|
|
543
543
|
|
|
544
544
|
|
|
545
|
-
/***/ }
|
|
545
|
+
/***/ },
|
|
546
546
|
|
|
547
|
-
/***/ 70333
|
|
548
|
-
|
|
547
|
+
/***/ 70333
|
|
548
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
549
549
|
|
|
550
550
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
551
551
|
/* harmony export */ A: () => (/* binding */ getToolsWithModesForMouseEvent)
|
|
552
552
|
/* harmony export */ });
|
|
553
|
-
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
553
|
+
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7754);
|
|
554
554
|
|
|
555
555
|
function getToolsWithModesForMouseEvent(evt, modesFilter, evtButton) {
|
|
556
556
|
const { renderingEngineId, viewportId } = evt.detail;
|
|
@@ -576,10 +576,10 @@ function getToolsWithModesForMouseEvent(evt, modesFilter, evtButton) {
|
|
|
576
576
|
}
|
|
577
577
|
|
|
578
578
|
|
|
579
|
-
/***/ }
|
|
579
|
+
/***/ },
|
|
580
580
|
|
|
581
|
-
/***/ 84971
|
|
582
|
-
|
|
581
|
+
/***/ 84971
|
|
582
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
583
583
|
|
|
584
584
|
|
|
585
585
|
// EXPORTS
|
|
@@ -612,8 +612,8 @@ var filterMoveableAnnotationTools = __webpack_require__(25972);
|
|
|
612
612
|
var getMouseModifier = __webpack_require__(76910);
|
|
613
613
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/index.js + 18 modules
|
|
614
614
|
var eventListeners = __webpack_require__(21418);
|
|
615
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js +
|
|
616
|
-
var ToolGroupManager = __webpack_require__(
|
|
615
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/ToolGroupManager/index.js + 7 modules
|
|
616
|
+
var ToolGroupManager = __webpack_require__(7754);
|
|
617
617
|
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.js
|
|
618
618
|
|
|
619
619
|
|
|
@@ -810,10 +810,10 @@ const touchPress = customCallbackHandler/* default */.A.bind(null, 'Touch', 'tou
|
|
|
810
810
|
|
|
811
811
|
|
|
812
812
|
|
|
813
|
-
/***/ }
|
|
813
|
+
/***/ },
|
|
814
814
|
|
|
815
|
-
/***/ 39595
|
|
816
|
-
|
|
815
|
+
/***/ 39595
|
|
816
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
817
817
|
|
|
818
818
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
819
819
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -834,10 +834,10 @@ function disable(element) {
|
|
|
834
834
|
});
|
|
835
835
|
|
|
836
836
|
|
|
837
|
-
/***/ }
|
|
837
|
+
/***/ },
|
|
838
838
|
|
|
839
|
-
/***/ 40776
|
|
840
|
-
|
|
839
|
+
/***/ 40776
|
|
840
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
841
841
|
|
|
842
842
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
843
843
|
/* harmony export */ Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
@@ -912,10 +912,10 @@ function resetModifierKey() {
|
|
|
912
912
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (keyListener);
|
|
913
913
|
|
|
914
914
|
|
|
915
|
-
/***/ }
|
|
915
|
+
/***/ },
|
|
916
916
|
|
|
917
|
-
/***/ 99019
|
|
918
|
-
|
|
917
|
+
/***/ 99019
|
|
918
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
919
919
|
|
|
920
920
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
921
921
|
/* harmony export */ A: () => (/* binding */ getMouseEventPoints)
|
|
@@ -954,10 +954,10 @@ function _clientToPoint(evt) {
|
|
|
954
954
|
}
|
|
955
955
|
|
|
956
956
|
|
|
957
|
-
/***/ }
|
|
957
|
+
/***/ },
|
|
958
958
|
|
|
959
|
-
/***/ 91099
|
|
960
|
-
|
|
959
|
+
/***/ 91099
|
|
960
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
961
961
|
|
|
962
962
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
963
963
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -999,10 +999,10 @@ function mouseDoubleClickListener(evt) {
|
|
|
999
999
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mouseDoubleClickListener);
|
|
1000
1000
|
|
|
1001
1001
|
|
|
1002
|
-
/***/ }
|
|
1002
|
+
/***/ },
|
|
1003
1003
|
|
|
1004
|
-
/***/ 68014
|
|
1005
|
-
|
|
1004
|
+
/***/ 68014
|
|
1005
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1006
1006
|
|
|
1007
1007
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1008
1008
|
/* harmony export */ Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
@@ -1280,10 +1280,10 @@ function mouseDoubleClickIgnoreListener(evt) {
|
|
|
1280
1280
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mouseDownListener);
|
|
1281
1281
|
|
|
1282
1282
|
|
|
1283
|
-
/***/ }
|
|
1283
|
+
/***/ },
|
|
1284
1284
|
|
|
1285
|
-
/***/ 41343
|
|
1286
|
-
|
|
1285
|
+
/***/ 41343
|
|
1286
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1287
1287
|
|
|
1288
1288
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1289
1289
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -1321,10 +1321,10 @@ function mouseMoveListener(evt) {
|
|
|
1321
1321
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mouseMoveListener);
|
|
1322
1322
|
|
|
1323
1323
|
|
|
1324
|
-
/***/ }
|
|
1324
|
+
/***/ },
|
|
1325
1325
|
|
|
1326
|
-
/***/ 41666
|
|
1327
|
-
|
|
1326
|
+
/***/ 41666
|
|
1327
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1328
1328
|
|
|
1329
1329
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1330
1330
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -1378,10 +1378,10 @@ function enable(element) {
|
|
|
1378
1378
|
});
|
|
1379
1379
|
|
|
1380
1380
|
|
|
1381
|
-
/***/ }
|
|
1381
|
+
/***/ },
|
|
1382
1382
|
|
|
1383
|
-
/***/ 82603
|
|
1384
|
-
|
|
1383
|
+
/***/ 82603
|
|
1384
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1385
1385
|
|
|
1386
1386
|
|
|
1387
1387
|
// EXPORTS
|
|
@@ -1722,10 +1722,10 @@ function _updateTouchEventsLastPoints(element, lastPoints) {
|
|
|
1722
1722
|
/* harmony default export */ const touch_touchStartListener = (touchStartListener);
|
|
1723
1723
|
|
|
1724
1724
|
|
|
1725
|
-
/***/ }
|
|
1725
|
+
/***/ },
|
|
1726
1726
|
|
|
1727
|
-
/***/ 17806
|
|
1728
|
-
|
|
1727
|
+
/***/ 17806
|
|
1728
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1729
1729
|
|
|
1730
1730
|
|
|
1731
1731
|
// EXPORTS
|
|
@@ -1826,10 +1826,10 @@ function wheelListener(evt) {
|
|
|
1826
1826
|
/* harmony default export */ const wheel_wheelListener = (wheelListener);
|
|
1827
1827
|
|
|
1828
1828
|
|
|
1829
|
-
/***/ }
|
|
1829
|
+
/***/ },
|
|
1830
1830
|
|
|
1831
|
-
/***/ 6802
|
|
1832
|
-
|
|
1831
|
+
/***/ 6802
|
|
1832
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1833
1833
|
|
|
1834
1834
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1835
1835
|
/* harmony export */ O8: () => (/* reexport safe */ _annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__.removeAnnotation),
|
|
@@ -1850,10 +1850,10 @@ function wheelListener(evt) {
|
|
|
1850
1850
|
|
|
1851
1851
|
|
|
1852
1852
|
|
|
1853
|
-
/***/ }
|
|
1853
|
+
/***/ },
|
|
1854
1854
|
|
|
1855
|
-
/***/ 6273
|
|
1856
|
-
|
|
1855
|
+
/***/ 6273
|
|
1856
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1857
1857
|
|
|
1858
1858
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1859
1859
|
/* harmony export */ p: () => (/* binding */ convertStackToVolumeLabelmap)
|
|
@@ -1869,10 +1869,10 @@ async function convertStackToVolumeLabelmap(args) {
|
|
|
1869
1869
|
}
|
|
1870
1870
|
|
|
1871
1871
|
|
|
1872
|
-
/***/ }
|
|
1872
|
+
/***/ },
|
|
1873
1873
|
|
|
1874
|
-
/***/ 98149
|
|
1875
|
-
|
|
1874
|
+
/***/ 98149
|
|
1875
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1876
1876
|
|
|
1877
1877
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1878
1878
|
/* harmony export */ X: () => (/* binding */ updateStackSegmentationState)
|
|
@@ -1915,10 +1915,10 @@ async function updateStackSegmentationState({ segmentationId, viewportId, imageI
|
|
|
1915
1915
|
}
|
|
1916
1916
|
|
|
1917
1917
|
|
|
1918
|
-
/***/ }
|
|
1918
|
+
/***/ },
|
|
1919
1919
|
|
|
1920
|
-
/***/ 25972
|
|
1921
|
-
|
|
1920
|
+
/***/ 25972
|
|
1921
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1922
1922
|
|
|
1923
1923
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1924
1924
|
/* harmony export */ A: () => (/* binding */ filterMoveableAnnotationTools)
|
|
@@ -1945,10 +1945,10 @@ function filterMoveableAnnotationTools(element, ToolAndAnnotations, canvasCoords
|
|
|
1945
1945
|
}
|
|
1946
1946
|
|
|
1947
1947
|
|
|
1948
|
-
/***/ }
|
|
1948
|
+
/***/ },
|
|
1949
1949
|
|
|
1950
|
-
/***/ 57725
|
|
1951
|
-
|
|
1950
|
+
/***/ 57725
|
|
1951
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1952
1952
|
|
|
1953
1953
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1954
1954
|
/* harmony export */ A: () => (/* binding */ filterToolsWithAnnotationsForElement)
|
|
@@ -1978,10 +1978,10 @@ function filterToolsWithAnnotationsForElement(element, tools) {
|
|
|
1978
1978
|
}
|
|
1979
1979
|
|
|
1980
1980
|
|
|
1981
|
-
/***/ }
|
|
1981
|
+
/***/ },
|
|
1982
1982
|
|
|
1983
|
-
/***/ 35486
|
|
1984
|
-
|
|
1983
|
+
/***/ 35486
|
|
1984
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1985
1985
|
|
|
1986
1986
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1987
1987
|
/* harmony export */ A: () => (/* binding */ filterToolsWithMoveableHandles)
|
|
@@ -2009,10 +2009,10 @@ function filterToolsWithMoveableHandles(element, ToolAndAnnotations, canvasCoord
|
|
|
2009
2009
|
}
|
|
2010
2010
|
|
|
2011
2011
|
|
|
2012
|
-
/***/ }
|
|
2012
|
+
/***/ },
|
|
2013
2013
|
|
|
2014
|
-
/***/ 16175
|
|
2015
|
-
|
|
2014
|
+
/***/ 16175
|
|
2015
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2016
2016
|
|
|
2017
2017
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2018
2018
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -2021,7 +2021,7 @@ function filterToolsWithMoveableHandles(element, ToolAndAnnotations, canvasCoord
|
|
|
2021
2021
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15327);
|
|
2022
2022
|
/* harmony import */ var _distancePointToContour__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13271);
|
|
2023
2023
|
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74347);
|
|
2024
|
-
/* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
2024
|
+
/* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85895);
|
|
2025
2025
|
|
|
2026
2026
|
|
|
2027
2027
|
|
|
@@ -2101,10 +2101,10 @@ class CircleSculptCursor {
|
|
|
2101
2101
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CircleSculptCursor);
|
|
2102
2102
|
|
|
2103
2103
|
|
|
2104
|
-
/***/ }
|
|
2104
|
+
/***/ },
|
|
2105
2105
|
|
|
2106
|
-
/***/ 10639
|
|
2107
|
-
|
|
2106
|
+
/***/ 10639
|
|
2107
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2108
2108
|
|
|
2109
2109
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2110
2110
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -2401,15 +2401,15 @@ GrowCutBaseTool.toolName = 'GrowCutBaseTool';
|
|
|
2401
2401
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GrowCutBaseTool);
|
|
2402
2402
|
|
|
2403
2403
|
|
|
2404
|
-
/***/ }
|
|
2404
|
+
/***/ },
|
|
2405
2405
|
|
|
2406
|
-
/***/ 13271
|
|
2407
|
-
|
|
2406
|
+
/***/ 13271
|
|
2407
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2408
2408
|
|
|
2409
2409
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2410
2410
|
/* harmony export */ X: () => (/* binding */ distancePointToContour)
|
|
2411
2411
|
/* harmony export */ });
|
|
2412
|
-
/* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
2412
|
+
/* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85895);
|
|
2413
2413
|
|
|
2414
2414
|
const distancePointToContour = (viewport, annotation, coords) => {
|
|
2415
2415
|
if (!annotation?.data?.contour?.polyline?.length) {
|
|
@@ -2430,10 +2430,10 @@ const distancePointToContour = (viewport, annotation, coords) => {
|
|
|
2430
2430
|
};
|
|
2431
2431
|
|
|
2432
2432
|
|
|
2433
|
-
/***/ }
|
|
2433
|
+
/***/ },
|
|
2434
2434
|
|
|
2435
|
-
/***/ 47347
|
|
2436
|
-
|
|
2435
|
+
/***/ 47347
|
|
2436
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2437
2437
|
|
|
2438
2438
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2439
2439
|
/* harmony export */ M: () => (/* binding */ eraseInsideRectangle)
|
|
@@ -2455,132 +2455,16 @@ function eraseOutsideRectangle(enabledElement, operationData) {
|
|
|
2455
2455
|
}
|
|
2456
2456
|
|
|
2457
2457
|
|
|
2458
|
-
/***/ }
|
|
2458
|
+
/***/ },
|
|
2459
2459
|
|
|
2460
|
-
/***/
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
__webpack_require__.r(__webpack_exports__);
|
|
2464
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2465
|
-
/* harmony export */ checkStandardBasis: () => (/* binding */ checkStandardBasis),
|
|
2466
|
-
/* harmony export */ inverse3x3Matrix: () => (/* binding */ inverse3x3Matrix),
|
|
2467
|
-
/* harmony export */ rotatePoints: () => (/* binding */ rotatePoints)
|
|
2468
|
-
/* harmony export */ });
|
|
2469
|
-
function validate3x3Matrix(matrix) {
|
|
2470
|
-
if (!Array.isArray(matrix) || matrix.length !== 9) {
|
|
2471
|
-
throw new Error('Matrix must be an array of 9 numbers');
|
|
2472
|
-
}
|
|
2473
|
-
if (!matrix.every((n) => typeof n === 'number' && !isNaN(n))) {
|
|
2474
|
-
throw new Error('Matrix must contain only valid numbers');
|
|
2475
|
-
}
|
|
2476
|
-
}
|
|
2477
|
-
function inverse3x3Matrix(matrix) {
|
|
2478
|
-
validate3x3Matrix(matrix);
|
|
2479
|
-
const mat = [
|
|
2480
|
-
[matrix[0], matrix[1], matrix[2]],
|
|
2481
|
-
[matrix[3], matrix[4], matrix[5]],
|
|
2482
|
-
[matrix[6], matrix[7], matrix[8]],
|
|
2483
|
-
];
|
|
2484
|
-
const determinant = mat[0][0] * (mat[1][1] * mat[2][2] - mat[1][2] * mat[2][1]) -
|
|
2485
|
-
mat[0][1] * (mat[1][0] * mat[2][2] - mat[1][2] * mat[2][0]) +
|
|
2486
|
-
mat[0][2] * (mat[1][0] * mat[2][1] - mat[1][1] * mat[2][0]);
|
|
2487
|
-
if (Math.abs(determinant) < 1e-10) {
|
|
2488
|
-
throw new Error('Matrix is not invertible (determinant is zero)');
|
|
2489
|
-
}
|
|
2490
|
-
const adjugate = [
|
|
2491
|
-
[
|
|
2492
|
-
mat[1][1] * mat[2][2] - mat[1][2] * mat[2][1],
|
|
2493
|
-
-(mat[0][1] * mat[2][2] - mat[0][2] * mat[2][1]),
|
|
2494
|
-
mat[0][1] * mat[1][2] - mat[0][2] * mat[1][1],
|
|
2495
|
-
],
|
|
2496
|
-
[
|
|
2497
|
-
-(mat[1][0] * mat[2][2] - mat[1][2] * mat[2][0]),
|
|
2498
|
-
mat[0][0] * mat[2][2] - mat[0][2] * mat[2][0],
|
|
2499
|
-
-(mat[0][0] * mat[1][2] - mat[0][2] * mat[1][0]),
|
|
2500
|
-
],
|
|
2501
|
-
[
|
|
2502
|
-
mat[1][0] * mat[2][1] - mat[1][1] * mat[2][0],
|
|
2503
|
-
-(mat[0][0] * mat[2][1] - mat[0][1] * mat[2][0]),
|
|
2504
|
-
mat[0][0] * mat[1][1] - mat[0][1] * mat[1][0],
|
|
2505
|
-
],
|
|
2506
|
-
];
|
|
2507
|
-
const inverse = [];
|
|
2508
|
-
for (let i = 0; i < 3; i++) {
|
|
2509
|
-
for (let j = 0; j < 3; j++) {
|
|
2510
|
-
inverse.push(adjugate[i][j] / determinant);
|
|
2511
|
-
}
|
|
2512
|
-
}
|
|
2513
|
-
return inverse;
|
|
2514
|
-
}
|
|
2515
|
-
function normalizeVector(v) {
|
|
2516
|
-
const magnitude = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
|
|
2517
|
-
return v.map((component) => component / magnitude);
|
|
2518
|
-
}
|
|
2519
|
-
function checkStandardBasis(directions) {
|
|
2520
|
-
validate3x3Matrix(directions);
|
|
2521
|
-
const xVector = directions.slice(0, 3);
|
|
2522
|
-
const yVector = directions.slice(3, 6);
|
|
2523
|
-
const zVector = directions.slice(6, 9);
|
|
2524
|
-
const normalizedX = normalizeVector(xVector);
|
|
2525
|
-
const normalizedY = normalizeVector(yVector);
|
|
2526
|
-
const normalizedZ = normalizeVector(zVector);
|
|
2527
|
-
const standardBasis = {
|
|
2528
|
-
x: [1, 0, 0],
|
|
2529
|
-
y: [0, 1, 0],
|
|
2530
|
-
z: [0, 0, 1],
|
|
2531
|
-
};
|
|
2532
|
-
const epsilon = 1e-10;
|
|
2533
|
-
const isStandard = normalizedX.every((val, i) => Math.abs(val - standardBasis.x[i]) < epsilon) &&
|
|
2534
|
-
normalizedY.every((val, i) => Math.abs(val - standardBasis.y[i]) < epsilon) &&
|
|
2535
|
-
normalizedZ.every((val, i) => Math.abs(val - standardBasis.z[i]) < epsilon);
|
|
2536
|
-
const rotationMatrix = isStandard
|
|
2537
|
-
? [...standardBasis.x, ...standardBasis.y, ...standardBasis.z]
|
|
2538
|
-
: inverse3x3Matrix([...normalizedX, ...normalizedY, ...normalizedZ]);
|
|
2539
|
-
return {
|
|
2540
|
-
isStandard,
|
|
2541
|
-
rotationMatrix,
|
|
2542
|
-
};
|
|
2543
|
-
}
|
|
2544
|
-
function rotatePoint(point, origin, rotationMatrix) {
|
|
2545
|
-
const x = point[0] - origin[0];
|
|
2546
|
-
const y = point[1] - origin[1];
|
|
2547
|
-
const z = point[2] - origin[2];
|
|
2548
|
-
return [
|
|
2549
|
-
rotationMatrix[0] * x +
|
|
2550
|
-
rotationMatrix[1] * y +
|
|
2551
|
-
rotationMatrix[2] * z +
|
|
2552
|
-
origin[0],
|
|
2553
|
-
rotationMatrix[3] * x +
|
|
2554
|
-
rotationMatrix[4] * y +
|
|
2555
|
-
rotationMatrix[5] * z +
|
|
2556
|
-
origin[1],
|
|
2557
|
-
rotationMatrix[6] * x +
|
|
2558
|
-
rotationMatrix[7] * y +
|
|
2559
|
-
rotationMatrix[8] * z +
|
|
2560
|
-
origin[2],
|
|
2561
|
-
];
|
|
2562
|
-
}
|
|
2563
|
-
function rotatePoints(rotationMatrix, origin, points) {
|
|
2564
|
-
const rotatedPoints = [];
|
|
2565
|
-
for (let i = 0; i < points.length; i += 3) {
|
|
2566
|
-
const point = points.slice(i, i + 3);
|
|
2567
|
-
const rotated = rotatePoint(point, origin, rotationMatrix);
|
|
2568
|
-
rotatedPoints.push(...rotated);
|
|
2569
|
-
}
|
|
2570
|
-
return rotatedPoints;
|
|
2571
|
-
}
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
/***/ }),
|
|
2575
|
-
|
|
2576
|
-
/***/ 39848:
|
|
2577
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2460
|
+
/***/ 39848
|
|
2461
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2578
2462
|
|
|
2579
2463
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2580
2464
|
/* harmony export */ A: () => (/* binding */ getToolsWithModesForElement)
|
|
2581
2465
|
/* harmony export */ });
|
|
2582
2466
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
2583
|
-
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
2467
|
+
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7754);
|
|
2584
2468
|
|
|
2585
2469
|
|
|
2586
2470
|
function getToolsWithModesForElement(element, modesFilter) {
|
|
@@ -2607,10 +2491,10 @@ function getToolsWithModesForElement(element, modesFilter) {
|
|
|
2607
2491
|
}
|
|
2608
2492
|
|
|
2609
2493
|
|
|
2610
|
-
/***/ }
|
|
2494
|
+
/***/ },
|
|
2611
2495
|
|
|
2612
|
-
/***/ 22658
|
|
2613
|
-
|
|
2496
|
+
/***/ 22658
|
|
2497
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2614
2498
|
|
|
2615
2499
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2616
2500
|
/* harmony export */ j: () => (/* binding */ getVOIMultipliers)
|
|
@@ -2638,10 +2522,10 @@ function getVOIMultipliers(viewport, volumeId, options) {
|
|
|
2638
2522
|
|
|
2639
2523
|
|
|
2640
2524
|
|
|
2641
|
-
/***/ }
|
|
2525
|
+
/***/ },
|
|
2642
2526
|
|
|
2643
|
-
/***/ 38776
|
|
2644
|
-
|
|
2527
|
+
/***/ 38776
|
|
2528
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2645
2529
|
|
|
2646
2530
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2647
2531
|
/* harmony export */ j: () => (/* binding */ LivewirePath)
|
|
@@ -2719,10 +2603,10 @@ class LivewirePath {
|
|
|
2719
2603
|
}
|
|
2720
2604
|
|
|
2721
2605
|
|
|
2722
|
-
/***/ }
|
|
2606
|
+
/***/ },
|
|
2723
2607
|
|
|
2724
|
-
/***/ 78044
|
|
2725
|
-
|
|
2608
|
+
/***/ 78044
|
|
2609
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2726
2610
|
|
|
2727
2611
|
|
|
2728
2612
|
// EXPORTS
|
|
@@ -3120,251 +3004,49 @@ class LivewireScissors {
|
|
|
3120
3004
|
}
|
|
3121
3005
|
|
|
3122
3006
|
|
|
3123
|
-
/***/ }
|
|
3124
|
-
|
|
3125
|
-
/***/ 88638:
|
|
3126
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3127
|
-
|
|
3128
|
-
// ESM COMPAT FLAG
|
|
3129
|
-
__webpack_require__.r(__webpack_exports__);
|
|
3130
|
-
|
|
3131
|
-
// EXPORTS
|
|
3132
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
3133
|
-
distanceToPoint: () => (/* reexport */ distanceToPoint),
|
|
3134
|
-
distanceToPointSquared: () => (/* reexport */ distanceToPointSquared),
|
|
3135
|
-
intersectAABB: () => (/* reexport */ intersectAABB)
|
|
3136
|
-
});
|
|
3137
|
-
|
|
3138
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/aabb/intersectAABB.js
|
|
3139
|
-
function intersectAABB(aabb1, aabb2) {
|
|
3140
|
-
return (aabb1.minX <= aabb2.maxX &&
|
|
3141
|
-
aabb1.maxX >= aabb2.minX &&
|
|
3142
|
-
aabb1.minY <= aabb2.maxY &&
|
|
3143
|
-
aabb1.maxY >= aabb2.minY);
|
|
3144
|
-
}
|
|
3145
|
-
|
|
3146
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/aabb/distanceToPointSquared.js
|
|
3147
|
-
function distanceToPointSquared(aabb, point) {
|
|
3148
|
-
const aabbWidth = aabb.maxX - aabb.minX;
|
|
3149
|
-
const aabbHeight = aabb.maxY - aabb.minY;
|
|
3150
|
-
const aabbSize = [aabbWidth, aabbHeight];
|
|
3151
|
-
const aabbCenter = [
|
|
3152
|
-
aabb.minX + aabbWidth / 2,
|
|
3153
|
-
aabb.minY + aabbHeight / 2,
|
|
3154
|
-
];
|
|
3155
|
-
const translatedPoint = [
|
|
3156
|
-
Math.abs(point[0] - aabbCenter[0]),
|
|
3157
|
-
Math.abs(point[1] - aabbCenter[1]),
|
|
3158
|
-
];
|
|
3159
|
-
const dx = translatedPoint[0] - aabbSize[0] * 0.5;
|
|
3160
|
-
const dy = translatedPoint[1] - aabbSize[1] * 0.5;
|
|
3161
|
-
if (dx > 0 && dy > 0) {
|
|
3162
|
-
return dx * dx + dy * dy;
|
|
3163
|
-
}
|
|
3164
|
-
const dist = Math.max(dx, 0) + Math.max(dy, 0);
|
|
3165
|
-
return dist * dist;
|
|
3166
|
-
}
|
|
3167
|
-
|
|
3168
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/aabb/distanceToPoint.js
|
|
3169
|
-
|
|
3170
|
-
function distanceToPoint(aabb, point) {
|
|
3171
|
-
return Math.sqrt(distanceToPointSquared(aabb, point));
|
|
3172
|
-
}
|
|
3173
|
-
|
|
3174
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/aabb/index.js
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
/***/ }),
|
|
3181
|
-
|
|
3182
|
-
/***/ 25963:
|
|
3183
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3184
|
-
|
|
3185
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3186
|
-
/* harmony export */ A: () => (/* binding */ angleBetweenLines)
|
|
3187
|
-
/* harmony export */ });
|
|
3188
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
3189
|
-
|
|
3190
|
-
function angleBetween3DLines(line1, line2) {
|
|
3191
|
-
const [p1, p2] = line1;
|
|
3192
|
-
const [p3, p4] = line2;
|
|
3193
|
-
const v1 = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.sub */ .eR.sub(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create(), p2, p1);
|
|
3194
|
-
const v2 = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.sub */ .eR.sub(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create(), p3, p4);
|
|
3195
|
-
const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.dot */ .eR.dot(v1, v2);
|
|
3196
|
-
const v1Length = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.length */ .eR.length(v1);
|
|
3197
|
-
const v2Length = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.length */ .eR.length(v2);
|
|
3198
|
-
const cos = dot / (v1Length * v2Length);
|
|
3199
|
-
const radian = Math.acos(cos);
|
|
3200
|
-
return (radian * 180) / Math.PI;
|
|
3201
|
-
}
|
|
3202
|
-
function angleBetween2DLines(line1, line2) {
|
|
3203
|
-
const [p1, p2] = line1;
|
|
3204
|
-
const [p3, p4] = line2;
|
|
3205
|
-
const v1 = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.sub */ .Zc.sub(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), p2, p1);
|
|
3206
|
-
const v2 = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.sub */ .Zc.sub(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), p3, p4);
|
|
3207
|
-
const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.dot */ .Zc.dot(v1, v2);
|
|
3208
|
-
const v1Length = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.length */ .Zc.length(v1);
|
|
3209
|
-
const v2Length = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.length */ .Zc.length(v2);
|
|
3210
|
-
const cos = dot / (v1Length * v2Length);
|
|
3211
|
-
return Math.acos(cos) * (180 / Math.PI);
|
|
3212
|
-
}
|
|
3213
|
-
function angleBetweenLines(line1, line2) {
|
|
3214
|
-
const is3D = line1[0].length === 3;
|
|
3215
|
-
return is3D
|
|
3216
|
-
? angleBetween3DLines(line1, line2)
|
|
3217
|
-
: angleBetween2DLines(line1, line2);
|
|
3218
|
-
}
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
/***/ }),
|
|
3222
|
-
|
|
3223
|
-
/***/ 83923:
|
|
3224
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3225
|
-
|
|
3226
|
-
__webpack_require__.r(__webpack_exports__);
|
|
3227
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3228
|
-
/* harmony export */ angleBetweenLines: () => (/* reexport safe */ _angleBetweenLines__WEBPACK_IMPORTED_MODULE_0__.A)
|
|
3229
|
-
/* harmony export */ });
|
|
3230
|
-
/* harmony import */ var _angleBetweenLines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25963);
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
/***/ }),
|
|
3236
|
-
|
|
3237
|
-
/***/ 28364:
|
|
3238
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3239
|
-
|
|
3240
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3241
|
-
/* harmony export */ I: () => (/* binding */ InstanceCalculator),
|
|
3242
|
-
/* harmony export */ t: () => (/* binding */ Calculator)
|
|
3243
|
-
/* harmony export */ });
|
|
3244
|
-
class Calculator {
|
|
3245
|
-
}
|
|
3246
|
-
class InstanceCalculator {
|
|
3247
|
-
constructor(options) {
|
|
3248
|
-
this.storePointData = options.storePointData;
|
|
3249
|
-
}
|
|
3250
|
-
getStatistics() {
|
|
3251
|
-
console.debug('InstanceCalculator getStatistics called');
|
|
3252
|
-
}
|
|
3253
|
-
}
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
/***/ }),
|
|
3007
|
+
/***/ },
|
|
3257
3008
|
|
|
3258
|
-
/***/
|
|
3259
|
-
|
|
3009
|
+
/***/ 11256
|
|
3010
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3260
3011
|
|
|
3261
|
-
__webpack_require__.r(__webpack_exports__);
|
|
3262
3012
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3263
|
-
/* harmony export */
|
|
3264
|
-
/* harmony export */ Calculator: () => (/* reexport safe */ _Calculator__WEBPACK_IMPORTED_MODULE_1__.t),
|
|
3265
|
-
/* harmony export */ InstanceBasicStatsCalculator: () => (/* reexport safe */ _BasicStatsCalculator__WEBPACK_IMPORTED_MODULE_0__.B),
|
|
3266
|
-
/* harmony export */ InstanceCalculator: () => (/* reexport safe */ _Calculator__WEBPACK_IMPORTED_MODULE_1__.I)
|
|
3013
|
+
/* harmony export */ A: () => (/* binding */ getCanvasCircleCorners)
|
|
3267
3014
|
/* harmony export */ });
|
|
3268
|
-
/* harmony import */ var
|
|
3269
|
-
/* harmony import */ var _Calculator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28364);
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
/***/ }),
|
|
3276
|
-
|
|
3277
|
-
/***/ 77081:
|
|
3278
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3279
|
-
|
|
3280
|
-
// ESM COMPAT FLAG
|
|
3281
|
-
__webpack_require__.r(__webpack_exports__);
|
|
3282
|
-
|
|
3283
|
-
// EXPORTS
|
|
3284
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
3285
|
-
getCanvasCircleCorners: () => (/* reexport */ getCanvasCircleCorners),
|
|
3286
|
-
getCanvasCircleRadius: () => (/* reexport */ getCanvasCircleRadius)
|
|
3287
|
-
});
|
|
3288
|
-
|
|
3289
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/index.js + 3 modules
|
|
3290
|
-
var point = __webpack_require__(82216);
|
|
3291
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/circle/getCanvasCircleRadius.js
|
|
3292
|
-
|
|
3293
|
-
function getCanvasCircleRadius(circleCanvasPoints) {
|
|
3294
|
-
const [center, end] = circleCanvasPoints;
|
|
3295
|
-
return (0,point.distanceToPoint)(center, end);
|
|
3296
|
-
}
|
|
3297
|
-
|
|
3298
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/circle/getCanvasCircleCorners.js
|
|
3015
|
+
/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5767);
|
|
3299
3016
|
|
|
3300
3017
|
function getCanvasCircleCorners(circleCanvasPoints) {
|
|
3301
3018
|
const [center, end] = circleCanvasPoints;
|
|
3302
|
-
const radius = (0,
|
|
3019
|
+
const radius = (0,_point__WEBPACK_IMPORTED_MODULE_0__.distanceToPoint)(center, end);
|
|
3303
3020
|
const topLeft = [center[0] - radius, center[1] - radius];
|
|
3304
3021
|
const bottomRight = [center[0] + radius, center[1] + radius];
|
|
3305
3022
|
return [topLeft, bottomRight];
|
|
3306
3023
|
}
|
|
3307
3024
|
|
|
3308
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/circle/index.js
|
|
3309
|
-
|
|
3310
3025
|
|
|
3026
|
+
/***/ },
|
|
3311
3027
|
|
|
3028
|
+
/***/ 76090
|
|
3029
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3312
3030
|
|
|
3031
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3032
|
+
/* harmony export */ A: () => (/* binding */ getCanvasCircleRadius)
|
|
3033
|
+
/* harmony export */ });
|
|
3034
|
+
/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5767);
|
|
3313
3035
|
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
// ESM COMPAT FLAG
|
|
3320
|
-
__webpack_require__.r(__webpack_exports__);
|
|
3036
|
+
function getCanvasCircleRadius(circleCanvasPoints) {
|
|
3037
|
+
const [center, end] = circleCanvasPoints;
|
|
3038
|
+
return (0,_point__WEBPACK_IMPORTED_MODULE_0__.distanceToPoint)(center, end);
|
|
3039
|
+
}
|
|
3321
3040
|
|
|
3322
|
-
// EXPORTS
|
|
3323
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
3324
|
-
getCanvasEllipseCorners: () => (/* reexport */ getCanvasEllipseCorners),
|
|
3325
|
-
pointInEllipse: () => (/* reexport */ pointInEllipse),
|
|
3326
|
-
precalculatePointInEllipse: () => (/* reexport */ precalculatePointInEllipse)
|
|
3327
|
-
});
|
|
3328
3041
|
|
|
3329
|
-
|
|
3330
|
-
function pointInEllipse(ellipse, pointLPS, inverts = {}) {
|
|
3331
|
-
if (!inverts.precalculated) {
|
|
3332
|
-
precalculatePointInEllipse(ellipse, inverts);
|
|
3333
|
-
}
|
|
3334
|
-
return inverts.precalculated(pointLPS);
|
|
3335
|
-
}
|
|
3336
|
-
const precalculatePointInEllipse = (ellipse, inverts = {}) => {
|
|
3337
|
-
const { xRadius, yRadius, zRadius } = ellipse;
|
|
3338
|
-
if (inverts.invXRadiusSq === undefined ||
|
|
3339
|
-
inverts.invYRadiusSq === undefined ||
|
|
3340
|
-
inverts.invZRadiusSq === undefined) {
|
|
3341
|
-
inverts.invXRadiusSq = xRadius !== 0 ? 1 / xRadius ** 2 : 0;
|
|
3342
|
-
inverts.invYRadiusSq = yRadius !== 0 ? 1 / yRadius ** 2 : 0;
|
|
3343
|
-
inverts.invZRadiusSq = zRadius !== 0 ? 1 / zRadius ** 2 : 0;
|
|
3344
|
-
}
|
|
3345
|
-
const { invXRadiusSq, invYRadiusSq, invZRadiusSq } = inverts;
|
|
3346
|
-
const { center } = ellipse;
|
|
3347
|
-
const [centerL, centerP, centerS] = center;
|
|
3348
|
-
inverts.precalculated = (pointLPS) => {
|
|
3349
|
-
const dx = pointLPS[0] - centerL;
|
|
3350
|
-
let inside = dx * dx * invXRadiusSq;
|
|
3351
|
-
if (inside > 1) {
|
|
3352
|
-
return false;
|
|
3353
|
-
}
|
|
3354
|
-
const dy = pointLPS[1] - centerP;
|
|
3355
|
-
inside += dy * dy * invYRadiusSq;
|
|
3356
|
-
if (inside > 1) {
|
|
3357
|
-
return false;
|
|
3358
|
-
}
|
|
3359
|
-
const dz = pointLPS[2] - centerS;
|
|
3360
|
-
inside += dz * dz * invZRadiusSq;
|
|
3361
|
-
return inside <= 1;
|
|
3362
|
-
};
|
|
3363
|
-
return inverts;
|
|
3364
|
-
};
|
|
3042
|
+
/***/ },
|
|
3365
3043
|
|
|
3044
|
+
/***/ 2222
|
|
3045
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3366
3046
|
|
|
3367
|
-
|
|
3047
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3048
|
+
/* harmony export */ A: () => (/* binding */ getCanvasEllipseCorners)
|
|
3049
|
+
/* harmony export */ });
|
|
3368
3050
|
function getCanvasEllipseCorners(ellipseCanvasPoints) {
|
|
3369
3051
|
const [bottom, top, left, right] = ellipseCanvasPoints;
|
|
3370
3052
|
const topLeft = [left[0], top[1]];
|
|
@@ -3372,16 +3054,11 @@ function getCanvasEllipseCorners(ellipseCanvasPoints) {
|
|
|
3372
3054
|
return [topLeft, bottomRight];
|
|
3373
3055
|
}
|
|
3374
3056
|
|
|
3375
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/ellipse/index.js
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
3057
|
|
|
3381
|
-
/***/ }
|
|
3058
|
+
/***/ },
|
|
3382
3059
|
|
|
3383
|
-
/***/ 17787
|
|
3384
|
-
|
|
3060
|
+
/***/ 17787
|
|
3061
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3385
3062
|
|
|
3386
3063
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3387
3064
|
/* harmony export */ IM: () => (/* binding */ clipInterval),
|
|
@@ -3492,93 +3169,10 @@ function calculateInnerFanPercentage(center, outerFanPairs, innerFanPairs) {
|
|
|
3492
3169
|
}
|
|
3493
3170
|
|
|
3494
3171
|
|
|
3495
|
-
/***/ }
|
|
3496
|
-
|
|
3497
|
-
/***/ 18989:
|
|
3498
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3499
|
-
|
|
3500
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3501
|
-
/* harmony export */ A: () => (/* binding */ distanceToPointSquared)
|
|
3502
|
-
/* harmony export */ });
|
|
3503
|
-
/* harmony import */ var _distanceToPointSquaredInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73149);
|
|
3504
|
-
|
|
3505
|
-
function distanceToPointSquared(lineStart, lineEnd, point) {
|
|
3506
|
-
return (0,_distanceToPointSquaredInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(lineStart, lineEnd, point).distanceSquared;
|
|
3507
|
-
}
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
/***/ }),
|
|
3172
|
+
/***/ },
|
|
3511
3173
|
|
|
3512
|
-
/***/
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3516
|
-
/* harmony export */ A: () => (/* binding */ distanceToPointSquaredInfo)
|
|
3517
|
-
/* harmony export */ });
|
|
3518
|
-
/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82216);
|
|
3519
|
-
|
|
3520
|
-
function distanceToPointSquaredInfo(lineStart, lineEnd, point) {
|
|
3521
|
-
let closestPoint;
|
|
3522
|
-
const distanceSquared = (0,_point__WEBPACK_IMPORTED_MODULE_0__.distanceToPointSquared)(lineStart, lineEnd);
|
|
3523
|
-
if (lineStart[0] === lineEnd[0] && lineStart[1] === lineEnd[1]) {
|
|
3524
|
-
closestPoint = lineStart;
|
|
3525
|
-
}
|
|
3526
|
-
if (!closestPoint) {
|
|
3527
|
-
const dotProduct = ((point[0] - lineStart[0]) * (lineEnd[0] - lineStart[0]) +
|
|
3528
|
-
(point[1] - lineStart[1]) * (lineEnd[1] - lineStart[1])) /
|
|
3529
|
-
distanceSquared;
|
|
3530
|
-
if (dotProduct < 0) {
|
|
3531
|
-
closestPoint = lineStart;
|
|
3532
|
-
}
|
|
3533
|
-
else if (dotProduct > 1) {
|
|
3534
|
-
closestPoint = lineEnd;
|
|
3535
|
-
}
|
|
3536
|
-
else {
|
|
3537
|
-
closestPoint = [
|
|
3538
|
-
lineStart[0] + dotProduct * (lineEnd[0] - lineStart[0]),
|
|
3539
|
-
lineStart[1] + dotProduct * (lineEnd[1] - lineStart[1]),
|
|
3540
|
-
];
|
|
3541
|
-
}
|
|
3542
|
-
}
|
|
3543
|
-
return {
|
|
3544
|
-
point: [...closestPoint],
|
|
3545
|
-
distanceSquared: (0,_point__WEBPACK_IMPORTED_MODULE_0__.distanceToPointSquared)(point, closestPoint),
|
|
3546
|
-
};
|
|
3547
|
-
}
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
/***/ }),
|
|
3551
|
-
|
|
3552
|
-
/***/ 91818:
|
|
3553
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3554
|
-
|
|
3555
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3556
|
-
/* harmony export */ A: () => (/* binding */ isPointOnLineSegment)
|
|
3557
|
-
/* harmony export */ });
|
|
3558
|
-
const ORIENTATION_TOLERANCE = 1e-2;
|
|
3559
|
-
function isPointOnLineSegment(lineStart, lineEnd, point) {
|
|
3560
|
-
const minX = lineStart[0] <= lineEnd[0] ? lineStart[0] : lineEnd[0];
|
|
3561
|
-
const maxX = lineStart[0] >= lineEnd[0] ? lineStart[0] : lineEnd[0];
|
|
3562
|
-
const minY = lineStart[1] <= lineEnd[1] ? lineStart[1] : lineEnd[1];
|
|
3563
|
-
const maxY = lineStart[1] >= lineEnd[1] ? lineStart[1] : lineEnd[1];
|
|
3564
|
-
const aabbContainsPoint = point[0] >= minX - ORIENTATION_TOLERANCE &&
|
|
3565
|
-
point[0] <= maxX + ORIENTATION_TOLERANCE &&
|
|
3566
|
-
point[1] >= minY - ORIENTATION_TOLERANCE &&
|
|
3567
|
-
point[1] <= maxY + ORIENTATION_TOLERANCE;
|
|
3568
|
-
if (!aabbContainsPoint) {
|
|
3569
|
-
return false;
|
|
3570
|
-
}
|
|
3571
|
-
const orientation = (lineEnd[1] - lineStart[1]) * (point[0] - lineEnd[0]) -
|
|
3572
|
-
(lineEnd[0] - lineStart[0]) * (point[1] - lineEnd[1]);
|
|
3573
|
-
const absOrientation = orientation >= 0 ? orientation : -orientation;
|
|
3574
|
-
return absOrientation <= ORIENTATION_TOLERANCE;
|
|
3575
|
-
}
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
/***/ }),
|
|
3579
|
-
|
|
3580
|
-
/***/ 82983:
|
|
3581
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3174
|
+
/***/ 82983
|
|
3175
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3582
3176
|
|
|
3583
3177
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3584
3178
|
/* harmony export */ f: () => (/* binding */ midPoint2)
|
|
@@ -3600,10 +3194,10 @@ const midPoint2 = midPoint;
|
|
|
3600
3194
|
|
|
3601
3195
|
|
|
3602
3196
|
|
|
3603
|
-
/***/ }
|
|
3197
|
+
/***/ },
|
|
3604
3198
|
|
|
3605
|
-
/***/
|
|
3606
|
-
|
|
3199
|
+
/***/ 5767
|
|
3200
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3607
3201
|
|
|
3608
3202
|
// ESM COMPAT FLAG
|
|
3609
3203
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -3611,1191 +3205,108 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3611
3205
|
// EXPORTS
|
|
3612
3206
|
__webpack_require__.d(__webpack_exports__, {
|
|
3613
3207
|
distanceToPoint: () => (/* reexport */ distanceToPoint),
|
|
3614
|
-
distanceToPointSquared: () => (/* reexport */ distanceToPointSquared),
|
|
3615
|
-
mirror: () => (/* reexport */ mirror)
|
|
3208
|
+
distanceToPointSquared: () => (/* reexport */ distanceToPointSquared/* default */.A),
|
|
3209
|
+
mirror: () => (/* reexport */ mirror/* default */.A)
|
|
3616
3210
|
});
|
|
3617
3211
|
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
if (p1.length !== p2.length) {
|
|
3621
|
-
throw Error('Both points should have the same dimensionality');
|
|
3622
|
-
}
|
|
3623
|
-
const [x1, y1, z1 = 0] = p1;
|
|
3624
|
-
const [x2, y2, z2 = 0] = p2;
|
|
3625
|
-
const dx = x2 - x1;
|
|
3626
|
-
const dy = y2 - y1;
|
|
3627
|
-
const dz = z2 - z1;
|
|
3628
|
-
return dx * dx + dy * dy + dz * dz;
|
|
3629
|
-
}
|
|
3630
|
-
|
|
3212
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/distanceToPointSquared.js
|
|
3213
|
+
var distanceToPointSquared = __webpack_require__(31489);
|
|
3631
3214
|
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/distanceToPoint.js
|
|
3632
3215
|
|
|
3633
3216
|
function distanceToPoint(p1, p2) {
|
|
3634
|
-
return Math.sqrt(distanceToPointSquared(p1, p2));
|
|
3635
|
-
}
|
|
3636
|
-
|
|
3637
|
-
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/mirror.js
|
|
3638
|
-
function mirror(mirrorPoint, staticPoint) {
|
|
3639
|
-
const [x1, y1] = mirrorPoint;
|
|
3640
|
-
const [x2, y2] = staticPoint;
|
|
3641
|
-
const newX = 2 * x2 - x1;
|
|
3642
|
-
const newY = 2 * y2 - y1;
|
|
3643
|
-
return [newX, newY];
|
|
3217
|
+
return Math.sqrt((0,distanceToPointSquared/* default */.A)(p1, p2));
|
|
3644
3218
|
}
|
|
3645
3219
|
|
|
3220
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/mirror.js
|
|
3221
|
+
var mirror = __webpack_require__(83483);
|
|
3646
3222
|
;// ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/point/index.js
|
|
3647
3223
|
|
|
3648
3224
|
|
|
3649
3225
|
|
|
3650
3226
|
|
|
3651
3227
|
|
|
3652
|
-
/***/ }
|
|
3228
|
+
/***/ },
|
|
3653
3229
|
|
|
3654
|
-
/***/
|
|
3655
|
-
|
|
3230
|
+
/***/ 98122
|
|
3231
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3656
3232
|
|
|
3657
3233
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3658
|
-
/* harmony export */ A: () => (
|
|
3234
|
+
/* harmony export */ A: () => (/* binding */ getAABB)
|
|
3659
3235
|
/* harmony export */ });
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.subtract */ .eR.subtract(worldPosDiff, newWorldPos, lastWorldPos);
|
|
3677
|
-
const xDist = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(worldPosDiff, xDir));
|
|
3678
|
-
const yDist = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(worldPosDiff, yDir));
|
|
3679
|
-
const numPointsToAdd = Math.max(Math.floor(xDist / spacing[0]), Math.floor(yDist / spacing[0]));
|
|
3680
|
-
if (numPointsToAdd > 1) {
|
|
3681
|
-
const lastCanvasPoint = canvasPoints[canvasPoints.length - 1];
|
|
3682
|
-
const canvasDist = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dist */ .Zc.dist(lastCanvasPoint, newCanvasPoint);
|
|
3683
|
-
const canvasDir = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create();
|
|
3684
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(canvasDir, newCanvasPoint, lastCanvasPoint);
|
|
3685
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.set */ .Zc.set(canvasDir, canvasDir[0] / canvasDist, canvasDir[1] / canvasDist);
|
|
3686
|
-
const distPerPoint = canvasDist / numPointsToAdd;
|
|
3687
|
-
for (let i = 1; i <= numPointsToAdd; i++) {
|
|
3688
|
-
canvasPoints.push([
|
|
3689
|
-
lastCanvasPoint[0] + distPerPoint * canvasDir[0] * i,
|
|
3690
|
-
lastCanvasPoint[1] + distPerPoint * canvasDir[1] * i,
|
|
3691
|
-
]);
|
|
3236
|
+
function getAABB(polyline, options) {
|
|
3237
|
+
let polylineToUse = polyline;
|
|
3238
|
+
const numDimensions = options?.numDimensions || 2;
|
|
3239
|
+
const is3D = numDimensions === 3;
|
|
3240
|
+
if (!Array.isArray(polyline[0])) {
|
|
3241
|
+
const currentPolyline = polyline;
|
|
3242
|
+
const totalPoints = currentPolyline.length / numDimensions;
|
|
3243
|
+
polylineToUse = new Array(currentPolyline.length / numDimensions);
|
|
3244
|
+
for (let i = 0, len = totalPoints; i < len; i++) {
|
|
3245
|
+
polylineToUse[i] = [
|
|
3246
|
+
currentPolyline[i * numDimensions],
|
|
3247
|
+
currentPolyline[i * numDimensions + 1],
|
|
3248
|
+
];
|
|
3249
|
+
if (is3D) {
|
|
3250
|
+
polylineToUse[i].push(currentPolyline[i * numDimensions + 2]);
|
|
3251
|
+
}
|
|
3692
3252
|
}
|
|
3693
3253
|
}
|
|
3694
|
-
|
|
3695
|
-
|
|
3254
|
+
let minX = Infinity;
|
|
3255
|
+
let minY = Infinity;
|
|
3256
|
+
let maxX = -Infinity;
|
|
3257
|
+
let maxY = -Infinity;
|
|
3258
|
+
let minZ = Infinity;
|
|
3259
|
+
let maxZ = -Infinity;
|
|
3260
|
+
polylineToUse = polylineToUse;
|
|
3261
|
+
for (let i = 0, len = polylineToUse.length; i < len; i++) {
|
|
3262
|
+
const [x, y, z] = polylineToUse[i];
|
|
3263
|
+
minX = minX < x ? minX : x;
|
|
3264
|
+
minY = minY < y ? minY : y;
|
|
3265
|
+
maxX = maxX > x ? maxX : x;
|
|
3266
|
+
maxY = maxY > y ? maxY : y;
|
|
3267
|
+
if (is3D) {
|
|
3268
|
+
minZ = minZ < z ? minZ : z;
|
|
3269
|
+
maxZ = maxZ > z ? maxZ : z;
|
|
3270
|
+
}
|
|
3696
3271
|
}
|
|
3697
|
-
return
|
|
3698
|
-
}
|
|
3699
|
-
|
|
3272
|
+
return is3D
|
|
3273
|
+
? { minX, maxX, minY, maxY, minZ, maxZ }
|
|
3274
|
+
: { minX, maxX, minY, maxY };
|
|
3275
|
+
}
|
|
3700
3276
|
|
|
3701
3277
|
|
|
3702
|
-
/***/ }
|
|
3278
|
+
/***/ },
|
|
3703
3279
|
|
|
3704
|
-
/***/
|
|
3705
|
-
|
|
3280
|
+
/***/ 50932
|
|
3281
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3706
3282
|
|
|
3707
3283
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3708
|
-
/* harmony export */ A: () => (/* binding */
|
|
3284
|
+
/* harmony export */ A: () => (/* binding */ getLineSegmentIntersectionsCoordinates)
|
|
3709
3285
|
/* harmony export */ });
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
const
|
|
3716
|
-
const
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
line1MinY > line2MaxY ||
|
|
3723
|
-
line1MaxY < line2MinY) {
|
|
3724
|
-
return false;
|
|
3725
|
-
}
|
|
3726
|
-
const orient = [
|
|
3727
|
-
orientation(p1, q1, p2),
|
|
3728
|
-
orientation(p1, q1, q2),
|
|
3729
|
-
orientation(p2, q2, p1),
|
|
3730
|
-
orientation(p2, q2, q1),
|
|
3731
|
-
];
|
|
3732
|
-
if (orient[0] !== orient[1] && orient[2] !== orient[3]) {
|
|
3733
|
-
return true;
|
|
3734
|
-
}
|
|
3735
|
-
if (orient[0] === 0 && onSegment(p1, p2, q1)) {
|
|
3736
|
-
result = true;
|
|
3737
|
-
}
|
|
3738
|
-
else if (orient[1] === 0 && onSegment(p1, q2, q1)) {
|
|
3739
|
-
result = true;
|
|
3740
|
-
}
|
|
3741
|
-
else if (orient[2] === 0 && onSegment(p2, p1, q2)) {
|
|
3742
|
-
result = true;
|
|
3743
|
-
}
|
|
3744
|
-
else if (orient[3] === 0 && onSegment(p2, q1, q2)) {
|
|
3745
|
-
result = true;
|
|
3286
|
+
/* harmony import */ var _getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37135);
|
|
3287
|
+
/* harmony import */ var _getLinesIntersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10812);
|
|
3288
|
+
|
|
3289
|
+
|
|
3290
|
+
function getLineSegmentIntersectionsCoordinates(points, p1, q1, closed = true) {
|
|
3291
|
+
const result = [];
|
|
3292
|
+
const polylineIndexes = (0,_getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(points, p1, q1, closed);
|
|
3293
|
+
for (let i = 0; i < polylineIndexes.length; i++) {
|
|
3294
|
+
const p2 = points[polylineIndexes[i][0]];
|
|
3295
|
+
const q2 = points[polylineIndexes[i][1]];
|
|
3296
|
+
const intersection = (0,_getLinesIntersection__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(p1, q1, p2, q2);
|
|
3297
|
+
result.push(intersection);
|
|
3746
3298
|
}
|
|
3747
3299
|
return result;
|
|
3748
3300
|
}
|
|
3749
|
-
function orientation(p, q, r) {
|
|
3750
|
-
const orientationValue = (q[1] - p[1]) * (r[0] - q[0]) - (q[0] - p[0]) * (r[1] - q[1]);
|
|
3751
|
-
if (orientationValue === 0) {
|
|
3752
|
-
return 0;
|
|
3753
|
-
}
|
|
3754
|
-
return orientationValue > 0 ? 1 : 2;
|
|
3755
|
-
}
|
|
3756
|
-
function onSegment(p, q, r) {
|
|
3757
|
-
if (q[0] <= Math.max(p[0], r[0]) &&
|
|
3758
|
-
q[0] >= Math.min(p[0], r[0]) &&
|
|
3759
|
-
q[1] <= Math.max(p[1], r[1]) &&
|
|
3760
|
-
q[1] >= Math.min(p[1], r[1])) {
|
|
3761
|
-
return true;
|
|
3762
|
-
}
|
|
3763
|
-
return false;
|
|
3764
|
-
}
|
|
3765
3301
|
|
|
3766
3302
|
|
|
3767
|
-
/***/ }
|
|
3303
|
+
/***/ },
|
|
3768
3304
|
|
|
3769
|
-
/***/
|
|
3770
|
-
|
|
3305
|
+
/***/ 8361
|
|
3306
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
3771
3307
|
|
|
3772
3308
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3773
|
-
/* harmony export */
|
|
3774
|
-
/* harmony export */ });
|
|
3775
|
-
/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82216);
|
|
3776
|
-
/* harmony import */ var _getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37135);
|
|
3777
|
-
/* harmony import */ var _containsPoint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46513);
|
|
3778
|
-
/* harmony import */ var _containsPoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42436);
|
|
3779
|
-
/* harmony import */ var _intersectPolyline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(405);
|
|
3780
|
-
/* harmony import */ var _getNormal2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11377);
|
|
3781
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3823);
|
|
3782
|
-
/* harmony import */ var _getLinesIntersection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10812);
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
var PolylinePointType;
|
|
3792
|
-
(function (PolylinePointType) {
|
|
3793
|
-
PolylinePointType[PolylinePointType["Vertex"] = 0] = "Vertex";
|
|
3794
|
-
PolylinePointType[PolylinePointType["Intersection"] = 1] = "Intersection";
|
|
3795
|
-
})(PolylinePointType || (PolylinePointType = {}));
|
|
3796
|
-
var PolylinePointPosition;
|
|
3797
|
-
(function (PolylinePointPosition) {
|
|
3798
|
-
PolylinePointPosition[PolylinePointPosition["Outside"] = -1] = "Outside";
|
|
3799
|
-
PolylinePointPosition[PolylinePointPosition["Edge"] = 0] = "Edge";
|
|
3800
|
-
PolylinePointPosition[PolylinePointPosition["Inside"] = 1] = "Inside";
|
|
3801
|
-
})(PolylinePointPosition || (PolylinePointPosition = {}));
|
|
3802
|
-
var PolylinePointDirection;
|
|
3803
|
-
(function (PolylinePointDirection) {
|
|
3804
|
-
PolylinePointDirection[PolylinePointDirection["Exiting"] = -1] = "Exiting";
|
|
3805
|
-
PolylinePointDirection[PolylinePointDirection["Unknown"] = 0] = "Unknown";
|
|
3806
|
-
PolylinePointDirection[PolylinePointDirection["Entering"] = 1] = "Entering";
|
|
3807
|
-
})(PolylinePointDirection || (PolylinePointDirection = {}));
|
|
3808
|
-
function ensuresNextPointers(polylinePoints) {
|
|
3809
|
-
for (let i = 0, len = polylinePoints.length; i < len; i++) {
|
|
3810
|
-
const currentPoint = polylinePoints[i];
|
|
3811
|
-
if (!currentPoint.next) {
|
|
3812
|
-
currentPoint.next = polylinePoints[i === len - 1 ? 0 : i + 1];
|
|
3813
|
-
}
|
|
3814
|
-
}
|
|
3815
|
-
}
|
|
3816
|
-
function getSourceAndTargetPointsList(targetPolyline, sourcePolyline) {
|
|
3817
|
-
const targetPolylinePoints = [];
|
|
3818
|
-
const sourcePolylinePoints = [];
|
|
3819
|
-
const sourceIntersectionsCache = new Map();
|
|
3820
|
-
const isFirstPointInside = (0,_containsPoint__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(sourcePolyline, targetPolyline[0]);
|
|
3821
|
-
let intersectionPointDirection = isFirstPointInside
|
|
3822
|
-
? PolylinePointDirection.Exiting
|
|
3823
|
-
: PolylinePointDirection.Entering;
|
|
3824
|
-
for (let i = 0, len = targetPolyline.length; i < len; i++) {
|
|
3825
|
-
const p1 = targetPolyline[i];
|
|
3826
|
-
const pointInside = (0,_containsPoint__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(sourcePolyline, p1);
|
|
3827
|
-
const vertexPoint = {
|
|
3828
|
-
type: PolylinePointType.Vertex,
|
|
3829
|
-
coordinates: p1,
|
|
3830
|
-
position: pointInside
|
|
3831
|
-
? PolylinePointPosition.Inside
|
|
3832
|
-
: PolylinePointPosition.Outside,
|
|
3833
|
-
visited: false,
|
|
3834
|
-
next: null,
|
|
3835
|
-
};
|
|
3836
|
-
targetPolylinePoints.push(vertexPoint);
|
|
3837
|
-
const q1 = targetPolyline[i === len - 1 ? 0 : i + 1];
|
|
3838
|
-
const intersectionsInfo = (0,_getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(sourcePolyline, p1, q1).map((intersectedLineSegment) => {
|
|
3839
|
-
const sourceLineSegmentId = intersectedLineSegment[0];
|
|
3840
|
-
const p2 = sourcePolyline[intersectedLineSegment[0]];
|
|
3841
|
-
const q2 = sourcePolyline[intersectedLineSegment[1]];
|
|
3842
|
-
const intersectionCoordinate = (0,_getLinesIntersection__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(p1, q1, p2, q2);
|
|
3843
|
-
const targetStartPointDistSquared = _point__WEBPACK_IMPORTED_MODULE_0__.distanceToPointSquared(p1, intersectionCoordinate);
|
|
3844
|
-
return {
|
|
3845
|
-
sourceLineSegmentId,
|
|
3846
|
-
coordinate: intersectionCoordinate,
|
|
3847
|
-
targetStartPointDistSquared,
|
|
3848
|
-
};
|
|
3849
|
-
});
|
|
3850
|
-
intersectionsInfo.sort((left, right) => left.targetStartPointDistSquared - right.targetStartPointDistSquared);
|
|
3851
|
-
intersectionsInfo.forEach((intersectionInfo) => {
|
|
3852
|
-
const { sourceLineSegmentId, coordinate: intersectionCoordinate } = intersectionInfo;
|
|
3853
|
-
const targetEdgePoint = {
|
|
3854
|
-
type: PolylinePointType.Intersection,
|
|
3855
|
-
coordinates: intersectionCoordinate,
|
|
3856
|
-
position: PolylinePointPosition.Edge,
|
|
3857
|
-
direction: intersectionPointDirection,
|
|
3858
|
-
visited: false,
|
|
3859
|
-
next: null,
|
|
3860
|
-
};
|
|
3861
|
-
const sourceEdgePoint = {
|
|
3862
|
-
...targetEdgePoint,
|
|
3863
|
-
direction: PolylinePointDirection.Unknown,
|
|
3864
|
-
cloned: true,
|
|
3865
|
-
};
|
|
3866
|
-
if (intersectionPointDirection === PolylinePointDirection.Entering) {
|
|
3867
|
-
targetEdgePoint.next = sourceEdgePoint;
|
|
3868
|
-
}
|
|
3869
|
-
else {
|
|
3870
|
-
sourceEdgePoint.next = targetEdgePoint;
|
|
3871
|
-
}
|
|
3872
|
-
let sourceIntersectionPoints = sourceIntersectionsCache.get(sourceLineSegmentId);
|
|
3873
|
-
if (!sourceIntersectionPoints) {
|
|
3874
|
-
sourceIntersectionPoints = [];
|
|
3875
|
-
sourceIntersectionsCache.set(sourceLineSegmentId, sourceIntersectionPoints);
|
|
3876
|
-
}
|
|
3877
|
-
targetPolylinePoints.push(targetEdgePoint);
|
|
3878
|
-
sourceIntersectionPoints.push(sourceEdgePoint);
|
|
3879
|
-
intersectionPointDirection *= -1;
|
|
3880
|
-
});
|
|
3881
|
-
}
|
|
3882
|
-
for (let i = 0, len = sourcePolyline.length; i < len; i++) {
|
|
3883
|
-
const lineSegmentId = i;
|
|
3884
|
-
const p1 = sourcePolyline[i];
|
|
3885
|
-
const vertexPoint = {
|
|
3886
|
-
type: PolylinePointType.Vertex,
|
|
3887
|
-
coordinates: p1,
|
|
3888
|
-
visited: false,
|
|
3889
|
-
next: null,
|
|
3890
|
-
};
|
|
3891
|
-
sourcePolylinePoints.push(vertexPoint);
|
|
3892
|
-
const sourceIntersectionPoints = sourceIntersectionsCache.get(lineSegmentId);
|
|
3893
|
-
if (!sourceIntersectionPoints?.length) {
|
|
3894
|
-
continue;
|
|
3895
|
-
}
|
|
3896
|
-
sourceIntersectionPoints
|
|
3897
|
-
.map((intersectionPoint) => ({
|
|
3898
|
-
intersectionPoint,
|
|
3899
|
-
lineSegStartDistSquared: _point__WEBPACK_IMPORTED_MODULE_0__.distanceToPointSquared(p1, intersectionPoint.coordinates),
|
|
3900
|
-
}))
|
|
3901
|
-
.sort((left, right) => left.lineSegStartDistSquared - right.lineSegStartDistSquared)
|
|
3902
|
-
.map(({ intersectionPoint }) => intersectionPoint)
|
|
3903
|
-
.forEach((intersectionPoint) => sourcePolylinePoints.push(intersectionPoint));
|
|
3904
|
-
}
|
|
3905
|
-
ensuresNextPointers(targetPolylinePoints);
|
|
3906
|
-
ensuresNextPointers(sourcePolylinePoints);
|
|
3907
|
-
return { targetPolylinePoints, sourcePolylinePoints };
|
|
3908
|
-
}
|
|
3909
|
-
function getUnvisitedOutsidePoint(polylinePoints) {
|
|
3910
|
-
for (let i = 0, len = polylinePoints.length; i < len; i++) {
|
|
3911
|
-
const point = polylinePoints[i];
|
|
3912
|
-
if (!point.visited &&
|
|
3913
|
-
point.position === PolylinePointPosition.Outside &&
|
|
3914
|
-
point.type === PolylinePointType.Vertex) {
|
|
3915
|
-
return point;
|
|
3916
|
-
}
|
|
3917
|
-
}
|
|
3918
|
-
for (let i = 0, len = polylinePoints.length; i < len; i++) {
|
|
3919
|
-
const point = polylinePoints[i];
|
|
3920
|
-
if (!point.visited && point.position === PolylinePointPosition.Outside) {
|
|
3921
|
-
return point;
|
|
3922
|
-
}
|
|
3923
|
-
}
|
|
3924
|
-
return undefined;
|
|
3925
|
-
}
|
|
3926
|
-
function mergePolylines(targetPolyline, sourcePolyline) {
|
|
3927
|
-
const targetNormal = (0,_getNormal2__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(targetPolyline);
|
|
3928
|
-
const sourceNormal = (0,_getNormal2__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(sourcePolyline);
|
|
3929
|
-
const dotNormals = gl_matrix__WEBPACK_IMPORTED_MODULE_6__/* .vec3.dot */ .eR.dot(sourceNormal, targetNormal);
|
|
3930
|
-
if (!gl_matrix__WEBPACK_IMPORTED_MODULE_6__/* .glMatrix.equals */ .Fd.equals(1, dotNormals)) {
|
|
3931
|
-
sourcePolyline = sourcePolyline.slice().reverse();
|
|
3932
|
-
}
|
|
3933
|
-
const lineSegmentsIntersect = (0,_intersectPolyline__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(sourcePolyline, targetPolyline);
|
|
3934
|
-
const targetContainedInSource = !lineSegmentsIntersect && (0,_containsPoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(sourcePolyline, targetPolyline);
|
|
3935
|
-
if (targetContainedInSource) {
|
|
3936
|
-
return sourcePolyline.slice();
|
|
3937
|
-
}
|
|
3938
|
-
const { targetPolylinePoints } = getSourceAndTargetPointsList(targetPolyline, sourcePolyline);
|
|
3939
|
-
const startPoint = getUnvisitedOutsidePoint(targetPolylinePoints);
|
|
3940
|
-
if (!startPoint) {
|
|
3941
|
-
return targetPolyline.slice();
|
|
3942
|
-
}
|
|
3943
|
-
const mergedPolyline = [startPoint.coordinates];
|
|
3944
|
-
let currentPoint = startPoint.next;
|
|
3945
|
-
let iterationCount = 0;
|
|
3946
|
-
const maxIterations = targetPolyline.length + sourcePolyline.length + 1000;
|
|
3947
|
-
while (currentPoint !== startPoint && iterationCount < maxIterations) {
|
|
3948
|
-
iterationCount++;
|
|
3949
|
-
if (currentPoint.type === PolylinePointType.Intersection &&
|
|
3950
|
-
currentPoint.cloned) {
|
|
3951
|
-
currentPoint = currentPoint.next;
|
|
3952
|
-
continue;
|
|
3953
|
-
}
|
|
3954
|
-
mergedPolyline.push(currentPoint.coordinates);
|
|
3955
|
-
currentPoint = currentPoint.next;
|
|
3956
|
-
if (!currentPoint) {
|
|
3957
|
-
console.warn('Broken linked list detected in mergePolylines, breaking loop');
|
|
3958
|
-
break;
|
|
3959
|
-
}
|
|
3960
|
-
}
|
|
3961
|
-
if (iterationCount >= maxIterations) {
|
|
3962
|
-
console.warn('Maximum iterations reached in mergePolylines, possible infinite loop detected');
|
|
3963
|
-
}
|
|
3964
|
-
return mergedPolyline;
|
|
3965
|
-
}
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
/***/ }),
|
|
3970
|
-
|
|
3971
|
-
/***/ 46513:
|
|
3972
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3973
|
-
|
|
3974
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3975
|
-
/* harmony export */ A: () => (/* binding */ containsPoint)
|
|
3976
|
-
/* harmony export */ });
|
|
3977
|
-
/* harmony import */ var _isClosed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19246);
|
|
3978
|
-
|
|
3979
|
-
function containsPoint(polyline, point, options = {
|
|
3980
|
-
closed: undefined,
|
|
3981
|
-
}) {
|
|
3982
|
-
if (polyline.length < 3) {
|
|
3983
|
-
return false;
|
|
3984
|
-
}
|
|
3985
|
-
const numPolylinePoints = polyline.length;
|
|
3986
|
-
let numIntersections = 0;
|
|
3987
|
-
const { closed, holes } = options;
|
|
3988
|
-
if (holes?.length) {
|
|
3989
|
-
for (const hole of holes) {
|
|
3990
|
-
if (containsPoint(hole, point)) {
|
|
3991
|
-
return false;
|
|
3992
|
-
}
|
|
3993
|
-
}
|
|
3994
|
-
}
|
|
3995
|
-
const shouldClose = !(closed === undefined ? (0,_isClosed__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(polyline) : closed);
|
|
3996
|
-
const maxSegmentIndex = polyline.length - (shouldClose ? 1 : 2);
|
|
3997
|
-
for (let i = 0; i <= maxSegmentIndex; i++) {
|
|
3998
|
-
const p1 = polyline[i];
|
|
3999
|
-
const p2Index = i === numPolylinePoints - 1 ? 0 : i + 1;
|
|
4000
|
-
const p2 = polyline[p2Index];
|
|
4001
|
-
const maxX = p1[0] >= p2[0] ? p1[0] : p2[0];
|
|
4002
|
-
const maxY = p1[1] >= p2[1] ? p1[1] : p2[1];
|
|
4003
|
-
const minY = p1[1] <= p2[1] ? p1[1] : p2[1];
|
|
4004
|
-
const mayIntersectLineSegment = point[0] <= maxX && point[1] >= minY && point[1] < maxY;
|
|
4005
|
-
if (mayIntersectLineSegment) {
|
|
4006
|
-
const isVerticalLine = p1[0] === p2[0];
|
|
4007
|
-
let intersects = isVerticalLine;
|
|
4008
|
-
if (!intersects) {
|
|
4009
|
-
const xIntersection = ((point[1] - p1[1]) * (p2[0] - p1[0])) / (p2[1] - p1[1]) + p1[0];
|
|
4010
|
-
intersects = point[0] <= xIntersection;
|
|
4011
|
-
}
|
|
4012
|
-
numIntersections += intersects ? 1 : 0;
|
|
4013
|
-
}
|
|
4014
|
-
}
|
|
4015
|
-
return !!(numIntersections % 2);
|
|
4016
|
-
}
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
/***/ }),
|
|
4020
|
-
|
|
4021
|
-
/***/ 58754:
|
|
4022
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4023
|
-
|
|
4024
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4025
|
-
/* harmony export */ A: () => (/* binding */ convexHull)
|
|
4026
|
-
/* harmony export */ });
|
|
4027
|
-
function convexHull(pts) {
|
|
4028
|
-
if (pts.length < 3) {
|
|
4029
|
-
return pts.slice();
|
|
4030
|
-
}
|
|
4031
|
-
const points = pts
|
|
4032
|
-
.map((p) => [p[0], p[1]])
|
|
4033
|
-
.sort((a, b) => a[0] === b[0] ? a[1] - b[1] : a[0] - b[0]);
|
|
4034
|
-
function cross(o, a, b) {
|
|
4035
|
-
return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
|
|
4036
|
-
}
|
|
4037
|
-
const lower = [];
|
|
4038
|
-
for (const p of points) {
|
|
4039
|
-
while (lower.length >= 2 &&
|
|
4040
|
-
cross(lower[lower.length - 2], lower[lower.length - 1], p) <= 0) {
|
|
4041
|
-
lower.pop();
|
|
4042
|
-
}
|
|
4043
|
-
lower.push(p);
|
|
4044
|
-
}
|
|
4045
|
-
const upper = [];
|
|
4046
|
-
for (let i = points.length - 1; i >= 0; i--) {
|
|
4047
|
-
const p = points[i];
|
|
4048
|
-
while (upper.length >= 2 &&
|
|
4049
|
-
cross(upper[upper.length - 2], upper[upper.length - 1], p) <= 0) {
|
|
4050
|
-
upper.pop();
|
|
4051
|
-
}
|
|
4052
|
-
upper.push(p);
|
|
4053
|
-
}
|
|
4054
|
-
lower.pop();
|
|
4055
|
-
upper.pop();
|
|
4056
|
-
return lower.concat(upper);
|
|
4057
|
-
}
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
/***/ }),
|
|
4061
|
-
|
|
4062
|
-
/***/ 98122:
|
|
4063
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4064
|
-
|
|
4065
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4066
|
-
/* harmony export */ A: () => (/* binding */ getAABB)
|
|
4067
|
-
/* harmony export */ });
|
|
4068
|
-
function getAABB(polyline, options) {
|
|
4069
|
-
let polylineToUse = polyline;
|
|
4070
|
-
const numDimensions = options?.numDimensions || 2;
|
|
4071
|
-
const is3D = numDimensions === 3;
|
|
4072
|
-
if (!Array.isArray(polyline[0])) {
|
|
4073
|
-
const currentPolyline = polyline;
|
|
4074
|
-
const totalPoints = currentPolyline.length / numDimensions;
|
|
4075
|
-
polylineToUse = new Array(currentPolyline.length / numDimensions);
|
|
4076
|
-
for (let i = 0, len = totalPoints; i < len; i++) {
|
|
4077
|
-
polylineToUse[i] = [
|
|
4078
|
-
currentPolyline[i * numDimensions],
|
|
4079
|
-
currentPolyline[i * numDimensions + 1],
|
|
4080
|
-
];
|
|
4081
|
-
if (is3D) {
|
|
4082
|
-
polylineToUse[i].push(currentPolyline[i * numDimensions + 2]);
|
|
4083
|
-
}
|
|
4084
|
-
}
|
|
4085
|
-
}
|
|
4086
|
-
let minX = Infinity;
|
|
4087
|
-
let minY = Infinity;
|
|
4088
|
-
let maxX = -Infinity;
|
|
4089
|
-
let maxY = -Infinity;
|
|
4090
|
-
let minZ = Infinity;
|
|
4091
|
-
let maxZ = -Infinity;
|
|
4092
|
-
polylineToUse = polylineToUse;
|
|
4093
|
-
for (let i = 0, len = polylineToUse.length; i < len; i++) {
|
|
4094
|
-
const [x, y, z] = polylineToUse[i];
|
|
4095
|
-
minX = minX < x ? minX : x;
|
|
4096
|
-
minY = minY < y ? minY : y;
|
|
4097
|
-
maxX = maxX > x ? maxX : x;
|
|
4098
|
-
maxY = maxY > y ? maxY : y;
|
|
4099
|
-
if (is3D) {
|
|
4100
|
-
minZ = minZ < z ? minZ : z;
|
|
4101
|
-
maxZ = maxZ > z ? maxZ : z;
|
|
4102
|
-
}
|
|
4103
|
-
}
|
|
4104
|
-
return is3D
|
|
4105
|
-
? { minX, maxX, minY, maxY, minZ, maxZ }
|
|
4106
|
-
: { minX, maxX, minY, maxY };
|
|
4107
|
-
}
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
/***/ }),
|
|
4111
|
-
|
|
4112
|
-
/***/ 86909:
|
|
4113
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4114
|
-
|
|
4115
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4116
|
-
/* harmony export */ A: () => (/* binding */ getArea)
|
|
4117
|
-
/* harmony export */ });
|
|
4118
|
-
function getArea(points) {
|
|
4119
|
-
const n = points.length;
|
|
4120
|
-
let area = 0.0;
|
|
4121
|
-
let j = n - 1;
|
|
4122
|
-
for (let i = 0; i < n; i++) {
|
|
4123
|
-
area += (points[j][0] + points[i][0]) * (points[j][1] - points[i][1]);
|
|
4124
|
-
j = i;
|
|
4125
|
-
}
|
|
4126
|
-
return Math.abs(area / 2.0);
|
|
4127
|
-
}
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
/***/ }),
|
|
4131
|
-
|
|
4132
|
-
/***/ 32979:
|
|
4133
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4134
|
-
|
|
4135
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4136
|
-
/* harmony export */ A: () => (/* binding */ getClosestLineSegmentIntersection)
|
|
4137
|
-
/* harmony export */ });
|
|
4138
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
4139
|
-
/* harmony import */ var _areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56777);
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
function getClosestLineSegmentIntersection(points, p1, q1, closed = true) {
|
|
4143
|
-
let initialQ2Index;
|
|
4144
|
-
let p2Index;
|
|
4145
|
-
if (closed) {
|
|
4146
|
-
p2Index = points.length - 1;
|
|
4147
|
-
initialQ2Index = 0;
|
|
4148
|
-
}
|
|
4149
|
-
else {
|
|
4150
|
-
p2Index = 0;
|
|
4151
|
-
initialQ2Index = 1;
|
|
4152
|
-
}
|
|
4153
|
-
const intersections = [];
|
|
4154
|
-
for (let q2Index = initialQ2Index; q2Index < points.length; q2Index++) {
|
|
4155
|
-
const p2 = points[p2Index];
|
|
4156
|
-
const q2 = points[q2Index];
|
|
4157
|
-
if ((0,_areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(p1, q1, p2, q2)) {
|
|
4158
|
-
intersections.push([p2Index, q2Index]);
|
|
4159
|
-
}
|
|
4160
|
-
p2Index = q2Index;
|
|
4161
|
-
}
|
|
4162
|
-
if (intersections.length === 0) {
|
|
4163
|
-
return;
|
|
4164
|
-
}
|
|
4165
|
-
const distances = [];
|
|
4166
|
-
intersections.forEach((intersection) => {
|
|
4167
|
-
const intersectionPoints = [
|
|
4168
|
-
points[intersection[0]],
|
|
4169
|
-
points[intersection[1]],
|
|
4170
|
-
];
|
|
4171
|
-
const midpoint = [
|
|
4172
|
-
(intersectionPoints[0][0] + intersectionPoints[1][0]) / 2,
|
|
4173
|
-
(intersectionPoints[0][1] + intersectionPoints[1][1]) / 2,
|
|
4174
|
-
];
|
|
4175
|
-
distances.push(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.distance */ .Zc.distance(midpoint, p1));
|
|
4176
|
-
});
|
|
4177
|
-
const minDistance = Math.min(...distances);
|
|
4178
|
-
const indexOfMinDistance = distances.indexOf(minDistance);
|
|
4179
|
-
return {
|
|
4180
|
-
segment: intersections[indexOfMinDistance],
|
|
4181
|
-
distance: minDistance,
|
|
4182
|
-
};
|
|
4183
|
-
}
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
/***/ }),
|
|
4187
|
-
|
|
4188
|
-
/***/ 4338:
|
|
4189
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4190
|
-
|
|
4191
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4192
|
-
/* harmony export */ A: () => (/* binding */ getFirstLineSegmentIntersectionIndexes)
|
|
4193
|
-
/* harmony export */ });
|
|
4194
|
-
/* harmony import */ var _areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56777);
|
|
4195
|
-
|
|
4196
|
-
function getFirstLineSegmentIntersectionIndexes(points, p1, q1, closed = true) {
|
|
4197
|
-
let initialI;
|
|
4198
|
-
let j;
|
|
4199
|
-
if (closed) {
|
|
4200
|
-
j = points.length - 1;
|
|
4201
|
-
initialI = 0;
|
|
4202
|
-
}
|
|
4203
|
-
else {
|
|
4204
|
-
j = 0;
|
|
4205
|
-
initialI = 1;
|
|
4206
|
-
}
|
|
4207
|
-
for (let i = initialI; i < points.length; i++) {
|
|
4208
|
-
const p2 = points[j];
|
|
4209
|
-
const q2 = points[i];
|
|
4210
|
-
if ((0,_areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(p1, q1, p2, q2)) {
|
|
4211
|
-
return [j, i];
|
|
4212
|
-
}
|
|
4213
|
-
j = i;
|
|
4214
|
-
}
|
|
4215
|
-
}
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
/***/ }),
|
|
4219
|
-
|
|
4220
|
-
/***/ 50932:
|
|
4221
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4222
|
-
|
|
4223
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4224
|
-
/* harmony export */ A: () => (/* binding */ getLineSegmentIntersectionsCoordinates)
|
|
4225
|
-
/* harmony export */ });
|
|
4226
|
-
/* harmony import */ var _getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37135);
|
|
4227
|
-
/* harmony import */ var _getLinesIntersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10812);
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
function getLineSegmentIntersectionsCoordinates(points, p1, q1, closed = true) {
|
|
4231
|
-
const result = [];
|
|
4232
|
-
const polylineIndexes = (0,_getLineSegmentIntersectionsIndexes__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(points, p1, q1, closed);
|
|
4233
|
-
for (let i = 0; i < polylineIndexes.length; i++) {
|
|
4234
|
-
const p2 = points[polylineIndexes[i][0]];
|
|
4235
|
-
const q2 = points[polylineIndexes[i][1]];
|
|
4236
|
-
const intersection = (0,_getLinesIntersection__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(p1, q1, p2, q2);
|
|
4237
|
-
result.push(intersection);
|
|
4238
|
-
}
|
|
4239
|
-
return result;
|
|
4240
|
-
}
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
/***/ }),
|
|
4244
|
-
|
|
4245
|
-
/***/ 37135:
|
|
4246
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4247
|
-
|
|
4248
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4249
|
-
/* harmony export */ A: () => (/* binding */ getLineSegmentIntersectionsIndexes)
|
|
4250
|
-
/* harmony export */ });
|
|
4251
|
-
/* harmony import */ var _areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56777);
|
|
4252
|
-
|
|
4253
|
-
function getLineSegmentIntersectionsIndexes(polyline, p1, q1, closed = true) {
|
|
4254
|
-
const intersections = [];
|
|
4255
|
-
const numPoints = polyline.length;
|
|
4256
|
-
const maxI = numPoints - (closed ? 1 : 2);
|
|
4257
|
-
for (let i = 0; i <= maxI; i++) {
|
|
4258
|
-
const p2 = polyline[i];
|
|
4259
|
-
const j = i === numPoints - 1 ? 0 : i + 1;
|
|
4260
|
-
const q2 = polyline[j];
|
|
4261
|
-
if ((0,_areLineSegmentsIntersecting__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(p1, q1, p2, q2)) {
|
|
4262
|
-
intersections.push([i, j]);
|
|
4263
|
-
}
|
|
4264
|
-
}
|
|
4265
|
-
return intersections;
|
|
4266
|
-
}
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
/***/ }),
|
|
4270
|
-
|
|
4271
|
-
/***/ 10812:
|
|
4272
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4273
|
-
|
|
4274
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4275
|
-
/* harmony export */ A: () => (/* binding */ getLinesIntersection)
|
|
4276
|
-
/* harmony export */ });
|
|
4277
|
-
/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93258);
|
|
4278
|
-
|
|
4279
|
-
const PARALLEL_LINES_TOLERANCE = 1e-2;
|
|
4280
|
-
function getLinesIntersection(p1, q1, p2, q2) {
|
|
4281
|
-
const diffQ1P1 = [q1[0] - p1[0], q1[1] - p1[1]];
|
|
4282
|
-
const diffQ2P2 = [q2[0] - p2[0], q2[1] - p2[1]];
|
|
4283
|
-
const denominator = diffQ2P2[1] * diffQ1P1[0] - diffQ2P2[0] * diffQ1P1[1];
|
|
4284
|
-
const absDenominator = denominator >= 0 ? denominator : -denominator;
|
|
4285
|
-
if (absDenominator < PARALLEL_LINES_TOLERANCE) {
|
|
4286
|
-
const line1AABB = [
|
|
4287
|
-
p1[0] < q1[0] ? p1[0] : q1[0],
|
|
4288
|
-
p1[0] > q1[0] ? p1[0] : q1[0],
|
|
4289
|
-
p1[1] < q1[1] ? p1[1] : q1[1],
|
|
4290
|
-
p1[1] > q1[1] ? p1[1] : q1[1],
|
|
4291
|
-
];
|
|
4292
|
-
const line2AABB = [
|
|
4293
|
-
p2[0] < q2[0] ? p2[0] : q2[0],
|
|
4294
|
-
p2[0] > q2[0] ? p2[0] : q2[0],
|
|
4295
|
-
p2[1] < q2[1] ? p2[1] : q2[1],
|
|
4296
|
-
p2[1] > q2[1] ? p2[1] : q2[1],
|
|
4297
|
-
];
|
|
4298
|
-
const aabbIntersects = line1AABB[0] <= line2AABB[1] &&
|
|
4299
|
-
line1AABB[1] >= line2AABB[0] &&
|
|
4300
|
-
line1AABB[2] <= line2AABB[3] &&
|
|
4301
|
-
line1AABB[3] >= line2AABB[2];
|
|
4302
|
-
if (!aabbIntersects) {
|
|
4303
|
-
return;
|
|
4304
|
-
}
|
|
4305
|
-
const overlap = _line__WEBPACK_IMPORTED_MODULE_0__.isPointOnLineSegment(p1, q1, p2) ||
|
|
4306
|
-
_line__WEBPACK_IMPORTED_MODULE_0__.isPointOnLineSegment(p1, q1, q2) ||
|
|
4307
|
-
_line__WEBPACK_IMPORTED_MODULE_0__.isPointOnLineSegment(p2, q2, p1);
|
|
4308
|
-
if (!overlap) {
|
|
4309
|
-
return;
|
|
4310
|
-
}
|
|
4311
|
-
const minX = line1AABB[0] > line2AABB[0] ? line1AABB[0] : line2AABB[0];
|
|
4312
|
-
const maxX = line1AABB[1] < line2AABB[1] ? line1AABB[1] : line2AABB[1];
|
|
4313
|
-
const minY = line1AABB[2] > line2AABB[2] ? line1AABB[2] : line2AABB[2];
|
|
4314
|
-
const maxY = line1AABB[3] < line2AABB[3] ? line1AABB[3] : line2AABB[3];
|
|
4315
|
-
const midX = (minX + maxX) * 0.5;
|
|
4316
|
-
const midY = (minY + maxY) * 0.5;
|
|
4317
|
-
return [midX, midY];
|
|
4318
|
-
}
|
|
4319
|
-
let a = p1[1] - p2[1];
|
|
4320
|
-
let b = p1[0] - p2[0];
|
|
4321
|
-
const numerator1 = diffQ2P2[0] * a - diffQ2P2[1] * b;
|
|
4322
|
-
const numerator2 = diffQ1P1[0] * a - diffQ1P1[1] * b;
|
|
4323
|
-
a = numerator1 / denominator;
|
|
4324
|
-
b = numerator2 / denominator;
|
|
4325
|
-
const resultX = p1[0] + a * diffQ1P1[0];
|
|
4326
|
-
const resultY = p1[1] + a * diffQ1P1[1];
|
|
4327
|
-
return [resultX, resultY];
|
|
4328
|
-
}
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
/***/ }),
|
|
4332
|
-
|
|
4333
|
-
/***/ 11377:
|
|
4334
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4335
|
-
|
|
4336
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4337
|
-
/* harmony export */ A: () => (/* binding */ getNormal2)
|
|
4338
|
-
/* harmony export */ });
|
|
4339
|
-
/* harmony import */ var _getSignedArea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63113);
|
|
4340
|
-
|
|
4341
|
-
function getNormal2(polyline) {
|
|
4342
|
-
const area = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(polyline);
|
|
4343
|
-
return [0, 0, area / Math.abs(area)];
|
|
4344
|
-
}
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
/***/ }),
|
|
4348
|
-
|
|
4349
|
-
/***/ 43490:
|
|
4350
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4351
|
-
|
|
4352
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4353
|
-
/* harmony export */ A: () => (/* binding */ getNormal3)
|
|
4354
|
-
/* harmony export */ });
|
|
4355
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
4356
|
-
|
|
4357
|
-
function _getAreaVector(polyline) {
|
|
4358
|
-
const vecArea = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
4359
|
-
const refPoint = polyline[0];
|
|
4360
|
-
for (let i = 0, len = polyline.length; i < len; i++) {
|
|
4361
|
-
const p1 = polyline[i];
|
|
4362
|
-
const p2Index = i === len - 1 ? 0 : i + 1;
|
|
4363
|
-
const p2 = polyline[p2Index];
|
|
4364
|
-
const aX = p1[0] - refPoint[0];
|
|
4365
|
-
const aY = p1[1] - refPoint[1];
|
|
4366
|
-
const aZ = p1[2] - refPoint[2];
|
|
4367
|
-
const bX = p2[0] - refPoint[0];
|
|
4368
|
-
const bY = p2[1] - refPoint[1];
|
|
4369
|
-
const bZ = p2[2] - refPoint[2];
|
|
4370
|
-
vecArea[0] += aY * bZ - aZ * bY;
|
|
4371
|
-
vecArea[1] += aZ * bX - aX * bZ;
|
|
4372
|
-
vecArea[2] += aX * bY - aY * bX;
|
|
4373
|
-
}
|
|
4374
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scale */ .eR.scale(vecArea, vecArea, 0.5);
|
|
4375
|
-
return vecArea;
|
|
4376
|
-
}
|
|
4377
|
-
function getNormal3(polyline) {
|
|
4378
|
-
const vecArea = _getAreaVector(polyline);
|
|
4379
|
-
return gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.normalize */ .eR.normalize(vecArea, vecArea);
|
|
4380
|
-
}
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
/***/ }),
|
|
4384
|
-
|
|
4385
|
-
/***/ 61785:
|
|
4386
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4387
|
-
|
|
4388
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4389
|
-
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
4390
|
-
/* harmony export */ });
|
|
4391
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
4392
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3823);
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
const EPSILON = 1e-3;
|
|
4396
|
-
const getSubPixelSpacingAndXYDirections = (viewport, subPixelResolution) => {
|
|
4397
|
-
let spacing;
|
|
4398
|
-
let xDir;
|
|
4399
|
-
let yDir;
|
|
4400
|
-
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.StackViewport) {
|
|
4401
|
-
const imageData = viewport.getImageData();
|
|
4402
|
-
if (!imageData) {
|
|
4403
|
-
return;
|
|
4404
|
-
}
|
|
4405
|
-
xDir = imageData.direction.slice(0, 3);
|
|
4406
|
-
yDir = imageData.direction.slice(3, 6);
|
|
4407
|
-
spacing = imageData.spacing;
|
|
4408
|
-
}
|
|
4409
|
-
else {
|
|
4410
|
-
const imageData = viewport.getImageData();
|
|
4411
|
-
const { direction, spacing: volumeSpacing } = imageData;
|
|
4412
|
-
const { viewPlaneNormal, viewUp } = viewport.getCamera();
|
|
4413
|
-
const iVector = direction.slice(0, 3);
|
|
4414
|
-
const jVector = direction.slice(3, 6);
|
|
4415
|
-
const kVector = direction.slice(6, 9);
|
|
4416
|
-
const viewRight = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
4417
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.cross */ .eR.cross(viewRight, viewUp, viewPlaneNormal);
|
|
4418
|
-
const absViewRightDotI = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewRight, iVector));
|
|
4419
|
-
const absViewRightDotJ = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewRight, jVector));
|
|
4420
|
-
const absViewRightDotK = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewRight, kVector));
|
|
4421
|
-
let xSpacing;
|
|
4422
|
-
if (Math.abs(1 - absViewRightDotI) < EPSILON) {
|
|
4423
|
-
xSpacing = volumeSpacing[0];
|
|
4424
|
-
xDir = iVector;
|
|
4425
|
-
}
|
|
4426
|
-
else if (Math.abs(1 - absViewRightDotJ) < EPSILON) {
|
|
4427
|
-
xSpacing = volumeSpacing[1];
|
|
4428
|
-
xDir = jVector;
|
|
4429
|
-
}
|
|
4430
|
-
else if (Math.abs(1 - absViewRightDotK) < EPSILON) {
|
|
4431
|
-
xSpacing = volumeSpacing[2];
|
|
4432
|
-
xDir = kVector;
|
|
4433
|
-
}
|
|
4434
|
-
else {
|
|
4435
|
-
throw new Error('No support yet for oblique plane planar contours');
|
|
4436
|
-
}
|
|
4437
|
-
const absViewUpDotI = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewUp, iVector));
|
|
4438
|
-
const absViewUpDotJ = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewUp, jVector));
|
|
4439
|
-
const absViewUpDotK = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewUp, kVector));
|
|
4440
|
-
let ySpacing;
|
|
4441
|
-
if (Math.abs(1 - absViewUpDotI) < EPSILON) {
|
|
4442
|
-
ySpacing = volumeSpacing[0];
|
|
4443
|
-
yDir = iVector;
|
|
4444
|
-
}
|
|
4445
|
-
else if (Math.abs(1 - absViewUpDotJ) < EPSILON) {
|
|
4446
|
-
ySpacing = volumeSpacing[1];
|
|
4447
|
-
yDir = jVector;
|
|
4448
|
-
}
|
|
4449
|
-
else if (Math.abs(1 - absViewUpDotK) < EPSILON) {
|
|
4450
|
-
ySpacing = volumeSpacing[2];
|
|
4451
|
-
yDir = kVector;
|
|
4452
|
-
}
|
|
4453
|
-
else {
|
|
4454
|
-
throw new Error('No support yet for oblique plane planar contours');
|
|
4455
|
-
}
|
|
4456
|
-
spacing = [xSpacing, ySpacing];
|
|
4457
|
-
}
|
|
4458
|
-
const subPixelSpacing = [
|
|
4459
|
-
spacing[0] / subPixelResolution,
|
|
4460
|
-
spacing[1] / subPixelResolution,
|
|
4461
|
-
];
|
|
4462
|
-
return { spacing: subPixelSpacing, xDir, yDir };
|
|
4463
|
-
};
|
|
4464
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSubPixelSpacingAndXYDirections);
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
/***/ }),
|
|
4468
|
-
|
|
4469
|
-
/***/ 4239:
|
|
4470
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4471
|
-
|
|
4472
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4473
|
-
/* harmony export */ A: () => (/* binding */ getWindingDirection)
|
|
4474
|
-
/* harmony export */ });
|
|
4475
|
-
/* harmony import */ var _getSignedArea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63113);
|
|
4476
|
-
|
|
4477
|
-
function getWindingDirection(polyline) {
|
|
4478
|
-
const signedArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(polyline);
|
|
4479
|
-
return signedArea >= 0 ? 1 : -1;
|
|
4480
|
-
}
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
/***/ }),
|
|
4484
|
-
|
|
4485
|
-
/***/ 405:
|
|
4486
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4487
|
-
|
|
4488
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4489
|
-
/* harmony export */ A: () => (/* binding */ intersectPolyline)
|
|
4490
|
-
/* harmony export */ });
|
|
4491
|
-
/* harmony import */ var _getFirstLineSegmentIntersectionIndexes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4338);
|
|
4492
|
-
|
|
4493
|
-
function intersectPolyline(sourcePolyline, targetPolyline) {
|
|
4494
|
-
for (let i = 0, sourceLen = sourcePolyline.length; i < sourceLen; i++) {
|
|
4495
|
-
const sourceP1 = sourcePolyline[i];
|
|
4496
|
-
const sourceP2Index = i === sourceLen - 1 ? 0 : i + 1;
|
|
4497
|
-
const sourceP2 = sourcePolyline[sourceP2Index];
|
|
4498
|
-
const intersectionPointIndexes = (0,_getFirstLineSegmentIntersectionIndexes__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(targetPolyline, sourceP1, sourceP2);
|
|
4499
|
-
if (intersectionPointIndexes?.length === 2) {
|
|
4500
|
-
return true;
|
|
4501
|
-
}
|
|
4502
|
-
}
|
|
4503
|
-
return false;
|
|
4504
|
-
}
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
/***/ }),
|
|
4508
|
-
|
|
4509
|
-
/***/ 70112:
|
|
4510
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4511
|
-
|
|
4512
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4513
|
-
/* harmony export */ A: () => (/* binding */ intersectPolylines)
|
|
4514
|
-
/* harmony export */ });
|
|
4515
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
4516
|
-
/* harmony import */ var _containsPoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46513);
|
|
4517
|
-
/* harmony import */ var _getSignedArea__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(63113);
|
|
4518
|
-
/* harmony import */ var _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36039);
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
function intersectPolylines(mainPolyCoords, clipPolyCoordsInput) {
|
|
4524
|
-
if (mainPolyCoords.length < 3 || clipPolyCoordsInput.length < 3) {
|
|
4525
|
-
return [];
|
|
4526
|
-
}
|
|
4527
|
-
let clipPolyCoords = clipPolyCoordsInput.slice();
|
|
4528
|
-
const mainArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(mainPolyCoords);
|
|
4529
|
-
const clipArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(clipPolyCoords);
|
|
4530
|
-
if (Math.abs(mainArea) < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8 || Math.abs(clipArea) < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8) {
|
|
4531
|
-
return [];
|
|
4532
|
-
}
|
|
4533
|
-
if (mainArea < 0) {
|
|
4534
|
-
mainPolyCoords = mainPolyCoords.slice().reverse();
|
|
4535
|
-
}
|
|
4536
|
-
if (clipArea < 0) {
|
|
4537
|
-
clipPolyCoords = clipPolyCoords.slice().reverse();
|
|
4538
|
-
}
|
|
4539
|
-
const currentClipPolyForPIP = clipPolyCoords;
|
|
4540
|
-
const intersections = [];
|
|
4541
|
-
for (let i = 0; i < mainPolyCoords.length; i++) {
|
|
4542
|
-
const p1 = mainPolyCoords[i];
|
|
4543
|
-
const p2 = mainPolyCoords[(i + 1) % mainPolyCoords.length];
|
|
4544
|
-
for (let j = 0; j < clipPolyCoords.length; j++) {
|
|
4545
|
-
const q1 = clipPolyCoords[j];
|
|
4546
|
-
const q2 = clipPolyCoords[(j + 1) % clipPolyCoords.length];
|
|
4547
|
-
const intersectPt = (0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .robustSegmentIntersection */ .O4)(p1, p2, q1, q2);
|
|
4548
|
-
if (intersectPt) {
|
|
4549
|
-
const lenP = Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(p1, p2));
|
|
4550
|
-
const lenQ = Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(q1, q2));
|
|
4551
|
-
intersections.push({
|
|
4552
|
-
coord: [...intersectPt],
|
|
4553
|
-
seg1Idx: i,
|
|
4554
|
-
seg2Idx: j,
|
|
4555
|
-
alpha1: lenP < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8
|
|
4556
|
-
? 0
|
|
4557
|
-
: Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(p1, intersectPt)) / lenP,
|
|
4558
|
-
alpha2: lenQ < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8
|
|
4559
|
-
? 0
|
|
4560
|
-
: Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(q1, intersectPt)) / lenQ,
|
|
4561
|
-
});
|
|
4562
|
-
}
|
|
4563
|
-
}
|
|
4564
|
-
}
|
|
4565
|
-
if (intersections.length === 0) {
|
|
4566
|
-
if ((0,_containsPoint__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(currentClipPolyForPIP, mainPolyCoords[0]) &&
|
|
4567
|
-
mainPolyCoords.every((pt) => (0,_containsPoint__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(currentClipPolyForPIP, pt))) {
|
|
4568
|
-
return [[...mainPolyCoords.map((p) => [...p])]];
|
|
4569
|
-
}
|
|
4570
|
-
if ((0,_containsPoint__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(mainPolyCoords, clipPolyCoords[0]) &&
|
|
4571
|
-
clipPolyCoords.every((pt) => (0,_containsPoint__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(mainPolyCoords, pt))) {
|
|
4572
|
-
return [[...clipPolyCoords.map((p) => [...p])]];
|
|
4573
|
-
}
|
|
4574
|
-
return [];
|
|
4575
|
-
}
|
|
4576
|
-
const buildAugmentedList = (polyCoords, polyIndex, allIntersections) => {
|
|
4577
|
-
const augmentedList = [];
|
|
4578
|
-
let nodeIdCounter = 0;
|
|
4579
|
-
for (let i = 0; i < polyCoords.length; i++) {
|
|
4580
|
-
const p1 = polyCoords[i];
|
|
4581
|
-
augmentedList.push({
|
|
4582
|
-
id: `${polyIndex}_v${nodeIdCounter++}`,
|
|
4583
|
-
coordinates: [...p1],
|
|
4584
|
-
type: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .PolylineNodeType */ .n7.Vertex,
|
|
4585
|
-
originalPolyIndex: polyIndex,
|
|
4586
|
-
originalVertexIndex: i,
|
|
4587
|
-
next: null,
|
|
4588
|
-
prev: null,
|
|
4589
|
-
isIntersection: false,
|
|
4590
|
-
visited: false,
|
|
4591
|
-
processedInPath: false,
|
|
4592
|
-
intersectionDir: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Unknown,
|
|
4593
|
-
});
|
|
4594
|
-
const segmentIntersections = allIntersections
|
|
4595
|
-
.filter((isect) => (polyIndex === 0 ? isect.seg1Idx : isect.seg2Idx) === i)
|
|
4596
|
-
.sort((a, b) => (polyIndex === 0 ? a.alpha1 : a.alpha2) -
|
|
4597
|
-
(polyIndex === 0 ? b.alpha1 : b.alpha2));
|
|
4598
|
-
for (const isect of segmentIntersections) {
|
|
4599
|
-
if (augmentedList.length > 0 &&
|
|
4600
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(augmentedList[augmentedList.length - 1].coordinates, isect.coord)) {
|
|
4601
|
-
const lastNode = augmentedList[augmentedList.length - 1];
|
|
4602
|
-
if (!lastNode.isIntersection) {
|
|
4603
|
-
lastNode.isIntersection = true;
|
|
4604
|
-
lastNode.intersectionInfo = isect;
|
|
4605
|
-
lastNode.alpha = polyIndex === 0 ? isect.alpha1 : isect.alpha2;
|
|
4606
|
-
lastNode.type = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .PolylineNodeType */ .n7.Intersection;
|
|
4607
|
-
}
|
|
4608
|
-
continue;
|
|
4609
|
-
}
|
|
4610
|
-
augmentedList.push({
|
|
4611
|
-
id: `${polyIndex}_i${nodeIdCounter++}`,
|
|
4612
|
-
coordinates: [...isect.coord],
|
|
4613
|
-
type: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .PolylineNodeType */ .n7.Intersection,
|
|
4614
|
-
originalPolyIndex: polyIndex,
|
|
4615
|
-
next: null,
|
|
4616
|
-
prev: null,
|
|
4617
|
-
isIntersection: true,
|
|
4618
|
-
visited: false,
|
|
4619
|
-
processedInPath: false,
|
|
4620
|
-
alpha: polyIndex === 0 ? isect.alpha1 : isect.alpha2,
|
|
4621
|
-
intersectionInfo: isect,
|
|
4622
|
-
intersectionDir: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Unknown,
|
|
4623
|
-
});
|
|
4624
|
-
}
|
|
4625
|
-
}
|
|
4626
|
-
const finalList = [];
|
|
4627
|
-
if (augmentedList.length > 0) {
|
|
4628
|
-
finalList.push(augmentedList[0]);
|
|
4629
|
-
for (let i = 1; i < augmentedList.length; i++) {
|
|
4630
|
-
if (!(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(augmentedList[i].coordinates, finalList[finalList.length - 1].coordinates)) {
|
|
4631
|
-
finalList.push(augmentedList[i]);
|
|
4632
|
-
}
|
|
4633
|
-
else {
|
|
4634
|
-
const lastNodeInFinal = finalList[finalList.length - 1];
|
|
4635
|
-
if (augmentedList[i].isIntersection &&
|
|
4636
|
-
augmentedList[i].intersectionInfo) {
|
|
4637
|
-
lastNodeInFinal.isIntersection = true;
|
|
4638
|
-
lastNodeInFinal.intersectionInfo =
|
|
4639
|
-
augmentedList[i].intersectionInfo;
|
|
4640
|
-
lastNodeInFinal.alpha = augmentedList[i].alpha;
|
|
4641
|
-
lastNodeInFinal.type = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .PolylineNodeType */ .n7.Intersection;
|
|
4642
|
-
}
|
|
4643
|
-
}
|
|
4644
|
-
}
|
|
4645
|
-
}
|
|
4646
|
-
if (finalList.length > 1 &&
|
|
4647
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(finalList[0].coordinates, finalList[finalList.length - 1].coordinates)) {
|
|
4648
|
-
const firstNode = finalList[0];
|
|
4649
|
-
const lastNodePopped = finalList.pop();
|
|
4650
|
-
if (lastNodePopped.isIntersection &&
|
|
4651
|
-
!firstNode.isIntersection &&
|
|
4652
|
-
lastNodePopped.intersectionInfo) {
|
|
4653
|
-
firstNode.isIntersection = true;
|
|
4654
|
-
firstNode.intersectionInfo = lastNodePopped.intersectionInfo;
|
|
4655
|
-
firstNode.alpha = lastNodePopped.alpha;
|
|
4656
|
-
firstNode.type = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .PolylineNodeType */ .n7.Intersection;
|
|
4657
|
-
}
|
|
4658
|
-
}
|
|
4659
|
-
if (finalList.length > 0) {
|
|
4660
|
-
for (let i = 0; i < finalList.length; i++) {
|
|
4661
|
-
finalList[i].next = finalList[(i + 1) % finalList.length];
|
|
4662
|
-
finalList[i].prev =
|
|
4663
|
-
finalList[(i - 1 + finalList.length) % finalList.length];
|
|
4664
|
-
}
|
|
4665
|
-
}
|
|
4666
|
-
return finalList;
|
|
4667
|
-
};
|
|
4668
|
-
const mainAugmented = buildAugmentedList(mainPolyCoords, 0, intersections);
|
|
4669
|
-
const clipAugmented = buildAugmentedList(clipPolyCoords, 1, intersections);
|
|
4670
|
-
if (mainAugmented.length === 0 || clipAugmented.length === 0) {
|
|
4671
|
-
return [];
|
|
4672
|
-
}
|
|
4673
|
-
mainAugmented.forEach((mainNode) => {
|
|
4674
|
-
if (mainNode.isIntersection && mainNode.intersectionInfo) {
|
|
4675
|
-
const mainIntersectData = mainNode.intersectionInfo;
|
|
4676
|
-
const partnerNode = clipAugmented.find((clipNode) => clipNode.isIntersection &&
|
|
4677
|
-
clipNode.intersectionInfo &&
|
|
4678
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(clipNode.coordinates, mainNode.coordinates) &&
|
|
4679
|
-
clipNode.intersectionInfo.seg1Idx === mainIntersectData.seg1Idx &&
|
|
4680
|
-
clipNode.intersectionInfo.seg2Idx === mainIntersectData.seg2Idx);
|
|
4681
|
-
if (partnerNode) {
|
|
4682
|
-
mainNode.partnerNode = partnerNode;
|
|
4683
|
-
partnerNode.partnerNode = mainNode;
|
|
4684
|
-
const v_arrival_main = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), mainNode.coordinates, mainNode.prev.coordinates);
|
|
4685
|
-
const v_departure_clip = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), partnerNode.next.coordinates, partnerNode.coordinates);
|
|
4686
|
-
const crossZ = v_arrival_main[0] * v_departure_clip[1] -
|
|
4687
|
-
v_arrival_main[1] * v_departure_clip[0];
|
|
4688
|
-
if (crossZ > _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8) {
|
|
4689
|
-
mainNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Entering;
|
|
4690
|
-
partnerNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Exiting;
|
|
4691
|
-
}
|
|
4692
|
-
else if (crossZ < -_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .EPSILON */ .p8) {
|
|
4693
|
-
mainNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Exiting;
|
|
4694
|
-
partnerNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Entering;
|
|
4695
|
-
}
|
|
4696
|
-
else {
|
|
4697
|
-
const midPrevMainSeg = [
|
|
4698
|
-
(mainNode.prev.coordinates[0] + mainNode.coordinates[0]) / 2,
|
|
4699
|
-
(mainNode.prev.coordinates[1] + mainNode.coordinates[1]) / 2,
|
|
4700
|
-
];
|
|
4701
|
-
if ((0,_containsPoint__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(currentClipPolyForPIP, midPrevMainSeg)) {
|
|
4702
|
-
mainNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Exiting;
|
|
4703
|
-
partnerNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Entering;
|
|
4704
|
-
}
|
|
4705
|
-
else {
|
|
4706
|
-
mainNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Entering;
|
|
4707
|
-
partnerNode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Exiting;
|
|
4708
|
-
}
|
|
4709
|
-
}
|
|
4710
|
-
}
|
|
4711
|
-
else {
|
|
4712
|
-
mainNode.isIntersection = false;
|
|
4713
|
-
mainNode.intersectionInfo = undefined;
|
|
4714
|
-
}
|
|
4715
|
-
}
|
|
4716
|
-
});
|
|
4717
|
-
const resultPolygons = [];
|
|
4718
|
-
for (const startCand of mainAugmented) {
|
|
4719
|
-
if (!startCand.isIntersection ||
|
|
4720
|
-
startCand.visited ||
|
|
4721
|
-
startCand.intersectionDir !== _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .IntersectionDirection */ .lG.Entering) {
|
|
4722
|
-
continue;
|
|
4723
|
-
}
|
|
4724
|
-
let currentPathCoords = [];
|
|
4725
|
-
let currentNode = startCand;
|
|
4726
|
-
let onMainList = true;
|
|
4727
|
-
const pathStartNode = startCand;
|
|
4728
|
-
let safetyBreak = 0;
|
|
4729
|
-
const maxIter = (mainAugmented.length + clipAugmented.length) * 2;
|
|
4730
|
-
mainAugmented.forEach((n) => (n.processedInPath = false));
|
|
4731
|
-
clipAugmented.forEach((n) => (n.processedInPath = false));
|
|
4732
|
-
do {
|
|
4733
|
-
if (safetyBreak++ > maxIter) {
|
|
4734
|
-
console.warn('Intersection: Max iterations in path tracing.', pathStartNode.id, currentNode.id);
|
|
4735
|
-
currentPathCoords = [];
|
|
4736
|
-
break;
|
|
4737
|
-
}
|
|
4738
|
-
if (currentNode.processedInPath && currentNode !== pathStartNode) {
|
|
4739
|
-
console.warn('Intersection: Path processing loop detected, discarding path segment.', pathStartNode.id, currentNode.id);
|
|
4740
|
-
currentPathCoords = [];
|
|
4741
|
-
break;
|
|
4742
|
-
}
|
|
4743
|
-
currentNode.processedInPath = true;
|
|
4744
|
-
currentNode.visited = true;
|
|
4745
|
-
if (currentPathCoords.length === 0 ||
|
|
4746
|
-
!(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(currentPathCoords[currentPathCoords.length - 1], currentNode.coordinates)) {
|
|
4747
|
-
currentPathCoords.push([...currentNode.coordinates]);
|
|
4748
|
-
}
|
|
4749
|
-
let switchedList = false;
|
|
4750
|
-
if (currentNode.isIntersection && currentNode.partnerNode) {
|
|
4751
|
-
if (onMainList) {
|
|
4752
|
-
currentNode = currentNode.partnerNode;
|
|
4753
|
-
onMainList = false;
|
|
4754
|
-
switchedList = true;
|
|
4755
|
-
}
|
|
4756
|
-
else {
|
|
4757
|
-
currentNode = currentNode.partnerNode;
|
|
4758
|
-
onMainList = true;
|
|
4759
|
-
switchedList = true;
|
|
4760
|
-
}
|
|
4761
|
-
}
|
|
4762
|
-
if (!switchedList) {
|
|
4763
|
-
currentNode = currentNode.next;
|
|
4764
|
-
}
|
|
4765
|
-
else {
|
|
4766
|
-
currentNode = currentNode.next;
|
|
4767
|
-
}
|
|
4768
|
-
} while (currentNode !== pathStartNode ||
|
|
4769
|
-
(onMainList && currentNode.originalPolyIndex !== 0) ||
|
|
4770
|
-
(!onMainList && currentNode.originalPolyIndex !== 1));
|
|
4771
|
-
if (safetyBreak > maxIter || currentPathCoords.length === 0) {
|
|
4772
|
-
}
|
|
4773
|
-
else if (currentPathCoords.length > 0 &&
|
|
4774
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_3__/* .pointsAreEqual */ .Sk)(currentPathCoords[0], currentPathCoords[currentPathCoords.length - 1])) {
|
|
4775
|
-
currentPathCoords.pop();
|
|
4776
|
-
}
|
|
4777
|
-
if (currentPathCoords.length >= 3) {
|
|
4778
|
-
const resultArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(currentPathCoords);
|
|
4779
|
-
if (mainArea > 0 && resultArea < 0) {
|
|
4780
|
-
currentPathCoords.reverse();
|
|
4781
|
-
}
|
|
4782
|
-
else if (mainArea < 0 && resultArea > 0) {
|
|
4783
|
-
currentPathCoords.reverse();
|
|
4784
|
-
}
|
|
4785
|
-
resultPolygons.push(currentPathCoords.map((p) => [...p]));
|
|
4786
|
-
}
|
|
4787
|
-
}
|
|
4788
|
-
return resultPolygons;
|
|
4789
|
-
}
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
/***/ }),
|
|
4793
|
-
|
|
4794
|
-
/***/ 8361:
|
|
4795
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4796
|
-
|
|
4797
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4798
|
-
/* harmony export */ i: () => (/* binding */ isPointInsidePolyline3D)
|
|
3309
|
+
/* harmony export */ i: () => (/* binding */ isPointInsidePolyline3D)
|
|
4799
3310
|
/* harmony export */ });
|
|
4800
3311
|
/* harmony import */ var _containsPoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46513);
|
|
4801
3312
|
/* harmony import */ var _projectTo2D__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28502);
|
|
@@ -4826,10 +3337,10 @@ function isPointInsidePolyline3D(point, polyline, options = {}) {
|
|
|
4826
3337
|
}
|
|
4827
3338
|
|
|
4828
3339
|
|
|
4829
|
-
/***/ }
|
|
3340
|
+
/***/ },
|
|
4830
3341
|
|
|
4831
|
-
/***/ 80514
|
|
4832
|
-
|
|
3342
|
+
/***/ 80514
|
|
3343
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
4833
3344
|
|
|
4834
3345
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4835
3346
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -4869,26 +3380,10 @@ const pointCanProjectOnLine = (p, p1, p2, proximity) => {
|
|
|
4869
3380
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pointCanProjectOnLine);
|
|
4870
3381
|
|
|
4871
3382
|
|
|
4872
|
-
/***/ }
|
|
4873
|
-
|
|
4874
|
-
/***/ 82265:
|
|
4875
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4876
|
-
|
|
4877
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4878
|
-
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
4879
|
-
/* harmony export */ });
|
|
4880
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
4881
|
-
|
|
4882
|
-
const pointsAreWithinCloseContourProximity = (p1, p2, closeContourProximity) => {
|
|
4883
|
-
return gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.dist */ .Zc.dist(p1, p2) < closeContourProximity;
|
|
4884
|
-
};
|
|
4885
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pointsAreWithinCloseContourProximity);
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
/***/ }),
|
|
3383
|
+
/***/ },
|
|
4889
3384
|
|
|
4890
|
-
/***/ 28502
|
|
4891
|
-
|
|
3385
|
+
/***/ 28502
|
|
3386
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
4892
3387
|
|
|
4893
3388
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4894
3389
|
/* harmony export */ p: () => (/* binding */ projectTo2D)
|
|
@@ -4921,483 +3416,10 @@ function projectTo2D(polyline) {
|
|
|
4921
3416
|
}
|
|
4922
3417
|
|
|
4923
3418
|
|
|
4924
|
-
/***/ }
|
|
4925
|
-
|
|
4926
|
-
/***/ 36039:
|
|
4927
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4928
|
-
|
|
4929
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4930
|
-
/* harmony export */ O4: () => (/* binding */ robustSegmentIntersection),
|
|
4931
|
-
/* harmony export */ Sk: () => (/* binding */ pointsAreEqual),
|
|
4932
|
-
/* harmony export */ lG: () => (/* binding */ IntersectionDirection),
|
|
4933
|
-
/* harmony export */ n7: () => (/* binding */ PolylineNodeType),
|
|
4934
|
-
/* harmony export */ p8: () => (/* binding */ EPSILON)
|
|
4935
|
-
/* harmony export */ });
|
|
4936
|
-
/* unused harmony export vec2CrossZ */
|
|
4937
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
4938
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3823);
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
const EPSILON = 1e-7;
|
|
4942
|
-
function vec2CrossZ(a, b) {
|
|
4943
|
-
return a[0] * b[1] - a[1] * b[0];
|
|
4944
|
-
}
|
|
4945
|
-
function pointsAreEqual(p1, p2) {
|
|
4946
|
-
return _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isEqual(p1, p2, EPSILON);
|
|
4947
|
-
}
|
|
4948
|
-
function robustSegmentIntersection(p1, p2, q1, q2) {
|
|
4949
|
-
const r = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), p2, p1);
|
|
4950
|
-
const s = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q2, q1);
|
|
4951
|
-
const rxs = vec2CrossZ(r, s);
|
|
4952
|
-
const qmp = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q1, p1);
|
|
4953
|
-
const qmpxr = vec2CrossZ(qmp, r);
|
|
4954
|
-
if (Math.abs(rxs) < EPSILON) {
|
|
4955
|
-
if (Math.abs(qmpxr) < EPSILON) {
|
|
4956
|
-
const rDotR = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(r, r);
|
|
4957
|
-
const sDotS = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(s, s);
|
|
4958
|
-
if (rDotR < EPSILON || sDotS < EPSILON) {
|
|
4959
|
-
if (pointsAreEqual(p1, q1) || pointsAreEqual(p1, q2)) {
|
|
4960
|
-
return p1;
|
|
4961
|
-
}
|
|
4962
|
-
if (pointsAreEqual(p2, q1) || pointsAreEqual(p2, q2)) {
|
|
4963
|
-
return p2;
|
|
4964
|
-
}
|
|
4965
|
-
return null;
|
|
4966
|
-
}
|
|
4967
|
-
const t0 = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q1, p1), r) / rDotR;
|
|
4968
|
-
const t1 = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q2, p1), r) / rDotR;
|
|
4969
|
-
const u0 = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), p1, q1), s) / sDotS;
|
|
4970
|
-
const u1 = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.dot */ .Zc.dot(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), p2, q1), s) / sDotS;
|
|
4971
|
-
const isInRange = (t) => t >= -EPSILON && t <= 1 + EPSILON;
|
|
4972
|
-
if (isInRange(t0)) {
|
|
4973
|
-
const projectedPoint = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.scaleAndAdd */ .Zc.scaleAndAdd(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), p1, r, t0);
|
|
4974
|
-
if (pointsAreEqual(q1, projectedPoint)) {
|
|
4975
|
-
return q1;
|
|
4976
|
-
}
|
|
4977
|
-
}
|
|
4978
|
-
if (isInRange(t1)) {
|
|
4979
|
-
const projectedPoint = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.scaleAndAdd */ .Zc.scaleAndAdd(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), p1, r, t1);
|
|
4980
|
-
if (pointsAreEqual(q2, projectedPoint)) {
|
|
4981
|
-
return q2;
|
|
4982
|
-
}
|
|
4983
|
-
}
|
|
4984
|
-
if (isInRange(u0)) {
|
|
4985
|
-
const projectedPoint = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.scaleAndAdd */ .Zc.scaleAndAdd(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q1, s, u0);
|
|
4986
|
-
if (pointsAreEqual(p1, projectedPoint)) {
|
|
4987
|
-
return p1;
|
|
4988
|
-
}
|
|
4989
|
-
}
|
|
4990
|
-
if (isInRange(u1)) {
|
|
4991
|
-
const projectedPoint = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.scaleAndAdd */ .Zc.scaleAndAdd(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.create */ .Zc.create(), q1, s, u1);
|
|
4992
|
-
if (pointsAreEqual(p2, projectedPoint)) {
|
|
4993
|
-
return p2;
|
|
4994
|
-
}
|
|
4995
|
-
}
|
|
4996
|
-
}
|
|
4997
|
-
return null;
|
|
4998
|
-
}
|
|
4999
|
-
const t = vec2CrossZ(qmp, s) / rxs;
|
|
5000
|
-
const u = qmpxr / rxs;
|
|
5001
|
-
if (t >= -EPSILON && t <= 1 + EPSILON && u >= -EPSILON && u <= 1 + EPSILON) {
|
|
5002
|
-
return [p1[0] + t * r[0], p1[1] + t * r[1]];
|
|
5003
|
-
}
|
|
5004
|
-
return null;
|
|
5005
|
-
}
|
|
5006
|
-
var PolylineNodeType;
|
|
5007
|
-
(function (PolylineNodeType) {
|
|
5008
|
-
PolylineNodeType[PolylineNodeType["Vertex"] = 0] = "Vertex";
|
|
5009
|
-
PolylineNodeType[PolylineNodeType["Intersection"] = 1] = "Intersection";
|
|
5010
|
-
})(PolylineNodeType || (PolylineNodeType = {}));
|
|
5011
|
-
var IntersectionDirection;
|
|
5012
|
-
(function (IntersectionDirection) {
|
|
5013
|
-
IntersectionDirection[IntersectionDirection["Entering"] = 0] = "Entering";
|
|
5014
|
-
IntersectionDirection[IntersectionDirection["Exiting"] = 1] = "Exiting";
|
|
5015
|
-
IntersectionDirection[IntersectionDirection["Unknown"] = 2] = "Unknown";
|
|
5016
|
-
})(IntersectionDirection || (IntersectionDirection = {}));
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
/***/ }),
|
|
5020
|
-
|
|
5021
|
-
/***/ 6521:
|
|
5022
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5023
|
-
|
|
5024
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5025
|
-
/* harmony export */ A: () => (/* binding */ subtractPolylines)
|
|
5026
|
-
/* harmony export */ });
|
|
5027
|
-
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
5028
|
-
/* harmony import */ var _getSignedArea__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63113);
|
|
5029
|
-
/* harmony import */ var _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36039);
|
|
5030
|
-
/* harmony import */ var _containsPoint__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46513);
|
|
5031
|
-
/* harmony import */ var _arePolylinesIdentical__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15346);
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
function subtractPolylines(targetPolylineCoords, sourcePolylineCoordsInput) {
|
|
5038
|
-
if (targetPolylineCoords.length < 3) {
|
|
5039
|
-
return [];
|
|
5040
|
-
}
|
|
5041
|
-
if (sourcePolylineCoordsInput.length < 3) {
|
|
5042
|
-
return [targetPolylineCoords.slice()];
|
|
5043
|
-
}
|
|
5044
|
-
const sourcePolylineCoords = sourcePolylineCoordsInput.slice();
|
|
5045
|
-
if ((0,_arePolylinesIdentical__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(targetPolylineCoords, sourcePolylineCoordsInput)) {
|
|
5046
|
-
return [];
|
|
5047
|
-
}
|
|
5048
|
-
const targetArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(targetPolylineCoords);
|
|
5049
|
-
const sourceArea = (0,_getSignedArea__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(sourcePolylineCoords);
|
|
5050
|
-
if (Math.sign(targetArea) === Math.sign(sourceArea) &&
|
|
5051
|
-
Math.abs(sourceArea) > _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .EPSILON */ .p8) {
|
|
5052
|
-
sourcePolylineCoords.reverse();
|
|
5053
|
-
}
|
|
5054
|
-
const intersections = [];
|
|
5055
|
-
for (let i = 0; i < targetPolylineCoords.length; i++) {
|
|
5056
|
-
const p1 = targetPolylineCoords[i];
|
|
5057
|
-
const p2 = targetPolylineCoords[(i + 1) % targetPolylineCoords.length];
|
|
5058
|
-
for (let j = 0; j < sourcePolylineCoords.length; j++) {
|
|
5059
|
-
const q1 = sourcePolylineCoords[j];
|
|
5060
|
-
const q2 = sourcePolylineCoords[(j + 1) % sourcePolylineCoords.length];
|
|
5061
|
-
const intersectPt = (0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .robustSegmentIntersection */ .O4)(p1, p2, q1, q2);
|
|
5062
|
-
if (intersectPt) {
|
|
5063
|
-
const lenP = Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(p1, p2));
|
|
5064
|
-
const lenQ = Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(q1, q2));
|
|
5065
|
-
intersections.push({
|
|
5066
|
-
coord: intersectPt,
|
|
5067
|
-
seg1Idx: i,
|
|
5068
|
-
seg2Idx: j,
|
|
5069
|
-
alpha1: lenP < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .EPSILON */ .p8
|
|
5070
|
-
? 0
|
|
5071
|
-
: Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(p1, intersectPt)) / lenP,
|
|
5072
|
-
alpha2: lenQ < _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .EPSILON */ .p8
|
|
5073
|
-
? 0
|
|
5074
|
-
: Math.sqrt(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.squaredDistance */ .Zc.squaredDistance(q1, intersectPt)) / lenQ,
|
|
5075
|
-
});
|
|
5076
|
-
}
|
|
5077
|
-
}
|
|
5078
|
-
}
|
|
5079
|
-
const buildAugmentedList = (polyCoords, polyIndex, allIntersections) => {
|
|
5080
|
-
const augmentedList = [];
|
|
5081
|
-
let nodeIdCounter = 0;
|
|
5082
|
-
for (let i = 0; i < polyCoords.length; i++) {
|
|
5083
|
-
const p1 = polyCoords[i];
|
|
5084
|
-
augmentedList.push({
|
|
5085
|
-
id: `${polyIndex}_v${nodeIdCounter++}`,
|
|
5086
|
-
coordinates: p1,
|
|
5087
|
-
type: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .PolylineNodeType */ .n7.Vertex,
|
|
5088
|
-
originalPolyIndex: polyIndex,
|
|
5089
|
-
originalVertexIndex: i,
|
|
5090
|
-
next: null,
|
|
5091
|
-
prev: null,
|
|
5092
|
-
isIntersection: false,
|
|
5093
|
-
visited: false,
|
|
5094
|
-
});
|
|
5095
|
-
const segmentIntersections = allIntersections
|
|
5096
|
-
.filter((isect) => (polyIndex === 0 ? isect.seg1Idx : isect.seg2Idx) === i)
|
|
5097
|
-
.sort((a, b) => (polyIndex === 0 ? a.alpha1 : a.alpha2) -
|
|
5098
|
-
(polyIndex === 0 ? b.alpha1 : b.alpha2));
|
|
5099
|
-
for (const isect of segmentIntersections) {
|
|
5100
|
-
if (augmentedList.length > 0 &&
|
|
5101
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .pointsAreEqual */ .Sk)(augmentedList[augmentedList.length - 1].coordinates, isect.coord)) {
|
|
5102
|
-
if (!augmentedList[augmentedList.length - 1].isIntersection) {
|
|
5103
|
-
augmentedList[augmentedList.length - 1].isIntersection = true;
|
|
5104
|
-
augmentedList[augmentedList.length - 1].intersectionInfo = isect;
|
|
5105
|
-
augmentedList[augmentedList.length - 1].alpha =
|
|
5106
|
-
polyIndex === 0 ? isect.alpha1 : isect.alpha2;
|
|
5107
|
-
}
|
|
5108
|
-
continue;
|
|
5109
|
-
}
|
|
5110
|
-
augmentedList.push({
|
|
5111
|
-
id: `${polyIndex}_i${nodeIdCounter++}`,
|
|
5112
|
-
coordinates: isect.coord,
|
|
5113
|
-
type: _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .PolylineNodeType */ .n7.Intersection,
|
|
5114
|
-
originalPolyIndex: polyIndex,
|
|
5115
|
-
next: null,
|
|
5116
|
-
prev: null,
|
|
5117
|
-
isIntersection: true,
|
|
5118
|
-
visited: false,
|
|
5119
|
-
alpha: polyIndex === 0 ? isect.alpha1 : isect.alpha2,
|
|
5120
|
-
intersectionInfo: isect,
|
|
5121
|
-
});
|
|
5122
|
-
}
|
|
5123
|
-
}
|
|
5124
|
-
const finalList = [];
|
|
5125
|
-
if (augmentedList.length > 0) {
|
|
5126
|
-
finalList.push(augmentedList[0]);
|
|
5127
|
-
for (let i = 1; i < augmentedList.length; i++) {
|
|
5128
|
-
if (!(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .pointsAreEqual */ .Sk)(augmentedList[i].coordinates, finalList[finalList.length - 1].coordinates)) {
|
|
5129
|
-
finalList.push(augmentedList[i]);
|
|
5130
|
-
}
|
|
5131
|
-
else {
|
|
5132
|
-
if (augmentedList[i].isIntersection) {
|
|
5133
|
-
finalList[finalList.length - 1].isIntersection = true;
|
|
5134
|
-
finalList[finalList.length - 1].intersectionInfo =
|
|
5135
|
-
augmentedList[i].intersectionInfo;
|
|
5136
|
-
finalList[finalList.length - 1].alpha = augmentedList[i].alpha;
|
|
5137
|
-
}
|
|
5138
|
-
}
|
|
5139
|
-
}
|
|
5140
|
-
}
|
|
5141
|
-
if (finalList.length > 0) {
|
|
5142
|
-
for (let i = 0; i < finalList.length; i++) {
|
|
5143
|
-
finalList[i].next = finalList[(i + 1) % finalList.length];
|
|
5144
|
-
finalList[i].prev =
|
|
5145
|
-
finalList[(i - 1 + finalList.length) % finalList.length];
|
|
5146
|
-
}
|
|
5147
|
-
}
|
|
5148
|
-
return finalList;
|
|
5149
|
-
};
|
|
5150
|
-
const targetAugmented = buildAugmentedList(targetPolylineCoords, 0, intersections);
|
|
5151
|
-
const sourceAugmented = buildAugmentedList(sourcePolylineCoords, 1, intersections);
|
|
5152
|
-
targetAugmented.forEach((tnode) => {
|
|
5153
|
-
if (tnode.isIntersection) {
|
|
5154
|
-
const tData = tnode.intersectionInfo;
|
|
5155
|
-
const partner = sourceAugmented.find((snode) => snode.isIntersection &&
|
|
5156
|
-
(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .pointsAreEqual */ .Sk)(snode.coordinates, tnode.coordinates) &&
|
|
5157
|
-
snode.intersectionInfo.seg1Idx ===
|
|
5158
|
-
tData.seg1Idx &&
|
|
5159
|
-
snode.intersectionInfo.seg2Idx === tData.seg2Idx);
|
|
5160
|
-
if (partner) {
|
|
5161
|
-
tnode.partnerNode = partner;
|
|
5162
|
-
partner.partnerNode = tnode;
|
|
5163
|
-
const p_prev = tnode.prev.coordinates;
|
|
5164
|
-
const p_curr = tnode.coordinates;
|
|
5165
|
-
const p_next_source = partner.next.coordinates;
|
|
5166
|
-
const v_target_arrival = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), p_curr, p_prev);
|
|
5167
|
-
const v_source_departure = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.subtract */ .Zc.subtract(gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec2.create */ .Zc.create(), p_next_source, p_curr);
|
|
5168
|
-
const midPrevTargetSeg = [
|
|
5169
|
-
(tnode.prev.coordinates[0] + tnode.coordinates[0]) / 2,
|
|
5170
|
-
(tnode.prev.coordinates[1] + tnode.coordinates[1]) / 2,
|
|
5171
|
-
];
|
|
5172
|
-
const prevSegMidpointInsideSource = (0,_containsPoint__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(sourcePolylineCoordsInput, midPrevTargetSeg);
|
|
5173
|
-
if (prevSegMidpointInsideSource) {
|
|
5174
|
-
tnode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .IntersectionDirection */ .lG.Exiting;
|
|
5175
|
-
}
|
|
5176
|
-
else {
|
|
5177
|
-
tnode.intersectionDir = _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .IntersectionDirection */ .lG.Entering;
|
|
5178
|
-
}
|
|
5179
|
-
}
|
|
5180
|
-
else {
|
|
5181
|
-
tnode.isIntersection = false;
|
|
5182
|
-
}
|
|
5183
|
-
}
|
|
5184
|
-
});
|
|
5185
|
-
targetAugmented.forEach((n) => delete n.intersectionInfo);
|
|
5186
|
-
sourceAugmented.forEach((n) => delete n.intersectionInfo);
|
|
5187
|
-
const resultPolylines = [];
|
|
5188
|
-
for (let i = 0; i < targetAugmented.length; i++) {
|
|
5189
|
-
const startNode = targetAugmented[i];
|
|
5190
|
-
if (startNode.visited || startNode.isIntersection) {
|
|
5191
|
-
continue;
|
|
5192
|
-
}
|
|
5193
|
-
if ((0,_containsPoint__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(sourcePolylineCoordsInput, startNode.coordinates)) {
|
|
5194
|
-
continue;
|
|
5195
|
-
}
|
|
5196
|
-
const currentPathCoords = [];
|
|
5197
|
-
let currentNode = startNode;
|
|
5198
|
-
let onTargetList = true;
|
|
5199
|
-
let safetyBreak = 0;
|
|
5200
|
-
const maxIter = (targetAugmented.length + sourceAugmented.length) * 2;
|
|
5201
|
-
do {
|
|
5202
|
-
if (safetyBreak++ > maxIter) {
|
|
5203
|
-
console.warn('Subtraction: Max iterations reached, possible infinite loop.');
|
|
5204
|
-
break;
|
|
5205
|
-
}
|
|
5206
|
-
currentNode.visited = true;
|
|
5207
|
-
if (currentPathCoords.length === 0 ||
|
|
5208
|
-
!(0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .pointsAreEqual */ .Sk)(currentPathCoords[currentPathCoords.length - 1], currentNode.coordinates)) {
|
|
5209
|
-
currentPathCoords.push(currentNode.coordinates);
|
|
5210
|
-
}
|
|
5211
|
-
if (currentNode.isIntersection) {
|
|
5212
|
-
if (onTargetList) {
|
|
5213
|
-
if (currentNode.intersectionDir === _robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .IntersectionDirection */ .lG.Entering &&
|
|
5214
|
-
currentNode.partnerNode) {
|
|
5215
|
-
currentNode = currentNode.partnerNode;
|
|
5216
|
-
onTargetList = false;
|
|
5217
|
-
}
|
|
5218
|
-
}
|
|
5219
|
-
else {
|
|
5220
|
-
if (currentNode.partnerNode) {
|
|
5221
|
-
currentNode = currentNode.partnerNode;
|
|
5222
|
-
onTargetList = true;
|
|
5223
|
-
}
|
|
5224
|
-
else {
|
|
5225
|
-
console.warn('Subtraction: Intersection on source without partner.');
|
|
5226
|
-
}
|
|
5227
|
-
}
|
|
5228
|
-
}
|
|
5229
|
-
currentNode = currentNode.next;
|
|
5230
|
-
} while (currentNode !== startNode || !onTargetList);
|
|
5231
|
-
if (currentPathCoords.length >= 3) {
|
|
5232
|
-
if ((0,_robustSegmentIntersection__WEBPACK_IMPORTED_MODULE_2__/* .pointsAreEqual */ .Sk)(currentPathCoords[0], currentPathCoords[currentPathCoords.length - 1])) {
|
|
5233
|
-
currentPathCoords.pop();
|
|
5234
|
-
}
|
|
5235
|
-
if (currentPathCoords.length >= 3) {
|
|
5236
|
-
resultPolylines.push(currentPathCoords);
|
|
5237
|
-
}
|
|
5238
|
-
}
|
|
5239
|
-
}
|
|
5240
|
-
return resultPolylines;
|
|
5241
|
-
}
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
/***/ }),
|
|
5245
|
-
|
|
5246
|
-
/***/ 33657:
|
|
5247
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5248
|
-
|
|
5249
|
-
__webpack_require__.r(__webpack_exports__);
|
|
5250
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5251
|
-
/* harmony export */ distanceToPoint: () => (/* reexport safe */ _distanceToPoint__WEBPACK_IMPORTED_MODULE_0__.A)
|
|
5252
|
-
/* harmony export */ });
|
|
5253
|
-
/* harmony import */ var _distanceToPoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87105);
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
/***/ }),
|
|
5259
|
-
|
|
5260
|
-
/***/ 23324:
|
|
5261
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5262
|
-
|
|
5263
|
-
__webpack_require__.r(__webpack_exports__);
|
|
5264
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5265
|
-
/* harmony export */ findClosestPoint: () => (/* reexport safe */ _findClosestPoint__WEBPACK_IMPORTED_MODULE_0__.A),
|
|
5266
|
-
/* harmony export */ liangBarksyClip: () => (/* reexport safe */ _liangBarksyClip__WEBPACK_IMPORTED_MODULE_1__.A)
|
|
5267
|
-
/* harmony export */ });
|
|
5268
|
-
/* harmony import */ var _findClosestPoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90554);
|
|
5269
|
-
/* harmony import */ var _liangBarksyClip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35381);
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
/***/ }),
|
|
5276
|
-
|
|
5277
|
-
/***/ 35381:
|
|
5278
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5279
|
-
|
|
5280
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5281
|
-
/* harmony export */ A: () => (/* binding */ clip)
|
|
5282
|
-
/* harmony export */ });
|
|
5283
|
-
const EPSILON = 1e-6;
|
|
5284
|
-
const INSIDE = 1;
|
|
5285
|
-
const OUTSIDE = 0;
|
|
5286
|
-
function clipT(num, denom, c) {
|
|
5287
|
-
const [tE, tL] = c;
|
|
5288
|
-
if (Math.abs(denom) < EPSILON) {
|
|
5289
|
-
return num < 0;
|
|
5290
|
-
}
|
|
5291
|
-
const t = num / denom;
|
|
5292
|
-
if (denom > 0) {
|
|
5293
|
-
if (t > tL) {
|
|
5294
|
-
return 0;
|
|
5295
|
-
}
|
|
5296
|
-
if (t > tE) {
|
|
5297
|
-
c[0] = t;
|
|
5298
|
-
}
|
|
5299
|
-
}
|
|
5300
|
-
else {
|
|
5301
|
-
if (t < tE) {
|
|
5302
|
-
return 0;
|
|
5303
|
-
}
|
|
5304
|
-
if (t < tL) {
|
|
5305
|
-
c[1] = t;
|
|
5306
|
-
}
|
|
5307
|
-
}
|
|
5308
|
-
return 1;
|
|
5309
|
-
}
|
|
5310
|
-
function clip(a, b, box, da, db) {
|
|
5311
|
-
const [x1, y1] = a;
|
|
5312
|
-
const [x2, y2] = b;
|
|
5313
|
-
const dx = x2 - x1;
|
|
5314
|
-
const dy = y2 - y1;
|
|
5315
|
-
if (da === undefined || db === undefined) {
|
|
5316
|
-
da = a;
|
|
5317
|
-
db = b;
|
|
5318
|
-
}
|
|
5319
|
-
else {
|
|
5320
|
-
da[0] = a[0];
|
|
5321
|
-
da[1] = a[1];
|
|
5322
|
-
db[0] = b[0];
|
|
5323
|
-
db[1] = b[1];
|
|
5324
|
-
}
|
|
5325
|
-
if (Math.abs(dx) < EPSILON &&
|
|
5326
|
-
Math.abs(dy) < EPSILON &&
|
|
5327
|
-
x1 >= box[0] &&
|
|
5328
|
-
x1 <= box[2] &&
|
|
5329
|
-
y1 >= box[1] &&
|
|
5330
|
-
y1 <= box[3]) {
|
|
5331
|
-
return INSIDE;
|
|
5332
|
-
}
|
|
5333
|
-
const c = [0, 1];
|
|
5334
|
-
if (clipT(box[0] - x1, dx, c) &&
|
|
5335
|
-
clipT(x1 - box[2], -dx, c) &&
|
|
5336
|
-
clipT(box[1] - y1, dy, c) &&
|
|
5337
|
-
clipT(y1 - box[3], -dy, c)) {
|
|
5338
|
-
const [tE, tL] = c;
|
|
5339
|
-
if (tL < 1) {
|
|
5340
|
-
db[0] = x1 + tL * dx;
|
|
5341
|
-
db[1] = y1 + tL * dy;
|
|
5342
|
-
}
|
|
5343
|
-
if (tE > 0) {
|
|
5344
|
-
da[0] += tE * dx;
|
|
5345
|
-
da[1] += tE * dy;
|
|
5346
|
-
}
|
|
5347
|
-
return INSIDE;
|
|
5348
|
-
}
|
|
5349
|
-
return OUTSIDE;
|
|
5350
|
-
}
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
/***/ }),
|
|
5354
|
-
|
|
5355
|
-
/***/ 13165:
|
|
5356
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5357
|
-
|
|
5358
|
-
__webpack_require__.r(__webpack_exports__);
|
|
5359
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5360
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
5361
|
-
/* harmony export */ filterAnnotationsForDisplay: () => (/* reexport safe */ _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__.A),
|
|
5362
|
-
/* harmony export */ filterAnnotationsWithinSamePlane: () => (/* reexport safe */ _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_6__.W),
|
|
5363
|
-
/* harmony export */ filterAnnotationsWithinSlice: () => (/* reexport safe */ _filterAnnotationsWithinSlice__WEBPACK_IMPORTED_MODULE_0__.A),
|
|
5364
|
-
/* harmony export */ getPointInLineOfSightWithCriteria: () => (/* reexport safe */ _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_4__.R),
|
|
5365
|
-
/* harmony export */ getPointsInLineOfSight: () => (/* reexport safe */ _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_4__.p),
|
|
5366
|
-
/* harmony export */ getWorldWidthAndHeightFromCorners: () => (/* reexport safe */ _getWorldWidthAndHeightFromCorners__WEBPACK_IMPORTED_MODULE_1__.A),
|
|
5367
|
-
/* harmony export */ getWorldWidthAndHeightFromTwoPoints: () => (/* reexport safe */ _getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_3__.A),
|
|
5368
|
-
/* harmony export */ isPlaneIntersectingAABB: () => (/* reexport safe */ _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_5__.Y)
|
|
5369
|
-
/* harmony export */ });
|
|
5370
|
-
/* harmony import */ var _filterAnnotationsWithinSlice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36374);
|
|
5371
|
-
/* harmony import */ var _getWorldWidthAndHeightFromCorners__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35489);
|
|
5372
|
-
/* harmony import */ var _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94418);
|
|
5373
|
-
/* harmony import */ var _getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(62514);
|
|
5374
|
-
/* harmony import */ var _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57063);
|
|
5375
|
-
/* harmony import */ var _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(30698);
|
|
5376
|
-
/* harmony import */ var _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40770);
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
|
|
5385
|
-
filterAnnotationsWithinSlice: _filterAnnotationsWithinSlice__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A,
|
|
5386
|
-
getWorldWidthAndHeightFromCorners: _getWorldWidthAndHeightFromCorners__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A,
|
|
5387
|
-
getWorldWidthAndHeightFromTwoPoints: _getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A,
|
|
5388
|
-
filterAnnotationsForDisplay: _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A,
|
|
5389
|
-
getPointInLineOfSightWithCriteria: _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_4__/* .getPointInLineOfSightWithCriteria */ .R,
|
|
5390
|
-
isPlaneIntersectingAABB: _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_5__/* .isPlaneIntersectingAABB */ .Y,
|
|
5391
|
-
filterAnnotationsWithinSamePlane: _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_6__/* .filterAnnotationsWithinSamePlane */ .W,
|
|
5392
|
-
getPointsInLineOfSight: _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_4__/* .getPointsInLineOfSight */ .p,
|
|
5393
|
-
});
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
/***/ }),
|
|
3419
|
+
/***/ },
|
|
5398
3420
|
|
|
5399
|
-
/***/ 61587
|
|
5400
|
-
|
|
3421
|
+
/***/ 61587
|
|
3422
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5401
3423
|
|
|
5402
3424
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5403
3425
|
/* harmony export */ A: () => (/* binding */ smoothAnnotation)
|
|
@@ -5462,10 +3484,10 @@ function smoothAnnotation(annotation, options) {
|
|
|
5462
3484
|
}
|
|
5463
3485
|
|
|
5464
3486
|
|
|
5465
|
-
/***/ }
|
|
3487
|
+
/***/ },
|
|
5466
3488
|
|
|
5467
|
-
/***/ 10564
|
|
5468
|
-
|
|
3489
|
+
/***/ 10564
|
|
3490
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5469
3491
|
|
|
5470
3492
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5471
3493
|
/* harmony export */ BX: () => (/* binding */ DEFAULT_NEGATIVE_SEED_MARGIN),
|
|
@@ -5487,10 +3509,10 @@ const DEFAULT_NEGATIVE_SEEDS_COUNT = 70;
|
|
|
5487
3509
|
const MAX_NEGATIVE_SEED_ATTEMPTS_MULTIPLIER = 50;
|
|
5488
3510
|
|
|
5489
3511
|
|
|
5490
|
-
/***/ }
|
|
3512
|
+
/***/ },
|
|
5491
3513
|
|
|
5492
|
-
/***/ 94762
|
|
5493
|
-
|
|
3514
|
+
/***/ 94762
|
|
3515
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5494
3516
|
|
|
5495
3517
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5496
3518
|
/* harmony export */ Lr: () => (/* binding */ priority),
|
|
@@ -5581,10 +3603,10 @@ const clearFromImageIds = (stack) => {
|
|
|
5581
3603
|
};
|
|
5582
3604
|
|
|
5583
3605
|
|
|
5584
|
-
/***/ }
|
|
3606
|
+
/***/ },
|
|
5585
3607
|
|
|
5586
|
-
/***/ 30045
|
|
5587
|
-
|
|
3608
|
+
/***/ 30045
|
|
3609
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5588
3610
|
|
|
5589
3611
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5590
3612
|
/* harmony export */ P: () => (/* binding */ addToolState),
|
|
@@ -5606,10 +3628,10 @@ function getToolState(element) {
|
|
|
5606
3628
|
|
|
5607
3629
|
|
|
5608
3630
|
|
|
5609
|
-
/***/ }
|
|
3631
|
+
/***/ },
|
|
5610
3632
|
|
|
5611
|
-
/***/ 33517
|
|
5612
|
-
|
|
3633
|
+
/***/ 33517
|
|
3634
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5613
3635
|
|
|
5614
3636
|
|
|
5615
3637
|
// EXPORTS
|
|
@@ -5818,10 +3840,10 @@ class ColorbarCanvas {
|
|
|
5818
3840
|
|
|
5819
3841
|
|
|
5820
3842
|
|
|
5821
|
-
/***/ }
|
|
3843
|
+
/***/ },
|
|
5822
3844
|
|
|
5823
|
-
/***/ 62184
|
|
5824
|
-
|
|
3845
|
+
/***/ 62184
|
|
3846
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5825
3847
|
|
|
5826
3848
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5827
3849
|
/* harmony export */ f: () => (/* binding */ ColorbarTicks)
|
|
@@ -6124,10 +4146,10 @@ class ColorbarTicks {
|
|
|
6124
4146
|
|
|
6125
4147
|
|
|
6126
4148
|
|
|
6127
|
-
/***/ }
|
|
4149
|
+
/***/ },
|
|
6128
4150
|
|
|
6129
|
-
/***/ 57227
|
|
6130
|
-
|
|
4151
|
+
/***/ 57227
|
|
4152
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6131
4153
|
|
|
6132
4154
|
|
|
6133
4155
|
// EXPORTS
|
|
@@ -6169,10 +4191,10 @@ const areColorbarSizesEqual = (a, b) => {
|
|
|
6169
4191
|
|
|
6170
4192
|
|
|
6171
4193
|
|
|
6172
|
-
/***/ }
|
|
4194
|
+
/***/ },
|
|
6173
4195
|
|
|
6174
|
-
/***/ 79457
|
|
6175
|
-
|
|
4196
|
+
/***/ 79457
|
|
4197
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6176
4198
|
|
|
6177
4199
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6178
4200
|
/* harmony export */ A: () => (/* binding */ isRangeTextPositionValid)
|
|
@@ -6190,10 +4212,10 @@ function isRangeTextPositionValid(colorbarWidth, colorbarHeight, rangeTextPositi
|
|
|
6190
4212
|
|
|
6191
4213
|
|
|
6192
4214
|
|
|
6193
|
-
/***/ }
|
|
4215
|
+
/***/ },
|
|
6194
4216
|
|
|
6195
|
-
/***/ 44845
|
|
6196
|
-
|
|
4217
|
+
/***/ 44845
|
|
4218
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6197
4219
|
|
|
6198
4220
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6199
4221
|
/* harmony export */ A: () => (/* binding */ Widget)
|
|
@@ -6267,10 +4289,10 @@ class Widget {
|
|
|
6267
4289
|
|
|
6268
4290
|
|
|
6269
4291
|
|
|
6270
|
-
/***/ }
|
|
4292
|
+
/***/ },
|
|
6271
4293
|
|
|
6272
|
-
/***/ 73435
|
|
6273
|
-
|
|
4294
|
+
/***/ 73435
|
|
4295
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6274
4296
|
|
|
6275
4297
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6276
4298
|
/* harmony export */ Ay: () => (/* binding */ vtkSphereSource$1)
|
|
@@ -6492,10 +4514,10 @@ var vtkSphereSource$1 = {
|
|
|
6492
4514
|
|
|
6493
4515
|
|
|
6494
4516
|
|
|
6495
|
-
/***/ }
|
|
4517
|
+
/***/ },
|
|
6496
4518
|
|
|
6497
|
-
/***/ 53489
|
|
6498
|
-
|
|
4519
|
+
/***/ 53489
|
|
4520
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6499
4521
|
|
|
6500
4522
|
|
|
6501
4523
|
// EXPORTS
|
|
@@ -6800,10 +4822,10 @@ var vtkOrientationMarkerWidget$1 = {
|
|
|
6800
4822
|
|
|
6801
4823
|
|
|
6802
4824
|
|
|
6803
|
-
/***/ }
|
|
4825
|
+
/***/ },
|
|
6804
4826
|
|
|
6805
|
-
/***/ 83338
|
|
6806
|
-
|
|
4827
|
+
/***/ 83338
|
|
4828
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6807
4829
|
|
|
6808
4830
|
|
|
6809
4831
|
// EXPORTS
|
|
@@ -7170,10 +5192,10 @@ var vtkAnnotatedCubeActor$1 = {
|
|
|
7170
5192
|
|
|
7171
5193
|
|
|
7172
5194
|
|
|
7173
|
-
/***/ }
|
|
5195
|
+
/***/ },
|
|
7174
5196
|
|
|
7175
|
-
/***/ 10341
|
|
7176
|
-
|
|
5197
|
+
/***/ 10341
|
|
5198
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
7177
5199
|
|
|
7178
5200
|
|
|
7179
5201
|
// EXPORTS
|
|
@@ -8026,6 +6048,6 @@ var vtkAxesActor$1 = {
|
|
|
8026
6048
|
|
|
8027
6049
|
|
|
8028
6050
|
|
|
8029
|
-
/***/ }
|
|
6051
|
+
/***/ }
|
|
8030
6052
|
|
|
8031
6053
|
}]);
|