@cornerstonejs/tools 2.0.0-beta.16 → 2.0.0-beta.18

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 (103) hide show
  1. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +11 -14
  2. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +26 -27
  3. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +1 -4
  4. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +2 -11
  5. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +10 -2
  6. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +2 -2
  7. package/dist/esm/index.d.ts +2 -2
  8. package/dist/esm/index.js +2 -2
  9. package/dist/esm/stateManagement/index.d.ts +3 -3
  10. package/dist/esm/stateManagement/index.js +2 -2
  11. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +19 -18
  12. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +87 -130
  13. package/dist/esm/stateManagement/segmentation/activeSegmentation.d.ts +4 -5
  14. package/dist/esm/stateManagement/segmentation/activeSegmentation.js +6 -23
  15. package/dist/esm/stateManagement/segmentation/addRepresentation.d.ts +3 -0
  16. package/dist/esm/stateManagement/segmentation/addRepresentation.js +51 -0
  17. package/dist/esm/stateManagement/segmentation/addRepresentations.d.ts +3 -0
  18. package/dist/esm/stateManagement/segmentation/addRepresentations.js +9 -0
  19. package/dist/esm/stateManagement/segmentation/config/index.d.ts +2 -2
  20. package/dist/esm/stateManagement/segmentation/config/index.js +2 -2
  21. package/dist/esm/stateManagement/segmentation/config/segmentationColor.d.ts +4 -4
  22. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +10 -10
  23. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.d.ts +8 -8
  24. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +19 -13
  25. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.d.ts +7 -6
  26. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +29 -54
  27. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +1 -1
  28. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +5 -5
  29. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +3 -3
  30. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +5 -5
  31. package/dist/esm/stateManagement/segmentation/helpers/getRepresentationRenderingConfig.d.ts +2 -0
  32. package/dist/esm/stateManagement/segmentation/helpers/{getRepresentationSpecificConfig.js → getRepresentationRenderingConfig.js} +1 -1
  33. package/dist/esm/stateManagement/segmentation/index.d.ts +3 -3
  34. package/dist/esm/stateManagement/segmentation/index.js +3 -3
  35. package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +2 -4
  36. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +5 -6
  37. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +4 -4
  38. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +2 -6
  39. package/dist/esm/stateManagement/segmentation/removeRepresentationsFromViewport.d.ts +2 -0
  40. package/dist/esm/stateManagement/segmentation/removeRepresentationsFromViewport.js +23 -0
  41. package/dist/esm/stateManagement/segmentation/segmentIndex.js +6 -4
  42. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +23 -20
  43. package/dist/esm/stateManagement/segmentation/segmentationState.js +68 -95
  44. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -2
  45. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +4 -18
  46. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +0 -4
  47. package/dist/esm/tools/AdvancedMagnifyViewport.js +3 -3
  48. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +0 -2
  49. package/dist/esm/tools/base/ContourSegmentationBaseTool.d.ts +0 -1
  50. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +42 -33
  51. package/dist/esm/tools/displayTools/Contour/contourDisplay.d.ts +4 -4
  52. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +17 -30
  53. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.d.ts +4 -4
  54. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +20 -11
  55. package/dist/esm/tools/displayTools/Contour/contourHandler/utils.d.ts +0 -2
  56. package/dist/esm/tools/displayTools/Contour/contourHandler/utils.js +0 -11
  57. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.d.ts +1 -1
  58. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.js +3 -3
  59. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +5 -5
  60. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +51 -54
  61. package/dist/esm/tools/displayTools/SegmentationRenderingEngine.d.ts +19 -0
  62. package/dist/esm/tools/displayTools/SegmentationRenderingEngine.js +136 -0
  63. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.d.ts +5 -5
  64. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +14 -25
  65. package/dist/esm/tools/index.d.ts +1 -2
  66. package/dist/esm/tools/index.js +1 -2
  67. package/dist/esm/tools/segmentation/BrushTool.d.ts +15 -2
  68. package/dist/esm/tools/segmentation/BrushTool.js +13 -14
  69. package/dist/esm/tools/segmentation/CircleScissorsTool.js +3 -4
  70. package/dist/esm/tools/segmentation/PaintFillTool.js +1 -2
  71. package/dist/esm/tools/segmentation/RectangleScissorsTool.js +3 -4
  72. package/dist/esm/tools/segmentation/SegmentSelectTool.d.ts +3 -2
  73. package/dist/esm/tools/segmentation/SegmentSelectTool.js +5 -5
  74. package/dist/esm/tools/segmentation/SphereScissorsTool.js +4 -5
  75. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +2 -2
  76. package/dist/esm/types/EventTypes.d.ts +0 -3
  77. package/dist/esm/types/SegmentationStateTypes.d.ts +24 -23
  78. package/dist/esm/types/index.d.ts +2 -2
  79. package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.d.ts +7 -0
  80. package/dist/esm/utilities/segmentation/{getSegmentAtLabelmapBorder.js → getSegmentIndexAtLabelmapBorder.js} +3 -3
  81. package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.d.ts +11 -0
  82. package/dist/esm/utilities/segmentation/{getSegmentAtWorldPoint.js → getSegmentIndexAtWorldPoint.js} +7 -7
  83. package/dist/esm/utilities/segmentation/index.d.ts +3 -3
  84. package/dist/esm/utilities/segmentation/index.js +3 -3
  85. package/dist/esm/utilities/segmentation/triggerSegmentationRender.d.ts +2 -17
  86. package/dist/esm/utilities/segmentation/triggerSegmentationRender.js +4 -106
  87. package/dist/esm/utilities/segmentation/triggerSegmentationRenderForViewports.d.ts +3 -0
  88. package/dist/esm/utilities/segmentation/triggerSegmentationRenderForViewports.js +6 -0
  89. package/dist/esm/utilities/triggerAnnotationRenderForViewportIds.js +7 -2
  90. package/dist/umd/index.js +1 -1
  91. package/dist/umd/index.js.map +1 -1
  92. package/package.json +3 -4
  93. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.d.ts +0 -3
  94. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js +0 -63
  95. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.d.ts +0 -3
  96. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.js +0 -14
  97. package/dist/esm/stateManagement/segmentation/helpers/getRepresentationSpecificConfig.d.ts +0 -2
  98. package/dist/esm/stateManagement/segmentation/removeSegmentationsFromToolGroup.d.ts +0 -2
  99. package/dist/esm/stateManagement/segmentation/removeSegmentationsFromToolGroup.js +0 -39
  100. package/dist/esm/tools/displayTools/SegmentationDisplayTool.d.ts +0 -13
  101. package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +0 -101
  102. package/dist/esm/utilities/segmentation/getSegmentAtLabelmapBorder.d.ts +0 -7
  103. package/dist/esm/utilities/segmentation/getSegmentAtWorldPoint.d.ts +0 -11
@@ -1,18 +1,3 @@
1
- declare class SegmentationRenderingEngine {
2
- private _needsRender;
3
- private _animationFrameSet;
4
- private _animationFrameHandle;
5
- hasBeenDestroyed: boolean;
6
- removeToolGroup(toolGroupId: any): void;
7
- renderToolGroupSegmentations(toolGroupId: any): void;
8
- private _throwIfDestroyed;
9
- private _setToolGroupSegmentationToBeRenderedNextFrame;
10
- private _render;
11
- private _renderFlaggedToolGroups;
12
- _triggerRender(toolGroupId: any): void;
13
- private _reset;
14
- }
15
- declare const segmentationRenderingEngine: SegmentationRenderingEngine;
16
- declare function triggerSegmentationRender(toolGroupId: string): void;
17
- export { segmentationRenderingEngine, triggerSegmentationRender };
1
+ declare function triggerSegmentationRender(segmentationId?: string): void;
2
+ export { triggerSegmentationRender };
18
3
  export default triggerSegmentationRender;
@@ -1,108 +1,6 @@
1
- import { triggerEvent, eventTarget, getRenderingEngine, Enums, } from '@cornerstonejs/core';
2
- import { Events as csToolsEvents } from '../../enums';
3
- import { getToolGroup, getToolGroupForViewport, } from '../../store/ToolGroupManager';
4
- import { SegmentationDisplayTool } from '../../tools';
5
- class SegmentationRenderingEngine {
6
- constructor() {
7
- this._needsRender = new Set();
8
- this._animationFrameSet = false;
9
- this._animationFrameHandle = null;
10
- this._renderFlaggedToolGroups = () => {
11
- this._throwIfDestroyed();
12
- const toolGroupIds = Array.from(this._needsRender.values());
13
- for (const toolGroupId of toolGroupIds) {
14
- this._triggerRender(toolGroupId);
15
- this._needsRender.delete(toolGroupId);
16
- if (this._needsRender.size === 0) {
17
- this._animationFrameSet = false;
18
- this._animationFrameHandle = null;
19
- return;
20
- }
21
- }
22
- };
23
- }
24
- removeToolGroup(toolGroupId) {
25
- this._needsRender.delete(toolGroupId);
26
- if (this._needsRender.size === 0) {
27
- this._reset();
28
- }
29
- }
30
- renderToolGroupSegmentations(toolGroupId) {
31
- this._setToolGroupSegmentationToBeRenderedNextFrame([toolGroupId]);
32
- }
33
- _throwIfDestroyed() {
34
- if (this.hasBeenDestroyed) {
35
- throw new Error('this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.');
36
- }
37
- }
38
- _setToolGroupSegmentationToBeRenderedNextFrame(toolGroupIds) {
39
- toolGroupIds.forEach((toolGroupId) => {
40
- this._needsRender.add(toolGroupId);
41
- });
42
- this._render();
43
- }
44
- _render() {
45
- if (this._needsRender.size > 0 && this._animationFrameSet === false) {
46
- this._animationFrameHandle = window.requestAnimationFrame(this._renderFlaggedToolGroups);
47
- this._animationFrameSet = true;
48
- }
49
- }
50
- _triggerRender(toolGroupId) {
51
- const toolGroup = getToolGroup(toolGroupId);
52
- if (!toolGroup) {
53
- console.warn(`No tool group found with toolGroupId: ${toolGroupId}`);
54
- return;
55
- }
56
- const { viewportsInfo } = toolGroup;
57
- const viewports = viewportsInfo
58
- .map(({ viewportId, renderingEngineId }) => {
59
- const renderingEngine = getRenderingEngine(renderingEngineId);
60
- if (!renderingEngine) {
61
- console.warn('rendering Engine has been destroyed');
62
- return;
63
- }
64
- const viewport = renderingEngine.getViewport(viewportId);
65
- if (viewport) {
66
- return viewport;
67
- }
68
- })
69
- .filter(Boolean);
70
- const segmentationDisplayToolInstance = toolGroup.getToolInstance(SegmentationDisplayTool.toolName);
71
- if (!segmentationDisplayToolInstance) {
72
- console.warn('No segmentation tool found inside', toolGroupId);
73
- return;
74
- }
75
- function onSegmentationRender(evt) {
76
- const { element, viewportId, renderingEngineId } = evt.detail;
77
- element.removeEventListener(Enums.Events.IMAGE_RENDERED, onSegmentationRender);
78
- const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
79
- if (!toolGroup) {
80
- console.warn('toolGroup has been destroyed');
81
- return;
82
- }
83
- const eventDetail = {
84
- toolGroupId: toolGroup.id,
85
- viewportId,
86
- };
87
- triggerEvent(eventTarget, csToolsEvents.SEGMENTATION_RENDERED, {
88
- ...eventDetail,
89
- });
90
- }
91
- viewports.forEach(({ element }) => {
92
- element.addEventListener(Enums.Events.IMAGE_RENDERED, onSegmentationRender);
93
- });
94
- segmentationDisplayToolInstance.renderSegmentation(toolGroupId);
95
- }
96
- _reset() {
97
- window.cancelAnimationFrame(this._animationFrameHandle);
98
- this._needsRender.clear();
99
- this._animationFrameSet = false;
100
- this._animationFrameHandle = null;
101
- }
1
+ import { segmentationRenderingEngine } from '../../tools/displayTools/SegmentationRenderingEngine';
2
+ function triggerSegmentationRender(segmentationId) {
3
+ segmentationRenderingEngine.renderSegmentations(segmentationId);
102
4
  }
103
- const segmentationRenderingEngine = new SegmentationRenderingEngine();
104
- function triggerSegmentationRender(toolGroupId) {
105
- segmentationRenderingEngine.renderToolGroupSegmentations(toolGroupId);
106
- }
107
- export { segmentationRenderingEngine, triggerSegmentationRender };
5
+ export { triggerSegmentationRender };
108
6
  export default triggerSegmentationRender;
@@ -0,0 +1,3 @@
1
+ declare function triggerSegmentationRenderForViewports(viewportIds?: string[]): void;
2
+ export { triggerSegmentationRenderForViewports };
3
+ export default triggerSegmentationRenderForViewports;
@@ -0,0 +1,6 @@
1
+ import { segmentationRenderingEngine } from '../../tools/displayTools/SegmentationRenderingEngine';
2
+ function triggerSegmentationRenderForViewports(viewportIds) {
3
+ segmentationRenderingEngine.renderSegmentationsForViewports(viewportIds);
4
+ }
5
+ export { triggerSegmentationRenderForViewports };
6
+ export default triggerSegmentationRenderForViewports;
@@ -5,12 +5,17 @@ export function triggerAnnotationRenderForViewportIds(viewportIdsToRender) {
5
5
  return;
6
6
  }
7
7
  viewportIdsToRender.forEach((viewportId) => {
8
- const { viewport } = getEnabledElementByViewportId(viewportId);
8
+ const enabledElement = getEnabledElementByViewportId(viewportId);
9
+ if (!enabledElement) {
10
+ console.warn(`Viewport not available for ${viewportId}`);
11
+ return;
12
+ }
13
+ const { viewport } = enabledElement;
9
14
  if (!viewport) {
10
15
  console.warn(`Viewport not available for ${viewportId}`);
11
16
  return;
12
17
  }
13
- const { element } = viewport;
18
+ const element = viewport.element;
14
19
  triggerAnnotationRender(element);
15
20
  });
16
21
  }