@ohif/app 3.9.0-beta.0 → 3.9.0-beta.1

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.
Files changed (37) hide show
  1. package/dist/{117.bundle.77cc4e62d0de5d843e2e.js → 117.bundle.a80b1511ef4b302fb7cc.js} +10 -12
  2. package/dist/{164.bundle.b101cb64d04a22453984.js → 164.bundle.1da1cadb56951caef1d6.js} +9 -13
  3. package/dist/{206.bundle.78bc4a1612a65114023f.js → 206.bundle.87e4481bb6a89230b7cf.js} +2 -2
  4. package/dist/{236.bundle.f774cdc955890e6cdac9.js → 236.bundle.4ca7987e1d57f60ec13a.js} +326 -5
  5. package/dist/{416.bundle.9b0d7559344fd02c9e08.js → 35.bundle.0168d78bfad0cb784112.js} +378 -45
  6. package/dist/{203.bundle.3581da3a32a0b720d3a7.js → 806.bundle.50e039eb624382ee1fce.js} +538 -450
  7. package/dist/{889.bundle.a287be728fdd2c2f2685.js → 889.bundle.89437e456d399b69abfd.js} +1 -1
  8. package/dist/{app.bundle.10e485d72790640d038e.js → app.bundle.0c97d14d514173bc9fab.js} +77 -61
  9. package/dist/index.html +1 -1
  10. package/dist/{polySeg.bundle.4442dd3318266fddf4d0.js → polySeg.bundle.1799686b019040500219.js} +3 -3
  11. package/dist/{suv-peak-worker.bundle.348c016f7f973d05f2d2.js → suv-peak-worker.bundle.25f8b85eab9ec06da48d.js} +3 -3
  12. package/dist/sw.js +1 -1
  13. package/package.json +18 -18
  14. /package/dist/{188.bundle.11bc3f193369fed20b66.js → 188.bundle.64cbb89e31abbf29a023.js} +0 -0
  15. /package/dist/{321.bundle.ff34e813e29d7aac6a7a.js → 321.bundle.f32564ab711ebc0b4e86.js} +0 -0
  16. /package/dist/{325.bundle.80800ecd8fa44d3da9f0.js → 325.bundle.fee9192f88d50d6ce342.js} +0 -0
  17. /package/dist/{342.bundle.36ee082163b01284eeba.js → 342.bundle.340982440de15f540a89.js} +0 -0
  18. /package/dist/{41.bundle.c1bdf399864559c022e6.js → 41.bundle.72b910ddbbd70b2f4c98.js} +0 -0
  19. /package/dist/{448.bundle.3e632ad35be84cb97b9b.js → 448.bundle.75e67836d79e932aa18c.js} +0 -0
  20. /package/dist/{473.bundle.11f707c8170ade2eb56a.js → 473.bundle.6cd4be953853f35b29c3.js} +0 -0
  21. /package/dist/{483.bundle.581b242d7b90866fdfb9.js → 483.bundle.a353efc5a5dd563c903c.js} +0 -0
  22. /package/dist/{487.bundle.5a006ecd6ac5c43b46ac.js → 487.bundle.fa9fc23fc410e1fa2efd.js} +0 -0
  23. /package/dist/{544.bundle.3542927ec15c3f688c8d.js → 544.bundle.b005b8c8b9b08aaa3324.js} +0 -0
  24. /package/dist/{574.bundle.4b059c95cd34efdc9cb3.js → 574.bundle.8b2767c9b74fa0c9b04b.js} +0 -0
  25. /package/dist/{594.bundle.4707c7487661d7ac6873.js → 594.bundle.64b244e7dcfd3d6c8984.js} +0 -0
  26. /package/dist/{633.bundle.6894b2582a16ede205e6.js → 633.bundle.e2b7f645729f12ba0d78.js} +0 -0
  27. /package/dist/{669.bundle.28e422f4ebfa501661df.js → 669.bundle.03a5bd6ba84103d03fdd.js} +0 -0
  28. /package/dist/{699.bundle.6f233bb6379de54e939c.js → 699.bundle.b50bfe586c0064d6fe8a.js} +0 -0
  29. /package/dist/{7.bundle.ab1b0e2fcab1715e7bc0.js → 7.bundle.9c9caceecb366e3233ca.js} +0 -0
  30. /package/dist/{722.bundle.52eb61926d08a08793fe.js → 722.bundle.2547630541b670f10d6e.js} +0 -0
  31. /package/dist/{724.bundle.0aa33dc045a78572026c.js → 724.bundle.c5b6e5542a4668715b33.js} +0 -0
  32. /package/dist/{783.bundle.178fb6add40f9923f61d.js → 783.bundle.2e302abe4156a13530f8.js} +0 -0
  33. /package/dist/{862.bundle.9897a9b748078d53f9ab.js → 862.bundle.4a0bd82b803ba158018f.js} +0 -0
  34. /package/dist/{905.bundle.fdbca7f4ccc752374ece.js → 905.bundle.7017e78259e57eda8915.js} +0 -0
  35. /package/dist/{907.bundle.0c3fdbe2bcfcca5b9c97.js → 907.bundle.6695db6c5f1906d48b81.js} +0 -0
  36. /package/dist/{94.bundle.e4ae2150627e9085cadf.js → 94.bundle.8411670658df7253a77a.js} +0 -0
  37. /package/dist/{961.bundle.1f3bcb85757b41e96664.js → 961.bundle.4aa46c7f78124df1a7cb.js} +0 -0
@@ -1,4 +1,4 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[416],{
1
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[35],{
2
2
 
3
3
  /***/ 6203:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -13,7 +13,7 @@
13
13
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44753);
14
14
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
15
15
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88903);
16
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50002);
16
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98362);
17
17
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
18
18
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
19
19
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
@@ -1765,8 +1765,8 @@ var Viewport = __webpack_require__(11512);
1765
1765
  var colors = __webpack_require__(59693);
1766
1766
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js + 22 modules
1767
1767
  var drawImageSync = __webpack_require__(49892);
1768
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
1769
- var enums = __webpack_require__(50002);
1768
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
1769
+ var enums = __webpack_require__(98362);
1770
1770
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
1771
1771
  var imageLoader = __webpack_require__(79220);
1772
1772
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
@@ -3702,8 +3702,8 @@ __webpack_require__.d(__webpack_exports__, {
3702
3702
 
3703
3703
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
3704
3704
  var esm = __webpack_require__(44753);
3705
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
3706
- var enums = __webpack_require__(50002);
3705
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
3706
+ var enums = __webpack_require__(98362);
3707
3707
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/metaData.js
3708
3708
  var metaData = __webpack_require__(55692);
3709
3709
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
@@ -4001,22 +4001,21 @@ class VideoViewport extends Viewport/* default */.A {
4001
4001
  this.worldToCanvas = (worldPos) => {
4002
4002
  const pan = this.videoCamera.panWorld;
4003
4003
  const worldToCanvasRatio = this.getWorldToCanvasRatio();
4004
- const subCanvasPos = [
4004
+ const canvasPos = [
4005
4005
  (worldPos[0] + pan[0]) * worldToCanvasRatio,
4006
4006
  (worldPos[1] + pan[1]) * worldToCanvasRatio,
4007
4007
  ];
4008
- const canvasPos = [subCanvasPos[0], subCanvasPos[1]];
4009
4008
  return canvasPos;
4010
4009
  };
4011
4010
  this.getRotation = () => 0;
4012
4011
  this.canvasToIndex = (canvasPos) => {
4013
4012
  const transform = this.getTransform();
4014
4013
  transform.invert();
4015
- return transform.transformPoint(canvasPos);
4014
+ return transform.transformPoint(canvasPos.map((it) => it * devicePixelRatio));
4016
4015
  };
4017
4016
  this.indexToCanvas = (indexPos) => {
4018
4017
  const transform = this.getTransform();
4019
- return transform.transformPoint(indexPos);
4018
+ return (transform.transformPoint(indexPos).map((it) => it / devicePixelRatio));
4020
4019
  };
4021
4020
  this.customRenderViewportToCanvas = () => {
4022
4021
  this.renderFrame();
@@ -4024,8 +4023,10 @@ class VideoViewport extends Viewport/* default */.A {
4024
4023
  this.renderFrame = () => {
4025
4024
  const transform = this.getTransform();
4026
4025
  const transformationMatrix = transform.getMatrix();
4027
- this.canvasContext.transform(transformationMatrix[0], transformationMatrix[1], transformationMatrix[2], transformationMatrix[3], transformationMatrix[4], transformationMatrix[5]);
4028
- this.canvasContext.drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight);
4026
+ const ctx = this.canvasContext;
4027
+ ctx.resetTransform();
4028
+ ctx.transform(transformationMatrix[0], transformationMatrix[1], transformationMatrix[2], transformationMatrix[3], transformationMatrix[4], transformationMatrix[5]);
4029
+ ctx.drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight);
4029
4030
  for (const actor of this.getActors()) {
4030
4031
  actor.actor.render(this, this.canvasContext);
4031
4032
  }
@@ -4421,7 +4422,7 @@ class VideoViewport extends Viewport/* default */.A {
4421
4422
  }
4422
4423
  setCamera(camera) {
4423
4424
  const { parallelScale, focalPoint } = camera;
4424
- if (camera.parallelScale !== undefined) {
4425
+ if (parallelScale) {
4425
4426
  this.videoCamera.parallelScale =
4426
4427
  this.element.clientHeight / 2 / parallelScale;
4427
4428
  }
@@ -4533,19 +4534,18 @@ class VideoViewport extends Viewport/* default */.A {
4533
4534
  };
4534
4535
  }
4535
4536
  getPan() {
4536
- const worldPan = this.videoCamera.panWorld;
4537
- return [worldPan[0], worldPan[1]];
4537
+ const panWorld = this.videoCamera.panWorld;
4538
+ return [panWorld[0], panWorld[1]];
4538
4539
  }
4539
4540
  refreshRenderValues() {
4540
- let worldToCanvasRatio = this.canvas.width / this.videoWidth;
4541
+ let worldToCanvasRatio = this.canvas.offsetWidth / this.videoWidth;
4541
4542
  if (this.videoHeight * worldToCanvasRatio > this.canvas.height) {
4542
- const secondWorldToCanvasRatio = this.canvas.height / (this.videoHeight * worldToCanvasRatio);
4543
- worldToCanvasRatio *= secondWorldToCanvasRatio;
4543
+ worldToCanvasRatio = this.canvas.offsetHeight / this.videoHeight;
4544
4544
  }
4545
4545
  const drawWidth = Math.floor(this.videoWidth * worldToCanvasRatio);
4546
4546
  const drawHeight = Math.floor(this.videoHeight * worldToCanvasRatio);
4547
- const xOffsetCanvas = this.canvas.width / 2 - drawWidth / 2;
4548
- const yOffsetCanvas = this.canvas.height / 2 - drawHeight / 2;
4547
+ const xOffsetCanvas = (this.canvas.offsetWidth - drawWidth) / 2;
4548
+ const yOffsetCanvas = (this.canvas.offsetHeight - drawHeight) / 2;
4549
4549
  const xOffsetWorld = xOffsetCanvas / worldToCanvasRatio;
4550
4550
  const yOffsetWorld = yOffsetCanvas / worldToCanvasRatio;
4551
4551
  this.videoCamera.panWorld = [xOffsetWorld, yOffsetWorld];
@@ -4559,14 +4559,19 @@ class VideoViewport extends Viewport/* default */.A {
4559
4559
  }
4560
4560
  getTransform() {
4561
4561
  const panWorld = this.videoCamera.panWorld;
4562
+ const devicePixelRatio = window.devicePixelRatio || 1;
4562
4563
  const worldToCanvasRatio = this.getWorldToCanvasRatio();
4563
4564
  const canvasToWorldRatio = this.getCanvasToWorldRatio();
4564
- const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
4565
+ const halfCanvas = [
4566
+ this.canvas.offsetWidth / 2,
4567
+ this.canvas.offsetHeight / 2,
4568
+ ];
4565
4569
  const halfCanvasWorldCoordinates = [
4566
4570
  halfCanvas[0] * canvasToWorldRatio,
4567
4571
  halfCanvas[1] * canvasToWorldRatio,
4568
4572
  ];
4569
4573
  const transform = new rendering_transform/* Transform */.d();
4574
+ transform.scale(devicePixelRatio, devicePixelRatio);
4570
4575
  transform.translate(halfCanvas[0], halfCanvas[1]);
4571
4576
  transform.scale(worldToCanvasRatio, worldToCanvasRatio);
4572
4577
  transform.translate(panWorld[0], panWorld[1]);
@@ -4619,7 +4624,7 @@ class VideoViewport extends Viewport/* default */.A {
4619
4624
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
4620
4625
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
4621
4626
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
4622
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(50002);
4627
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(98362);
4623
4628
 
4624
4629
 
4625
4630
 
@@ -5548,7 +5553,7 @@ class Viewport {
5548
5553
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
5549
5554
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13320);
5550
5555
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88903);
5551
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50002);
5556
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98362);
5552
5557
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35678);
5553
5558
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6203);
5554
5559
  /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83853);
@@ -5853,7 +5858,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5853
5858
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5854
5859
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
5855
5860
  /* harmony export */ });
5856
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50002);
5861
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98362);
5857
5862
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6203);
5858
5863
 
5859
5864
 
@@ -8184,8 +8189,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
8184
8189
 
8185
8190
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
8186
8191
  var utilities = __webpack_require__(35678);
8187
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
8188
- var enums = __webpack_require__(50002);
8192
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
8193
+ var enums = __webpack_require__(98362);
8189
8194
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
8190
8195
  var setDefaultVolumeVOI = __webpack_require__(83853);
8191
8196
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/createVolumeActor.js
@@ -8297,7 +8302,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
8297
8302
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
8298
8303
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
8299
8304
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
8300
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50002);
8305
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
8301
8306
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
8302
8307
 
8303
8308
 
@@ -8445,7 +8450,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
8445
8450
  /* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
8446
8451
  /* harmony export */ });
8447
8452
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
8448
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50002);
8453
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
8449
8454
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
8450
8455
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
8451
8456
 
@@ -8552,8 +8557,8 @@ function viewportTypeUsesCustomRenderingPipeline(viewportType) {
8552
8557
  var getOrCreateCanvas = __webpack_require__(45543);
8553
8558
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js + 1 modules
8554
8559
  var init = __webpack_require__(71702);
8555
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
8556
- var enums = __webpack_require__(50002);
8560
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
8561
+ var enums = __webpack_require__(98362);
8557
8562
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/RenderingEngine.js
8558
8563
 
8559
8564
 
@@ -18129,6 +18134,20 @@ const presets = [
18129
18134
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (presets);
18130
18135
 
18131
18136
 
18137
+ /***/ }),
18138
+
18139
+ /***/ 99842:
18140
+ /***/ (() => {
18141
+
18142
+ "use strict";
18143
+ var ContourType;
18144
+ (function (ContourType) {
18145
+ ContourType["CLOSED_PLANAR"] = "CLOSED_PLANAR";
18146
+ ContourType["OPEN_PLANAR"] = "OPEN_PLANAR";
18147
+ })(ContourType || (ContourType = {}));
18148
+ /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (ContourType)));
18149
+
18150
+
18132
18151
  /***/ }),
18133
18152
 
18134
18153
  /***/ 11731:
@@ -18488,8 +18507,8 @@ __webpack_require__.d(geometryLoader_namespaceObject, {
18488
18507
  createAndCacheGeometry: () => (createAndCacheGeometry)
18489
18508
  });
18490
18509
 
18491
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
18492
- var enums = __webpack_require__(50002);
18510
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
18511
+ var enums = __webpack_require__(98362);
18493
18512
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
18494
18513
  var constants = __webpack_require__(88903);
18495
18514
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/index.js + 3 modules
@@ -23475,7 +23494,7 @@ function createContourSet(geometryId, contourSetData) {
23475
23494
  data: contourSetData.data,
23476
23495
  color: contourSetData.color,
23477
23496
  frameOfReferenceUID: contourSetData.frameOfReferenceUID,
23478
- segmentIndex: 1,
23497
+ segmentIndex: contourSetData.segmentIndex ?? 1,
23479
23498
  });
23480
23499
  const geometry = {
23481
23500
  id: geometryId,
@@ -23610,8 +23629,8 @@ __webpack_require__.d(__webpack_exports__, {
23610
23629
  ;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
23611
23630
  function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}const t=(/* unused pure expression or super */ null && (["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"]));function r(e){return e=e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}const i=(/* unused pure expression or super */ null && ([])),c=(/* unused pure expression or super */ null && ([]));function d(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,d=0;for(;d<n&&e.charCodeAt(d)===t.charCodeAt(d);)d++;if(n-=d,o-=d,0===n)return o;let l,s,f=0,u=0,h=0;for(;u<n;)c[u]=e.charCodeAt(d+u),i[u]=++u;for(;h<o;)for(a=t.charCodeAt(d+h),l=h++,f=h,u=0;u<n;u++)s=a===c[u]?l:l+1,l=i[u],f=i[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function l(e){return null!=e}class s extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const f=({mobileTiers:i=[0,15,30,60],desktopTiers:c=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:h=!1,benchmarksURL:g="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${g}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new s("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let b,S="";if(A)A=r(A),b=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,h);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(A=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!A)return P(1,"FALLBACK");S=A,A=r(A),b=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const y=(yield Promise.all(b.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof s)throw e;return}const i=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let c=a.filter((([,e])=>e===i));c.length||(c=a.filter((([e])=>e.includes(t))));const l=c.length;if(0===l)return;let f,[u,,,h]=l>1?c.map((e=>[e,d(t,e[0])])).sort((([,e],[,t])=>e-t))[0][0]:c[0],g=Number.MAX_VALUE;const{devicePixelRatio:A}=window,P=w.width*A*w.height*A;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(P-n);o<g&&(g=o,f=e)}if(!f)return;const[,,b,S]=f;return[g,b,u,S]}))})))).filter(l).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!y.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${S})`)}const[,C,E,L]=y[0];if(-1===C)return P(0,"BLOCKLISTED",E,C,L);const M=v?i:c;let $=0;for(let e=0;e<M.length;e++)C>=M[e]&&($=e);return P($,"BENCHMARK",E,C,L)}));
23612
23631
 
23613
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
23614
- var enums = __webpack_require__(50002);
23632
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
23633
+ var enums = __webpack_require__(98362);
23615
23634
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
23616
23635
  var getRenderingEngine = __webpack_require__(49184);
23617
23636
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
@@ -23854,8 +23873,8 @@ const sequentialRetrieveStages = [
23854
23873
  ];
23855
23874
  /* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
23856
23875
 
23857
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
23858
- var enums = __webpack_require__(50002);
23876
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
23877
+ var enums = __webpack_require__(98362);
23859
23878
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
23860
23879
 
23861
23880
  const nearbyFrames = [
@@ -24242,7 +24261,7 @@ __webpack_require__.r(__webpack_exports__);
24242
24261
  /* harmony export */ setupCacheOptimizationEventListener: () => (/* binding */ setupCacheOptimizationEventListener)
24243
24262
  /* harmony export */ });
24244
24263
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13320);
24245
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50002);
24264
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
24246
24265
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51884);
24247
24266
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71702);
24248
24267
 
@@ -25389,8 +25408,8 @@ function transformIndexToWorld(imageData, voxelPos) {
25389
25408
 
25390
25409
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
25391
25410
  var imageLoader = __webpack_require__(79220);
25392
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 5 modules
25393
- var enums = __webpack_require__(50002);
25411
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
25412
+ var enums = __webpack_require__(98362);
25394
25413
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
25395
25414
  var imageLoadPoolManager = __webpack_require__(775);
25396
25415
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js
@@ -37455,7 +37474,7 @@ MagnifyTool.toolName = 'Magnify';
37455
37474
  "use strict";
37456
37475
  /* harmony import */ var _kitware_vtk_js_Interaction_Widgets_OrientationMarkerWidget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7914);
37457
37476
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_AnnotatedCubeActor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50638);
37458
- /* harmony import */ var _kitware_vtk_js_Rendering_Core_AxesActor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65373);
37477
+ /* harmony import */ var _kitware_vtk_js_Rendering_Core_AxesActor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43387);
37459
37478
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_Actor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48987);
37460
37479
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_Mapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22745);
37461
37480
  /* harmony import */ var _kitware_vtk_js_IO_XML_XMLPolyDataReader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88099);
@@ -37587,7 +37606,11 @@ class OrientationMarkerTool extends _base__WEBPACK_IMPORTED_MODULE_7__/* .BaseTo
37587
37606
  element.addEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.initViewports.bind(this));
37588
37607
  const resizeObserver = new ResizeObserver(() => {
37589
37608
  setTimeout(() => {
37590
- const { viewport } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.getEnabledElementByIds)(viewportId, renderingEngineId);
37609
+ const element = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.getEnabledElementByIds)(viewportId, renderingEngineId);
37610
+ if (!element) {
37611
+ return;
37612
+ }
37613
+ const { viewport } = element;
37591
37614
  this.resize(viewportId);
37592
37615
  viewport.render();
37593
37616
  }, 100);
@@ -39004,6 +39027,316 @@ ScaleOverlayTool.toolName = 'ScaleOverlay';
39004
39027
  /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (ScaleOverlayTool)));
39005
39028
 
39006
39029
 
39030
+ /***/ }),
39031
+
39032
+ /***/ 16151:
39033
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
39034
+
39035
+ "use strict";
39036
+ /* unused harmony export contourIndex */
39037
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
39038
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96214);
39039
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95778);
39040
+ /* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73047);
39041
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
39042
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61738);
39043
+ /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23072);
39044
+ /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40233);
39045
+ /* harmony import */ var _stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(28664);
39046
+ /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
39047
+ /* harmony import */ var _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(16639);
39048
+ /* harmony import */ var _distancePointToContour__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7783);
39049
+
39050
+
39051
+
39052
+
39053
+
39054
+
39055
+
39056
+
39057
+
39058
+
39059
+
39060
+
39061
+ class SculptorTool extends _base__WEBPACK_IMPORTED_MODULE_1__/* .BaseTool */ .oS {
39062
+ constructor(toolProps = {}, defaultToolProps = {
39063
+ supportedInteractionTypes: ['Mouse', 'Touch'],
39064
+ configuration: {
39065
+ minSpacing: 1,
39066
+ referencedToolNames: [
39067
+ 'PlanarFreehandROI',
39068
+ 'PlanarFreehandContourSegmentationTool',
39069
+ ],
39070
+ toolShape: 'circle',
39071
+ referencedToolName: 'PlanarFreehandROI',
39072
+ },
39073
+ }) {
39074
+ super(toolProps, defaultToolProps);
39075
+ this.registeredShapes = new Map();
39076
+ this.isActive = false;
39077
+ this.commonData = {
39078
+ activeAnnotationUID: null,
39079
+ viewportIdsToRender: [],
39080
+ isEditingOpenContour: false,
39081
+ canvasLocation: undefined,
39082
+ };
39083
+ this.preMouseDownCallback = (evt) => {
39084
+ const eventData = evt.detail;
39085
+ const element = eventData.element;
39086
+ this.configureToolSize(evt);
39087
+ this.selectFreehandTool(eventData);
39088
+ if (this.commonData.activeAnnotationUID === null) {
39089
+ return;
39090
+ }
39091
+ this.isActive = true;
39092
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.hideElementCursor)(element);
39093
+ this.activateModify(element);
39094
+ return true;
39095
+ };
39096
+ this.mouseMoveCallback = (evt) => {
39097
+ if (this.mode === _enums__WEBPACK_IMPORTED_MODULE_4__.ToolModes.Active) {
39098
+ this.configureToolSize(evt);
39099
+ this.updateCursor(evt);
39100
+ }
39101
+ else {
39102
+ this.commonData.canvasLocation = undefined;
39103
+ }
39104
+ };
39105
+ this.endCallback = (evt) => {
39106
+ const eventData = evt.detail;
39107
+ const { element } = eventData;
39108
+ const config = this.configuration;
39109
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39110
+ this.isActive = false;
39111
+ this.deactivateModify(element);
39112
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.resetElementCursor)(element);
39113
+ const { renderingEngineId, viewportId } = enabledElement;
39114
+ const toolGroup = _store__WEBPACK_IMPORTED_MODULE_5__/* .ToolGroupManager.getToolGroupForViewport */ .dU.getToolGroupForViewport(viewportId, renderingEngineId);
39115
+ const toolInstance = toolGroup.getToolInstance(config.referencedToolName);
39116
+ const annotations = this.filterSculptableAnnotationsForElement(element);
39117
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
39118
+ if (toolInstance.configuration.calculateStats) {
39119
+ activeAnnotation.invalidated = true;
39120
+ }
39121
+ (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__/* .triggerAnnotationModified */ .XF)(activeAnnotation, element);
39122
+ };
39123
+ this.dragCallback = (evt) => {
39124
+ const eventData = evt.detail;
39125
+ const element = eventData.element;
39126
+ this.updateCursor(evt);
39127
+ const annotations = this.filterSculptableAnnotationsForElement(element);
39128
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
39129
+ if (!annotations?.length || !this.isActive) {
39130
+ return;
39131
+ }
39132
+ const points = activeAnnotation.data.contour.polyline;
39133
+ this.sculpt(eventData, points);
39134
+ };
39135
+ this.registerShapes(_SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A.shapeName, _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A);
39136
+ this.setToolShape(this.configuration.toolShape);
39137
+ }
39138
+ registerShapes(shapeName, shapeClass) {
39139
+ const shape = new shapeClass();
39140
+ this.registeredShapes.set(shapeName, shape);
39141
+ }
39142
+ sculpt(eventData, points) {
39143
+ const config = this.configuration;
39144
+ const element = eventData.element;
39145
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39146
+ const { viewport } = enabledElement;
39147
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
39148
+ this.sculptData = {
39149
+ mousePoint: eventData.currentPoints.world,
39150
+ mouseCanvasPoint: eventData.currentPoints.canvas,
39151
+ points,
39152
+ maxSpacing: cursorShape.getMaxSpacing(config.minSpacing),
39153
+ element: element,
39154
+ };
39155
+ const pushedHandles = cursorShape.pushHandles(viewport, this.sculptData);
39156
+ if (pushedHandles.first !== undefined) {
39157
+ this.insertNewHandles(pushedHandles);
39158
+ }
39159
+ }
39160
+ interpolatePointsWithinMaxSpacing(i, points, indicesToInsertAfter, maxSpacing) {
39161
+ const { element } = this.sculptData;
39162
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39163
+ const { viewport } = enabledElement;
39164
+ const nextHandleIndex = contourIndex(i + 1, points.length);
39165
+ const currentCanvasPoint = viewport.worldToCanvas(points[i]);
39166
+ const nextCanvasPoint = viewport.worldToCanvas(points[nextHandleIndex]);
39167
+ const distanceToNextHandle = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.point.distanceToPoint(currentCanvasPoint, nextCanvasPoint);
39168
+ if (distanceToNextHandle > maxSpacing) {
39169
+ indicesToInsertAfter.push(i);
39170
+ }
39171
+ }
39172
+ updateCursor(evt) {
39173
+ const eventData = evt.detail;
39174
+ const element = eventData.element;
39175
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39176
+ const { renderingEngine, viewport } = enabledElement;
39177
+ this.commonData.viewportIdsToRender = [viewport.id];
39178
+ const annotations = this.filterSculptableAnnotationsForElement(element);
39179
+ if (!annotations?.length) {
39180
+ return;
39181
+ }
39182
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
39183
+ this.commonData.canvasLocation = eventData.currentPoints.canvas;
39184
+ if (this.isActive) {
39185
+ activeAnnotation.highlighted = true;
39186
+ }
39187
+ else {
39188
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
39189
+ const canvasCoords = eventData.currentPoints.canvas;
39190
+ cursorShape.updateToolSize(canvasCoords, viewport, activeAnnotation);
39191
+ }
39192
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_6__/* .triggerAnnotationRenderForViewportIds */ .t)(renderingEngine, this.commonData.viewportIdsToRender);
39193
+ }
39194
+ filterSculptableAnnotationsForElement(element) {
39195
+ const config = this.configuration;
39196
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39197
+ const { renderingEngineId, viewportId } = enabledElement;
39198
+ const sculptableAnnotations = [];
39199
+ const toolGroup = _store__WEBPACK_IMPORTED_MODULE_5__/* .ToolGroupManager.getToolGroupForViewport */ .dU.getToolGroupForViewport(viewportId, renderingEngineId);
39200
+ const toolInstance = toolGroup.getToolInstance(config.referencedToolName);
39201
+ config.referencedToolNames.forEach((referencedToolName) => {
39202
+ const annotations = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getAnnotations */ .Rh)(referencedToolName, element);
39203
+ if (annotations) {
39204
+ sculptableAnnotations.push(...annotations);
39205
+ }
39206
+ });
39207
+ return toolInstance.filterInteractableAnnotationsForElement(element, sculptableAnnotations);
39208
+ }
39209
+ configureToolSize(evt) {
39210
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
39211
+ cursorShape.configureToolSize(evt);
39212
+ }
39213
+ insertNewHandles(pushedHandles) {
39214
+ const indicesToInsertAfter = this.findNewHandleIndices(pushedHandles);
39215
+ let newIndexModifier = 0;
39216
+ for (let i = 0; i < indicesToInsertAfter?.length; i++) {
39217
+ const insertIndex = indicesToInsertAfter[i] + 1 + newIndexModifier;
39218
+ this.insertHandleRadially(insertIndex);
39219
+ newIndexModifier++;
39220
+ }
39221
+ }
39222
+ findNewHandleIndices(pushedHandles) {
39223
+ const { points, maxSpacing } = this.sculptData;
39224
+ const indicesToInsertAfter = [];
39225
+ for (let i = pushedHandles.first; i <= pushedHandles.last; i++) {
39226
+ this.interpolatePointsWithinMaxSpacing(i, points, indicesToInsertAfter, maxSpacing);
39227
+ }
39228
+ return indicesToInsertAfter;
39229
+ }
39230
+ insertHandleRadially(insertIndex) {
39231
+ const { points } = this.sculptData;
39232
+ if (insertIndex > points.length - 1 &&
39233
+ this.commonData.isEditingOpenContour) {
39234
+ return;
39235
+ }
39236
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
39237
+ const previousIndex = insertIndex - 1;
39238
+ const nextIndex = contourIndex(insertIndex, points.length);
39239
+ const insertPosition = cursorShape.getInsertPosition(previousIndex, nextIndex, this.sculptData);
39240
+ const handleData = insertPosition;
39241
+ points.splice(insertIndex, 0, handleData);
39242
+ }
39243
+ selectFreehandTool(eventData) {
39244
+ const closestAnnotationUID = this.getClosestFreehandToolOnElement(eventData);
39245
+ if (closestAnnotationUID === undefined) {
39246
+ return;
39247
+ }
39248
+ this.commonData.activeAnnotationUID = closestAnnotationUID;
39249
+ }
39250
+ getClosestFreehandToolOnElement(eventData) {
39251
+ const { element } = eventData;
39252
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
39253
+ const { viewport } = enabledElement;
39254
+ const config = this.configuration;
39255
+ const annotations = this.filterSculptableAnnotationsForElement(element);
39256
+ if (!annotations?.length) {
39257
+ return;
39258
+ }
39259
+ const canvasPoints = eventData.currentPoints.canvas;
39260
+ const closest = {
39261
+ distance: Infinity,
39262
+ toolIndex: undefined,
39263
+ annotationUID: undefined,
39264
+ };
39265
+ for (let i = 0; i < annotations?.length; i++) {
39266
+ if (annotations[i].isLocked || !annotations[i].isVisible) {
39267
+ continue;
39268
+ }
39269
+ const distanceFromTool = (0,_distancePointToContour__WEBPACK_IMPORTED_MODULE_11__/* .distancePointToContour */ .X)(viewport, annotations[i], canvasPoints);
39270
+ if (distanceFromTool === -1) {
39271
+ continue;
39272
+ }
39273
+ if (distanceFromTool < closest.distance) {
39274
+ closest.distance = distanceFromTool;
39275
+ closest.toolIndex = i;
39276
+ closest.annotationUID = annotations[i].annotationUID;
39277
+ }
39278
+ }
39279
+ this.commonData.isEditingOpenContour =
39280
+ !annotations[closest.toolIndex].data.contour.closed;
39281
+ config.referencedToolName =
39282
+ annotations[closest.toolIndex].metadata.toolName;
39283
+ return closest.annotationUID;
39284
+ }
39285
+ activateModify(element) {
39286
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_UP, this.endCallback);
39287
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_CLICK, this.endCallback);
39288
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_DRAG, this.dragCallback);
39289
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_TAP, this.endCallback);
39290
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_END, this.endCallback);
39291
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_DRAG, this.dragCallback);
39292
+ }
39293
+ deactivateModify(element) {
39294
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_UP, this.endCallback);
39295
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_CLICK, this.endCallback);
39296
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_DRAG, this.dragCallback);
39297
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_TAP, this.endCallback);
39298
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_END, this.endCallback);
39299
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_DRAG, this.dragCallback);
39300
+ }
39301
+ setToolShape(toolShape) {
39302
+ this.selectedShape =
39303
+ this.registeredShapes.get(toolShape) ?? _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A.shapeName;
39304
+ }
39305
+ renderAnnotation(enabledElement, svgDrawingHelper) {
39306
+ const { viewport } = enabledElement;
39307
+ const { element } = viewport;
39308
+ const viewportIdsToRender = this.commonData.viewportIdsToRender;
39309
+ if (!this.commonData.canvasLocation ||
39310
+ this.mode !== _enums__WEBPACK_IMPORTED_MODULE_4__.ToolModes.Active ||
39311
+ !viewportIdsToRender.includes(viewport.id)) {
39312
+ return;
39313
+ }
39314
+ const annotations = this.filterSculptableAnnotationsForElement(element);
39315
+ if (!annotations?.length) {
39316
+ return;
39317
+ }
39318
+ const styleSpecifier = {
39319
+ toolGroupId: this.toolGroupId,
39320
+ toolName: this.getToolName(),
39321
+ viewportId: enabledElement.viewport.id,
39322
+ };
39323
+ let color = (0,_stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__/* .getStyleProperty */ .h)('color', styleSpecifier, _enums__WEBPACK_IMPORTED_MODULE_4__.AnnotationStyleStates.Default, this.mode);
39324
+ if (this.isActive) {
39325
+ color = (0,_stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__/* .getStyleProperty */ .h)('color', styleSpecifier, _enums__WEBPACK_IMPORTED_MODULE_4__.AnnotationStyleStates.Highlighted, this.mode);
39326
+ }
39327
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
39328
+ cursorShape.renderShape(svgDrawingHelper, this.commonData.canvasLocation, {
39329
+ color,
39330
+ });
39331
+ }
39332
+ }
39333
+ const contourIndex = (i, length) => {
39334
+ return (i + length) % length;
39335
+ };
39336
+ SculptorTool.toolName = 'SculptorTool';
39337
+ /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (SculptorTool)));
39338
+
39339
+
39007
39340
  /***/ }),
39008
39341
 
39009
39342
  /***/ 70494:
@@ -47305,7 +47638,7 @@ BaseTool.toolName = 'BaseTool';
47305
47638
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
47306
47639
  /* harmony export */ T: () => (/* reexport safe */ _contourDisplay__WEBPACK_IMPORTED_MODULE_0__.A)
47307
47640
  /* harmony export */ });
47308
- /* harmony import */ var _contourDisplay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69714);
47641
+ /* harmony import */ var _contourDisplay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57784);
47309
47642
 
47310
47643
 
47311
47644
 
@@ -50065,9 +50398,9 @@ function triggerAnnotationRender(element) {
50065
50398
 
50066
50399
  "use strict";
50067
50400
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
50068
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
50401
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
50402
+ /* harmony export */ t: () => (/* binding */ triggerAnnotationRenderForViewportIds)
50069
50403
  /* harmony export */ });
50070
- /* unused harmony export triggerAnnotationRenderForViewportIds */
50071
50404
  /* harmony import */ var _triggerAnnotationRender__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6805);
50072
50405
 
50073
50406
  function triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender) {