@cornerstonejs/tools 0.27.2 → 0.29.0

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 (177) hide show
  1. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js +2 -2
  2. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  3. package/dist/cjs/eventListeners/segmentation/segmentationModifiedEventListener.js +1 -1
  4. package/dist/cjs/eventListeners/segmentation/segmentationModifiedEventListener.js.map +1 -1
  5. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +1 -1
  6. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js.map +1 -1
  7. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +1 -1
  8. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  9. package/dist/cjs/index.d.ts +3 -3
  10. package/dist/cjs/index.js +3 -1
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/stateManagement/annotation/config/ToolStyle.js +0 -9
  13. package/dist/cjs/stateManagement/annotation/config/ToolStyle.js.map +1 -1
  14. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.d.ts +6 -1
  15. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +42 -4
  16. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  17. package/dist/cjs/stateManagement/segmentation/config/index.d.ts +2 -2
  18. package/dist/cjs/stateManagement/segmentation/config/index.js +5 -1
  19. package/dist/cjs/stateManagement/segmentation/config/index.js.map +1 -1
  20. package/dist/cjs/stateManagement/segmentation/config/segmentationColor.d.ts +2 -1
  21. package/dist/cjs/stateManagement/segmentation/config/segmentationColor.js +9 -1
  22. package/dist/cjs/stateManagement/segmentation/config/segmentationColor.js.map +1 -1
  23. package/dist/cjs/stateManagement/segmentation/config/segmentationConfig.d.ts +6 -2
  24. package/dist/cjs/stateManagement/segmentation/config/segmentationConfig.js +18 -2
  25. package/dist/cjs/stateManagement/segmentation/config/segmentationConfig.js.map +1 -1
  26. package/dist/cjs/stateManagement/segmentation/config/segmentationVisibility.d.ts +2 -1
  27. package/dist/cjs/stateManagement/segmentation/config/segmentationVisibility.js +39 -1
  28. package/dist/cjs/stateManagement/segmentation/config/segmentationVisibility.js.map +1 -1
  29. package/dist/cjs/stateManagement/segmentation/removeSegmentationsFromToolGroup.d.ts +1 -1
  30. package/dist/cjs/stateManagement/segmentation/removeSegmentationsFromToolGroup.js +6 -7
  31. package/dist/cjs/stateManagement/segmentation/removeSegmentationsFromToolGroup.js.map +1 -1
  32. package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +8 -3
  33. package/dist/cjs/stateManagement/segmentation/segmentationState.js +44 -16
  34. package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
  35. package/dist/cjs/store/SynchronizerManager/Synchronizer.js +29 -18
  36. package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
  37. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +2 -0
  38. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +30 -5
  39. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  40. package/dist/cjs/store/ToolGroupManager/destroyToolGroup.js +2 -0
  41. package/dist/cjs/store/ToolGroupManager/destroyToolGroup.js.map +1 -1
  42. package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.d.ts +3 -0
  43. package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js +72 -0
  44. package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -0
  45. package/dist/cjs/synchronizers/index.d.ts +2 -1
  46. package/dist/cjs/synchronizers/index.js +3 -1
  47. package/dist/cjs/synchronizers/index.js.map +1 -1
  48. package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.d.ts +2 -0
  49. package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js +15 -0
  50. package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js.map +1 -0
  51. package/dist/cjs/synchronizers/synchronizers/index.d.ts +2 -1
  52. package/dist/cjs/synchronizers/synchronizers/index.js +3 -1
  53. package/dist/cjs/synchronizers/synchronizers/index.js.map +1 -1
  54. package/dist/cjs/tools/CrosshairsTool.d.ts +6 -1
  55. package/dist/cjs/tools/CrosshairsTool.js +47 -15
  56. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  57. package/dist/cjs/tools/ReferenceLinesTool.d.ts +25 -0
  58. package/dist/cjs/tools/ReferenceLinesTool.js +152 -0
  59. package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -0
  60. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +1 -0
  61. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  62. package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js +7 -3
  63. package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
  64. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.d.ts +2 -2
  65. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +128 -86
  66. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  67. package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js +14 -9
  68. package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
  69. package/dist/cjs/tools/index.d.ts +2 -1
  70. package/dist/cjs/tools/index.js +3 -1
  71. package/dist/cjs/tools/index.js.map +1 -1
  72. package/dist/cjs/types/LabelmapTypes.d.ts +2 -0
  73. package/dist/cjs/types/SegmentationStateTypes.d.ts +5 -0
  74. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +7 -0
  75. package/dist/cjs/utilities/index.d.ts +2 -1
  76. package/dist/cjs/utilities/index.js +3 -1
  77. package/dist/cjs/utilities/index.js.map +1 -1
  78. package/dist/cjs/utilities/segmentation/index.d.ts +2 -1
  79. package/dist/cjs/utilities/segmentation/index.js +3 -1
  80. package/dist/cjs/utilities/segmentation/index.js.map +1 -1
  81. package/dist/cjs/utilities/{triggerSegmentationRender.d.ts → segmentation/triggerSegmentationRender.d.ts} +1 -0
  82. package/dist/cjs/utilities/{triggerSegmentationRender.js → segmentation/triggerSegmentationRender.js} +9 -3
  83. package/dist/cjs/utilities/segmentation/triggerSegmentationRender.js.map +1 -0
  84. package/dist/cjs/utilities/viewport/index.d.ts +4 -0
  85. package/dist/cjs/utilities/viewport/index.js +13 -0
  86. package/dist/cjs/utilities/viewport/index.js.map +1 -0
  87. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +2 -2
  88. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  89. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +2 -2
  90. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js.map +1 -1
  91. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +1 -1
  92. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js.map +1 -1
  93. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +1 -1
  94. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  95. package/dist/esm/index.d.ts +3 -3
  96. package/dist/esm/index.js +3 -3
  97. package/dist/esm/index.js.map +1 -1
  98. package/dist/esm/stateManagement/annotation/config/ToolStyle.js +0 -9
  99. package/dist/esm/stateManagement/annotation/config/ToolStyle.js.map +1 -1
  100. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +6 -1
  101. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +42 -4
  102. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  103. package/dist/esm/stateManagement/segmentation/config/index.d.ts +2 -2
  104. package/dist/esm/stateManagement/segmentation/config/index.js +2 -2
  105. package/dist/esm/stateManagement/segmentation/config/index.js.map +1 -1
  106. package/dist/esm/stateManagement/segmentation/config/segmentationColor.d.ts +2 -1
  107. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +8 -1
  108. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js.map +1 -1
  109. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.d.ts +6 -2
  110. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +17 -2
  111. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js.map +1 -1
  112. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.d.ts +2 -1
  113. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +15 -1
  114. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js.map +1 -1
  115. package/dist/esm/stateManagement/segmentation/removeSegmentationsFromToolGroup.d.ts +1 -1
  116. package/dist/esm/stateManagement/segmentation/removeSegmentationsFromToolGroup.js +6 -7
  117. package/dist/esm/stateManagement/segmentation/removeSegmentationsFromToolGroup.js.map +1 -1
  118. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +8 -3
  119. package/dist/esm/stateManagement/segmentation/segmentationState.js +38 -15
  120. package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
  121. package/dist/esm/store/SynchronizerManager/Synchronizer.js +2 -2
  122. package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
  123. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +2 -0
  124. package/dist/esm/store/ToolGroupManager/ToolGroup.js +30 -5
  125. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  126. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +2 -0
  127. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js.map +1 -1
  128. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.d.ts +3 -0
  129. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js +58 -0
  130. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -0
  131. package/dist/esm/synchronizers/index.d.ts +2 -1
  132. package/dist/esm/synchronizers/index.js +2 -1
  133. package/dist/esm/synchronizers/index.js.map +1 -1
  134. package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.d.ts +2 -0
  135. package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js +9 -0
  136. package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js.map +1 -0
  137. package/dist/esm/synchronizers/synchronizers/index.d.ts +2 -1
  138. package/dist/esm/synchronizers/synchronizers/index.js +2 -1
  139. package/dist/esm/synchronizers/synchronizers/index.js.map +1 -1
  140. package/dist/esm/tools/CrosshairsTool.d.ts +6 -1
  141. package/dist/esm/tools/CrosshairsTool.js +47 -15
  142. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  143. package/dist/esm/tools/ReferenceLinesTool.d.ts +25 -0
  144. package/dist/esm/tools/ReferenceLinesTool.js +146 -0
  145. package/dist/esm/tools/ReferenceLinesTool.js.map +1 -0
  146. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +2 -1
  147. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  148. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +7 -3
  149. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
  150. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +2 -2
  151. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +119 -76
  152. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  153. package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +14 -9
  154. package/dist/esm/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
  155. package/dist/esm/tools/index.d.ts +2 -1
  156. package/dist/esm/tools/index.js +2 -1
  157. package/dist/esm/tools/index.js.map +1 -1
  158. package/dist/esm/types/LabelmapTypes.d.ts +2 -0
  159. package/dist/esm/types/SegmentationStateTypes.d.ts +5 -0
  160. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +7 -0
  161. package/dist/esm/utilities/index.d.ts +2 -1
  162. package/dist/esm/utilities/index.js +2 -1
  163. package/dist/esm/utilities/index.js.map +1 -1
  164. package/dist/esm/utilities/segmentation/index.d.ts +2 -1
  165. package/dist/esm/utilities/segmentation/index.js +2 -1
  166. package/dist/esm/utilities/segmentation/index.js.map +1 -1
  167. package/dist/esm/utilities/{triggerSegmentationRender.d.ts → segmentation/triggerSegmentationRender.d.ts} +1 -0
  168. package/dist/esm/utilities/{triggerSegmentationRender.js → segmentation/triggerSegmentationRender.js} +9 -3
  169. package/dist/esm/utilities/segmentation/triggerSegmentationRender.js.map +1 -0
  170. package/dist/esm/utilities/viewport/index.d.ts +4 -0
  171. package/dist/esm/utilities/viewport/index.js +5 -0
  172. package/dist/esm/utilities/viewport/index.js.map +1 -0
  173. package/dist/umd/index.js +1 -1
  174. package/dist/umd/index.js.map +1 -1
  175. package/package.json +5 -5
  176. package/dist/cjs/utilities/triggerSegmentationRender.js.map +0 -1
  177. package/dist/esm/utilities/triggerSegmentationRender.js.map +0 -1
@@ -7,8 +7,10 @@ const defaultLabelmapConfig = {
7
7
  outlineWidthInactive: 2,
8
8
  renderFill: true,
9
9
  renderFillInactive: true,
10
- fillAlpha: 0.9,
11
- fillAlphaInactive: 0.85,
10
+ fillAlpha: 0.7,
11
+ fillAlphaInactive: 0.65,
12
+ outlineOpacity: 1,
13
+ outlineOpacityInactive: 0.85,
12
14
  };
13
15
  function getDefaultLabelmapConfig() {
14
16
  return defaultLabelmapConfig;
@@ -21,7 +23,9 @@ function isValidLabelmapConfig(config) {
21
23
  typeof config.renderFill === 'boolean' &&
22
24
  typeof config.renderFillInactive === 'boolean' &&
23
25
  typeof config.fillAlpha === 'number' &&
24
- typeof config.fillAlphaInactive === 'number');
26
+ typeof config.fillAlphaInactive === 'number' &&
27
+ typeof config.outlineOpacity === 'number' &&
28
+ typeof config.outlineOpacityInactive === 'number');
25
29
  }
26
30
  exports.isValidLabelmapConfig = isValidLabelmapConfig;
27
31
  exports.default = getDefaultLabelmapConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"labelmapConfig.js","sourceRoot":"","sources":["../../../../../src/tools/displayTools/Labelmap/labelmapConfig.ts"],"names":[],"mappings":";;;AAEA,MAAM,qBAAqB,GAAmB;IAC5C,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,CAAC;IACrB,oBAAoB,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI;IAChB,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,GAAG;IACd,iBAAiB,EAAE,IAAI;CAKxB,CAAC;AAEF,SAAS,wBAAwB;IAC/B,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,SAAS,qBAAqB,CAAC,MAAM;IACnC,OAAO,CACL,MAAM;QACN,OAAO,MAAM,CAAC,aAAa,KAAK,SAAS;QACzC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;QAC7C,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;QAC/C,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS;QACtC,OAAO,MAAM,CAAC,kBAAkB,KAAK,SAAS;QAC9C,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAC7C,CAAC;AACJ,CAAC;AAGQ,sDAAqB;AAD9B,kBAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"labelmapConfig.js","sourceRoot":"","sources":["../../../../../src/tools/displayTools/Labelmap/labelmapConfig.ts"],"names":[],"mappings":";;;AAEA,MAAM,qBAAqB,GAAmB;IAC5C,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,CAAC;IACrB,oBAAoB,EAAE,CAAC;IACvB,UAAU,EAAE,IAAI;IAChB,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,GAAG;IACd,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,CAAC;IACjB,sBAAsB,EAAE,IAAI;CAC7B,CAAC;AAEF,SAAS,wBAAwB;IAC/B,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAID,SAAS,qBAAqB,CAAC,MAAM;IACnC,OAAO,CACL,MAAM;QACN,OAAO,MAAM,CAAC,aAAa,KAAK,SAAS;QACzC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;QAC7C,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;QAC/C,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS;QACtC,OAAO,MAAM,CAAC,kBAAkB,KAAK,SAAS;QAC9C,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ;QAC5C,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;QACzC,OAAO,MAAM,CAAC,sBAAsB,KAAK,QAAQ,CAClD,CAAC;AACJ,CAAC;AAGQ,sDAAqB;AAD9B,kBAAe,wBAAwB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { Types } from '@cornerstonejs/core';
2
2
  import { RepresentationPublicInput, SegmentationRepresentationConfig, ToolGroupSpecificRepresentation } from '../../../types/SegmentationStateTypes';
3
3
  declare function addSegmentationRepresentation(toolGroupId: string, representationInput: RepresentationPublicInput, toolGroupSpecificConfig?: SegmentationRepresentationConfig): Promise<string>;
4
- declare function removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
5
- declare function render(viewport: Types.IViewport, representation: ToolGroupSpecificRepresentation, toolGroupConfig: SegmentationRepresentationConfig): void;
4
+ declare function removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string, renderImmediate?: boolean): void;
5
+ declare function render(viewport: Types.IVolumeViewport, representation: ToolGroupSpecificRepresentation, toolGroupConfig: SegmentationRepresentationConfig): Promise<void>;
6
6
  declare const _default: {
7
7
  render: typeof render;
8
8
  addSegmentationRepresentation: typeof addSegmentationRepresentation;
@@ -50,16 +50,14 @@ const labelMapConfigCache = new Map();
50
50
  function addSegmentationRepresentation(toolGroupId, representationInput, toolGroupSpecificConfig) {
51
51
  return __awaiter(this, void 0, void 0, function* () {
52
52
  const { segmentationId } = representationInput;
53
- const segmentation = SegmentationState.getSegmentation(segmentationId);
54
- const { volumeId } = segmentation.representationData[SegmentationRepresentations_1.default.Labelmap];
55
53
  const segmentationRepresentationUID = core_1.utilities.uuidv4();
56
- yield _addLabelmapToToolGroupViewports(toolGroupId, volumeId, segmentationRepresentationUID);
57
54
  const segmentsHidden = new Set();
58
55
  const visibility = true;
59
56
  const colorLUTIndex = 0;
60
57
  const active = true;
61
58
  const cfun = ColorTransferFunction_1.default.newInstance();
62
59
  const ofun = PiecewiseFunction_1.default.newInstance();
60
+ ofun.addPoint(0, 0);
63
61
  const toolGroupSpecificRepresentation = {
64
62
  segmentationId,
65
63
  segmentationRepresentationUID,
@@ -68,13 +66,14 @@ function addSegmentationRepresentation(toolGroupId, representationInput, toolGro
68
66
  visibility,
69
67
  colorLUTIndex,
70
68
  active,
69
+ segmentationRepresentationSpecificConfig: {},
70
+ segmentSpecificConfig: {},
71
71
  config: {
72
72
  cfun,
73
73
  ofun,
74
74
  },
75
75
  };
76
76
  if (toolGroupSpecificConfig) {
77
- const suppressEvents = true;
78
77
  const currentToolGroupConfig = SegmentationConfig.getToolGroupSpecificConfig(toolGroupId);
79
78
  const mergedConfig = (0, utilities_1.deepMerge)(currentToolGroupConfig, toolGroupSpecificConfig);
80
79
  SegmentationConfig.setToolGroupSpecificConfig(toolGroupId, {
@@ -86,97 +85,150 @@ function addSegmentationRepresentation(toolGroupId, representationInput, toolGro
86
85
  return segmentationRepresentationUID;
87
86
  });
88
87
  }
89
- function removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID) {
88
+ function removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID, renderImmediate = false) {
90
89
  _removeLabelmapFromToolGroupViewports(toolGroupId, segmentationRepresentationUID);
91
90
  SegmentationState.removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID);
91
+ if (renderImmediate) {
92
+ const viewportsInfo = (0, ToolGroupManager_1.getToolGroup)(toolGroupId).getViewportsInfo();
93
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
94
+ const enabledElement = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
95
+ enabledElement.viewport.render();
96
+ });
97
+ }
92
98
  }
93
99
  function render(viewport, representation, toolGroupConfig) {
94
- const { colorLUTIndex, active, segmentationId, segmentationRepresentationUID, visibility, config: renderingConfig, } = representation;
95
- const segmentation = SegmentationState.getSegmentation(segmentationId);
96
- const labelmapData = segmentation.representationData[SegmentationRepresentations_1.default.Labelmap];
97
- const { volumeId: labelmapUID } = labelmapData;
98
- const labelmap = core_1.cache.getVolume(labelmapUID);
99
- if (!labelmap) {
100
- throw new Error(`No Labelmap found for volumeId: ${labelmapUID}`);
101
- }
102
- const actorEntry = viewport.getActor(segmentationRepresentationUID);
103
- if (!actorEntry) {
104
- console.warn('No actor found for actorUID: ', segmentationRepresentationUID);
105
- return;
106
- }
107
- const { cfun, ofun } = renderingConfig;
108
- const labelmapConfig = toolGroupConfig.representations[SegmentationRepresentations_1.default.Labelmap];
109
- const renderInactiveSegmentations = toolGroupConfig.renderInactiveSegmentations;
110
- _setLabelmapColorAndOpacity(viewport.id, actorEntry, cfun, ofun, colorLUTIndex, labelmapConfig, active, renderInactiveSegmentations, visibility);
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ const { colorLUTIndex, active, segmentationId, segmentationRepresentationUID, visibility, segmentsHidden, config: renderingConfig, } = representation;
102
+ const segmentation = SegmentationState.getSegmentation(segmentationId);
103
+ const labelmapData = segmentation.representationData[SegmentationRepresentations_1.default.Labelmap];
104
+ const { volumeId: labelmapUID } = labelmapData;
105
+ const labelmap = core_1.cache.getVolume(labelmapUID);
106
+ if (!labelmap) {
107
+ throw new Error(`No Labelmap found for volumeId: ${labelmapUID}`);
108
+ }
109
+ let actorEntry = viewport.getActor(segmentationRepresentationUID);
110
+ if (!actorEntry) {
111
+ const segmentation = SegmentationState.getSegmentation(segmentationId);
112
+ const { volumeId } = segmentation.representationData[SegmentationRepresentations_1.default.Labelmap];
113
+ yield _addLabelmapToViewport(viewport, volumeId, segmentationRepresentationUID);
114
+ actorEntry = viewport.getActor(segmentationRepresentationUID);
115
+ }
116
+ const { cfun, ofun } = renderingConfig;
117
+ const renderInactiveSegmentations = toolGroupConfig.renderInactiveSegmentations;
118
+ _setLabelmapColorAndOpacity(viewport.id, actorEntry, cfun, ofun, colorLUTIndex, toolGroupConfig.representations[SegmentationRepresentations_1.default.Labelmap], representation, active, renderInactiveSegmentations, segmentsHidden, visibility);
119
+ });
111
120
  }
112
- function _setLabelmapColorAndOpacity(viewportId, actorEntry, cfun, ofun, colorLUTIndex, labelmapConfig, isActiveLabelmap, renderInactiveSegmentations, visibility = true) {
113
- ofun.addPoint(0, 0);
114
- const fillAlpha = isActiveLabelmap
115
- ? labelmapConfig.fillAlpha
116
- : labelmapConfig.fillAlphaInactive;
117
- const outlineWidth = isActiveLabelmap
118
- ? labelmapConfig.outlineWidthActive
119
- : labelmapConfig.outlineWidthInactive;
120
- const renderFill = isActiveLabelmap
121
- ? labelmapConfig.renderFill
122
- : labelmapConfig.renderFillInactive;
121
+ function _setLabelmapColorAndOpacity(viewportId, actorEntry, cfun, ofun, colorLUTIndex, toolGroupLabelmapConfig, segmentationRepresentation, isActiveLabelmap, renderInactiveSegmentations, segmentsHidden, visibility = true) {
122
+ var _a;
123
+ const { segmentSpecificConfig, segmentationRepresentationSpecificConfig } = segmentationRepresentation;
124
+ const segmentationRepresentationLabelmapConfig = segmentationRepresentationSpecificConfig[SegmentationRepresentations_1.default.Labelmap];
123
125
  const colorLUT = SegmentationState.getColorLUT(colorLUTIndex);
124
126
  const numColors = Math.min(256, colorLUT.length);
125
- const { uid } = actorEntry;
126
127
  const volumeActor = actorEntry.actor;
127
- const { needColorUpdate, needOpacityUpdate } = _needsTransferFunctionUpdate(viewportId, uid, fillAlpha, colorLUTIndex, renderFill);
128
- if (needColorUpdate) {
129
- for (let i = 0; i < numColors; i++) {
130
- const color = colorLUT[i];
131
- cfun.addRGBPoint(i, color[0] / MAX_NUMBER_COLORS, color[1] / MAX_NUMBER_COLORS, color[2] / MAX_NUMBER_COLORS);
128
+ const { uid: actorUID } = actorEntry;
129
+ const { outlineWidth, renderOutline, outlineOpacity } = _getLabelmapConfig(toolGroupLabelmapConfig, segmentationRepresentationLabelmapConfig, isActiveLabelmap);
130
+ for (let i = 0; i < numColors; i++) {
131
+ const segmentIndex = i;
132
+ const segmentColor = colorLUT[segmentIndex];
133
+ const segmentSpecificLabelmapConfig = (_a = segmentSpecificConfig[segmentIndex]) === null || _a === void 0 ? void 0 : _a[SegmentationRepresentations_1.default.Labelmap];
134
+ const { fillAlpha, outlineWidth, renderFill, renderOutline } = _getLabelmapConfig(toolGroupLabelmapConfig, segmentationRepresentationLabelmapConfig, isActiveLabelmap, segmentSpecificLabelmapConfig);
135
+ const { forceOpacityUpdate, forceColorUpdate } = _needsTransferFunctionUpdate(viewportId, actorUID, segmentIndex, {
136
+ fillAlpha,
137
+ renderFill,
138
+ renderOutline,
139
+ segmentColor,
140
+ outlineWidth,
141
+ segmentsHidden,
142
+ });
143
+ if (forceColorUpdate) {
144
+ cfun.addRGBPoint(segmentIndex, segmentColor[0] / MAX_NUMBER_COLORS, segmentColor[1] / MAX_NUMBER_COLORS, segmentColor[2] / MAX_NUMBER_COLORS);
132
145
  }
133
- volumeActor.getProperty().setRGBTransferFunction(0, cfun);
134
- }
135
- if (needOpacityUpdate) {
136
- if (labelmapConfig.renderFill) {
137
- for (let i = 0; i < numColors; i++) {
138
- const color = colorLUT[i];
139
- const segmentOpacity = (color[3] / 255) * fillAlpha;
140
- ofun.addPoint(i, segmentOpacity);
146
+ if (forceOpacityUpdate) {
147
+ if (renderFill) {
148
+ const segmentOpacity = segmentsHidden.has(segmentIndex)
149
+ ? 0
150
+ : (segmentColor[3] / 255) * fillAlpha;
151
+ ofun.removePoint(segmentIndex);
152
+ ofun.addPointLong(segmentIndex, segmentOpacity, 0.5, 1.0);
141
153
  }
142
- }
143
- else {
144
- for (let i = 0; i < numColors; i++) {
145
- ofun.addPoint(i, 0.01);
154
+ else {
155
+ ofun.addPointLong(segmentIndex, 0.01, 0.5, 1.0);
146
156
  }
147
157
  }
148
- ofun.setClamping(false);
149
- volumeActor.getProperty().setScalarOpacity(0, ofun);
150
158
  }
159
+ volumeActor.getProperty().setRGBTransferFunction(0, cfun);
160
+ ofun.setClamping(false);
161
+ volumeActor.getProperty().setScalarOpacity(0, ofun);
151
162
  volumeActor.getProperty().setInterpolationTypeToNearest();
152
- volumeActor.getProperty().setUseLabelOutline(labelmapConfig.renderOutline);
163
+ volumeActor.getProperty().setUseLabelOutline(renderOutline);
164
+ volumeActor.getProperty().setLabelOutlineOpacity(outlineOpacity);
153
165
  volumeActor.getProperty().setLabelOutlineThickness(outlineWidth);
154
166
  const visible = visibility && (isActiveLabelmap || renderInactiveSegmentations);
155
167
  volumeActor.setVisibility(visible);
156
168
  }
157
- function _needsTransferFunctionUpdate(viewportId, actorUID, fillAlpha, colorLUTIndex, renderFill) {
158
- const cacheUID = `${viewportId}-${actorUID}`;
159
- const config = labelMapConfigCache.get(cacheUID);
160
- let needColorUpdate = false;
161
- let needOpacityUpdate = false;
169
+ function _getLabelmapConfig(toolGroupLabelmapConfig, segmentationRepresentationLabelmapConfig, isActiveLabelmap, segmentsLabelmapConfig) {
170
+ const segmentLabelmapConfig = segmentsLabelmapConfig || {};
171
+ const configToUse = Object.assign(Object.assign(Object.assign({}, toolGroupLabelmapConfig), segmentationRepresentationLabelmapConfig), segmentLabelmapConfig);
172
+ const fillAlpha = isActiveLabelmap
173
+ ? configToUse.fillAlpha
174
+ : configToUse.fillAlphaInactive;
175
+ const outlineWidth = isActiveLabelmap
176
+ ? configToUse.outlineWidthActive
177
+ : configToUse.outlineWidthInactive;
178
+ const renderFill = isActiveLabelmap
179
+ ? configToUse.renderFill
180
+ : configToUse.renderFillInactive;
181
+ const renderOutline = configToUse.renderOutline;
182
+ const outlineOpacity = isActiveLabelmap
183
+ ? configToUse.outlineOpacity
184
+ : configToUse.outlineOpacityInactive;
185
+ return {
186
+ fillAlpha,
187
+ outlineWidth,
188
+ renderFill,
189
+ renderOutline,
190
+ outlineOpacity,
191
+ };
192
+ }
193
+ function _needsTransferFunctionUpdate(viewportId, actorUID, segmentIndex, { fillAlpha, renderFill, renderOutline, segmentColor, outlineWidth, segmentsHidden, }) {
194
+ const cacheUID = `${viewportId}-${actorUID}-${segmentIndex}`;
195
+ const oldConfig = labelMapConfigCache.get(cacheUID);
196
+ if (!oldConfig) {
197
+ labelMapConfigCache.set(cacheUID, {
198
+ fillAlpha,
199
+ renderFill,
200
+ renderOutline,
201
+ outlineWidth,
202
+ segmentColor,
203
+ segmentsHidden: new Set(segmentsHidden),
204
+ });
205
+ return {
206
+ forceOpacityUpdate: true,
207
+ forceColorUpdate: true,
208
+ };
209
+ }
210
+ const { fillAlpha: oldFillAlpha, renderFill: oldRenderFill, renderOutline: oldRenderOutline, outlineWidth: oldOutlineWidth, segmentColor: oldSegmentColor, segmentsHidden: oldSegmentsHidden, } = oldConfig;
211
+ const forceColorUpdate = oldSegmentColor[0] !== segmentColor[0] ||
212
+ oldSegmentColor[1] !== segmentColor[1] ||
213
+ oldSegmentColor[2] !== segmentColor[2];
214
+ const forceOpacityUpdate = oldSegmentColor[3] !== segmentColor[3] ||
215
+ oldFillAlpha !== fillAlpha ||
216
+ oldRenderFill !== renderFill ||
217
+ oldRenderOutline !== renderOutline ||
218
+ oldOutlineWidth !== outlineWidth ||
219
+ oldSegmentsHidden.has(segmentIndex) !== segmentsHidden.has(segmentIndex);
162
220
  labelMapConfigCache.set(cacheUID, {
163
221
  fillAlpha,
164
- colorLUTIndex,
222
+ renderFill,
223
+ renderOutline,
224
+ outlineWidth,
225
+ segmentColor,
226
+ segmentsHidden: new Set(segmentsHidden),
165
227
  });
166
- if (!config) {
167
- needColorUpdate = true;
168
- needOpacityUpdate = true;
169
- }
170
- if (config && config.fillAlpha !== fillAlpha) {
171
- needOpacityUpdate = true;
172
- }
173
- if (config && config.colorLUTIndex !== colorLUTIndex) {
174
- needColorUpdate = true;
175
- }
176
- if (config && config.renderFill !== renderFill) {
177
- needOpacityUpdate = true;
178
- }
179
- return { needColorUpdate, needOpacityUpdate };
228
+ return {
229
+ forceOpacityUpdate,
230
+ forceColorUpdate,
231
+ };
180
232
  }
181
233
  function _removeLabelmapFromToolGroupViewports(toolGroupId, segmentationRepresentationUID) {
182
234
  const toolGroup = (0, ToolGroupManager_1.getToolGroup)(toolGroupId);
@@ -190,19 +242,9 @@ function _removeLabelmapFromToolGroupViewports(toolGroupId, segmentationRepresen
190
242
  (0, removeLabelmapFromElement_1.default)(enabledElement.viewport.element, segmentationRepresentationUID);
191
243
  }
192
244
  }
193
- function _addLabelmapToToolGroupViewports(toolGroupId, volumeId, segmentationRepresentationUID) {
245
+ function _addLabelmapToViewport(viewport, volumeId, segmentationRepresentationUID) {
194
246
  return __awaiter(this, void 0, void 0, function* () {
195
- const toolGroup = (0, ToolGroupManager_1.getToolGroup)(toolGroupId);
196
- const { viewportsInfo } = toolGroup;
197
- for (const viewportInfo of viewportsInfo) {
198
- const { viewportId, renderingEngineId } = viewportInfo;
199
- const enabledElement = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
200
- if (!enabledElement) {
201
- throw new Error(`No enabled element found for rendering engine: ${renderingEngineId} and viewport: ${viewportId}`);
202
- }
203
- const { viewport } = enabledElement;
204
- (0, addLabelmapToElement_1.default)(viewport.element, volumeId, segmentationRepresentationUID);
205
- }
247
+ yield (0, addLabelmapToElement_1.default)(viewport.element, volumeId, segmentationRepresentationUID);
206
248
  });
207
249
  }
208
250
  exports.default = {
@@ -1 +1 @@
1
- {"version":3,"file":"labelmapDisplay.js","sourceRoot":"","sources":["../../../../../src/tools/displayTools/Labelmap/labelmapDisplay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labelmapDisplay.js","sourceRoot":"","sources":["../../../../../src/tools/displayTools/Labelmap/labelmapDisplay.ts"],"names":[],"mappings":"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"}
@@ -23,25 +23,30 @@ class SegmentationDisplayTool extends base_1.BaseTool {
23
23
  return;
24
24
  }
25
25
  const toolGroupSegmentationRepresentations = (0, segmentationState_1.getSegmentationRepresentations)(toolGroupId);
26
+ if (!toolGroupSegmentationRepresentations ||
27
+ toolGroupSegmentationRepresentations.length === 0) {
28
+ return;
29
+ }
26
30
  const toolGroupViewports = toolGroup.viewportsInfo.map(({ renderingEngineId, viewportId }) => {
27
31
  const enabledElement = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
28
32
  if (enabledElement) {
29
33
  return enabledElement.viewport;
30
34
  }
31
35
  });
32
- toolGroupSegmentationRepresentations.forEach((representation) => {
36
+ const segmentationRenderList = toolGroupSegmentationRepresentations.map((representation) => {
33
37
  const config = this._getMergedRepresentationsConfig(toolGroupId);
34
- toolGroupViewports.forEach((viewport) => {
38
+ const viewportsRenderList = [];
39
+ for (const viewport of toolGroupViewports) {
35
40
  if (representation.type == SegmentationRepresentations_1.default.Labelmap) {
36
- Labelmap_1.labelmapDisplay.render(viewport, representation, config);
37
- }
38
- else {
39
- throw new Error(`Render for ${representation.type} is not supported yet`);
41
+ viewportsRenderList.push(Labelmap_1.labelmapDisplay.render(viewport, representation, config));
40
42
  }
41
- });
43
+ }
44
+ return viewportsRenderList;
42
45
  });
43
- toolGroupViewports.forEach((viewport) => {
44
- viewport.render();
46
+ Promise.allSettled(segmentationRenderList).then(() => {
47
+ toolGroupViewports.forEach((viewport) => {
48
+ viewport.render();
49
+ });
45
50
  });
46
51
  };
47
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/displayTools/SegmentationDisplayTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SegmentationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/displayTools/SegmentationDisplayTool.ts"],"names":[],"mappings":";;;;;AAAA,kCAAmC;AACnC,8CAAoE;AACpE,0GAAsE;AACtE,4FAAsG;AACtG,yCAA6C;AAC7C,qEAAkF;AAClF,4GAAyH;AACzH,mEAA4D;AAI5D,+CAA4C;AA4B5C,MAAM,uBAAwB,SAAQ,eAAQ;IAE5C,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,aAAa,EAAE,EAAE;KAClB;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAsDrC,uBAAkB,GAAG,CAAC,WAAmB,EAAQ,EAAE;YACjD,MAAM,SAAS,GAAG,IAAA,+BAAY,EAAC,WAAW,CAAC,CAAC;YAE5C,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO;aACR;YAED,MAAM,oCAAoC,GACxC,IAAA,kDAA8B,EAAC,WAAW,CAAC,CAAC;YAE9C,IACE,CAAC,oCAAoC;gBACrC,oCAAoC,CAAC,MAAM,KAAK,CAAC,EACjD;gBACA,OAAO;aACR;YAGD,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CACpD,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,IAAA,6BAAsB,EAC3C,UAAU,EACV,iBAAiB,CAClB,CAAC;gBAEF,IAAI,cAAc,EAAE;oBAClB,OAAO,cAAc,CAAC,QAAQ,CAAC;iBAChC;YACH,CAAC,CACF,CAAC;YAGF,MAAM,sBAAsB,GAAG,oCAAoC,CAAC,GAAG,CACrE,CAAC,cAA+C,EAAE,EAAE;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC;gBAEjE,MAAM,mBAAmB,GAAG,EAAE,CAAC;gBAC/B,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE;oBACzC,IAAI,cAAc,CAAC,IAAI,IAAI,qCAAe,CAAC,QAAQ,EAAE;wBACnD,mBAAmB,CAAC,IAAI,CACtB,0BAAe,CAAC,MAAM,CACpB,QAAiC,EACjC,cAAc,EACd,MAAM,CACP,CACF,CAAC;qBACH;iBACF;gBAED,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAEnD,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAhHF,CAAC;IAED,gBAAgB;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,oCAAoC,GACxC,IAAA,kDAA8B,EAAC,WAAW,CAAC,CAAC;QAE9C,IACE,CAAC,oCAAoC;YACrC,oCAAoC,CAAC,MAAM,KAAK,CAAC,EACjD;YACA,OAAO;SACR;QAGD,KAAK,MAAM,0BAA0B,IAAI,oCAAoC,EAAE;YAC7E,0BAA0B,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7C,IAAA,qEAAyC,EACvC,WAAW,EACX,0BAA0B,CAAC,6BAA6B,CACzD,CAAC;SACH;IACH,CAAC;IAED,iBAAiB;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,oCAAoC,GACxC,IAAA,kDAA8B,EAAC,WAAW,CAAC,CAAC;QAE9C,IACE,CAAC,oCAAoC;YACrC,oCAAoC,CAAC,MAAM,KAAK,CAAC,EACjD;YACA,OAAO;SACR;QAGD,KAAK,MAAM,0BAA0B,IAAI,oCAAoC,EAAE;YAC7E,0BAA0B,CAAC,UAAU,GAAG,KAAK,CAAC;YAC9C,IAAA,qEAAyC,EACvC,WAAW,EACX,0BAA0B,CAAC,6BAA6B,CACzD,CAAC;SACH;IACH,CAAC;IA2ED,+BAA+B,CAC7B,WAAmB;QAEnB,MAAM,eAAe,GACnB,qBAAkB,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,qBAAkB,CAAC,eAAe,EAAE,CAAC;QAG1D,MAAM,YAAY,GAAG,IAAA,qBAAS,EAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAE9D,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,uBAAuB,CAAC,QAAQ,GAAG,qBAAqB,CAAC;AACzD,kBAAe,uBAAuB,CAAC"}
@@ -9,6 +9,7 @@ import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
9
9
  import MIPJumpToClickTool from './MIPJumpToClickTool';
10
10
  import CrosshairsTool from './CrosshairsTool';
11
11
  import MagnifyTool from './MagnifyTool';
12
+ import ReferenceLinesTool from './ReferenceLinesTool';
12
13
  import BidirectionalTool from './annotation/BidirectionalTool';
13
14
  import LengthTool from './annotation/LengthTool';
14
15
  import ProbeTool from './annotation/ProbeTool';
@@ -25,4 +26,4 @@ import SphereScissorsTool from './segmentation/SphereScissorsTool';
25
26
  import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool';
26
27
  import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
27
28
  import BrushTool from './segmentation/BrushTool';
28
- export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, };
29
+ export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationTool = exports.BaseTool = void 0;
6
+ exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationTool = exports.BaseTool = void 0;
7
7
  const base_1 = require("./base");
8
8
  Object.defineProperty(exports, "BaseTool", { enumerable: true, get: function () { return base_1.BaseTool; } });
9
9
  Object.defineProperty(exports, "AnnotationTool", { enumerable: true, get: function () { return base_1.AnnotationTool; } });
@@ -27,6 +27,8 @@ const CrosshairsTool_1 = __importDefault(require("./CrosshairsTool"));
27
27
  exports.CrosshairsTool = CrosshairsTool_1.default;
28
28
  const MagnifyTool_1 = __importDefault(require("./MagnifyTool"));
29
29
  exports.MagnifyTool = MagnifyTool_1.default;
30
+ const ReferenceLinesTool_1 = __importDefault(require("./ReferenceLinesTool"));
31
+ exports.ReferenceLinesTool = ReferenceLinesTool_1.default;
30
32
  const BidirectionalTool_1 = __importDefault(require("./annotation/BidirectionalTool"));
31
33
  exports.BidirectionalTool = BidirectionalTool_1.default;
32
34
  const LengthTool_1 = __importDefault(require("./annotation/LengthTool"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;AAmChD,yFAnCO,eAAQ,OAmCP;AACR,+FApCiB,qBAAc,OAoCjB;AAnChB,wDAAgC;AAqC9B,kBArCK,iBAAO,CAqCL;AApCT,gFAAwD;AAqCtD,8BArCK,6BAAmB,CAqCL;AApCrB,wEAAgD;AAsC9C,0BAtCK,yBAAe,CAsCL;AArCjB,wEAAgD;AAsC9C,0BAtCK,yBAAe,CAsCL;AArCjB,oGAAwE;AAsCtE,oCAtCK,uCAAyB,CAsCL;AArC3B,0DAAkC;AAsChC,mBAtCK,kBAAQ,CAsCL;AArCV,8FAAsE;AAsCpE,qCAtCK,oCAA0B,CAsCL;AArC5B,8EAAsD;AAsCpD,6BAtCK,4BAAkB,CAsCL;AArCpB,sEAA8C;AAuC5C,yBAvCK,wBAAc,CAuCL;AAtChB,gEAAwC;AAwDtC,sBAxDK,qBAAW,CAwDL;AAtDb,uFAA+D;AAqC7D,4BArCK,2BAAiB,CAqCL;AApCnB,yEAAiD;AAqC/C,qBArCK,oBAAU,CAqCL;AApCZ,uEAA+C;AAqC7C,oBArCK,mBAAS,CAqCL;AApCX,+EAAuD;AAyBrD,wBAzBK,uBAAa,CAyBL;AAxBf,qFAA6D;AAoC3D,2BApCK,0BAAgB,CAoCL;AAnClB,uFAA+D;AAoC7D,4BApCK,2BAAiB,CAoCL;AAnCnB,+FAAuE;AAoCrE,gCApCK,+BAAqB,CAoCL;AAnCvB,uFAA+D;AAoC7D,4BApCK,2BAAiB,CAoCL;AAnCnB,uEAA+C;AAoC7C,oBApCK,mBAAS,CAoCL;AAjCX,qGAA6E;AAmC3E,kCAnCK,iCAAuB,CAmCL;AAhCzB,iGAAyE;AAkCvE,gCAlCK,+BAAqB,CAkCL;AAjCvB,2FAAmE;AAkCjE,6BAlCK,4BAAkB,CAkCL;AAjCpB,2FAAmE;AAkCjE,6BAlCK,4BAAkB,CAkCL;AAjCpB,yGAAiF;AAkC/E,oCAlCK,mCAAyB,CAkCL;AAjC3B,yHAAiG;AAkC/F,4CAlCK,2CAAiC,CAkCL;AAjCnC,yEAAiD;AAkC/C,oBAlCK,mBAAS,CAkCL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;AAoChD,yFApCO,eAAQ,OAoCP;AACR,+FArCiB,qBAAc,OAqCjB;AApChB,wDAAgC;AAsC9B,kBAtCK,iBAAO,CAsCL;AArCT,gFAAwD;AAsCtD,8BAtCK,6BAAmB,CAsCL;AArCrB,wEAAgD;AAuC9C,0BAvCK,yBAAe,CAuCL;AAtCjB,wEAAgD;AAuC9C,0BAvCK,yBAAe,CAuCL;AAtCjB,oGAAwE;AAuCtE,oCAvCK,uCAAyB,CAuCL;AAtC3B,0DAAkC;AAuChC,mBAvCK,kBAAQ,CAuCL;AAtCV,8FAAsE;AAuCpE,qCAvCK,oCAA0B,CAuCL;AAtC5B,8EAAsD;AAuCpD,6BAvCK,4BAAkB,CAuCL;AAtCpB,sEAA8C;AAwC5C,yBAxCK,wBAAc,CAwCL;AAvChB,gEAAwC;AA0DtC,sBA1DK,qBAAW,CA0DL;AAzDb,8EAAsD;AAuCpD,6BAvCK,4BAAkB,CAuCL;AArCpB,uFAA+D;AAsC7D,4BAtCK,2BAAiB,CAsCL;AArCnB,yEAAiD;AAsC/C,qBAtCK,oBAAU,CAsCL;AArCZ,uEAA+C;AAsC7C,oBAtCK,mBAAS,CAsCL;AArCX,+EAAuD;AAyBrD,wBAzBK,uBAAa,CAyBL;AAxBf,qFAA6D;AAqC3D,2BArCK,0BAAgB,CAqCL;AApClB,uFAA+D;AAqC7D,4BArCK,2BAAiB,CAqCL;AApCnB,+FAAuE;AAqCrE,gCArCK,+BAAqB,CAqCL;AApCvB,uFAA+D;AAqC7D,4BArCK,2BAAiB,CAqCL;AApCnB,uEAA+C;AAqC7C,oBArCK,mBAAS,CAqCL;AAlCX,qGAA6E;AAoC3E,kCApCK,iCAAuB,CAoCL;AAjCzB,iGAAyE;AAmCvE,gCAnCK,+BAAqB,CAmCL;AAlCvB,2FAAmE;AAmCjE,6BAnCK,4BAAkB,CAmCL;AAlCpB,2FAAmE;AAmCjE,6BAnCK,4BAAkB,CAmCL;AAlCpB,yGAAiF;AAmC/E,oCAnCK,mCAAyB,CAmCL;AAlC3B,yHAAiG;AAmC/F,4CAnCK,2CAAiC,CAmCL;AAlCnC,yEAAiD;AAmC/C,oBAnCK,mBAAS,CAmCL"}
@@ -8,6 +8,8 @@ export declare type LabelmapConfig = {
8
8
  renderFillInactive?: boolean;
9
9
  fillAlpha?: number;
10
10
  fillAlphaInactive?: number;
11
+ outlineOpacity?: number;
12
+ outlineOpacityInactive?: number;
11
13
  };
12
14
  export declare type LabelmapRenderingConfig = {
13
15
  cfun?: vtkColorTransferFunction;
@@ -2,6 +2,9 @@ import * as Enums from '../enums';
2
2
  import type { LabelmapConfig, LabelmapSegmentationData, LabelmapRenderingConfig } from './LabelmapTypes';
3
3
  export declare type Color = [number, number, number, number];
4
4
  export declare type ColorLUT = Array<Color>;
5
+ export declare type SegmentSpecificRepresentationConfig = {
6
+ [key: number]: RepresentationConfig;
7
+ };
5
8
  export declare type RepresentationConfig = {
6
9
  LABELMAP?: LabelmapConfig;
7
10
  };
@@ -34,6 +37,8 @@ export declare type ToolGroupSpecificRepresentationState = {
34
37
  };
35
38
  export declare type ToolGroupSpecificLabelmapRepresentation = ToolGroupSpecificRepresentationState & {
36
39
  config: LabelmapRenderingConfig;
40
+ segmentationRepresentationSpecificConfig?: RepresentationConfig;
41
+ segmentSpecificConfig?: SegmentSpecificRepresentationConfig;
37
42
  };
38
43
  export declare type ToolGroupSpecificRepresentation = ToolGroupSpecificLabelmapRepresentation;
39
44
  export declare type ToolGroupSpecificRepresentations = Array<ToolGroupSpecificRepresentation>;
@@ -245,4 +245,11 @@ export interface AngleAnnotation extends Annotation {
245
245
  };
246
246
  };
247
247
  }
248
+ export interface ReferenceLineAnnotation extends Annotation {
249
+ data: {
250
+ handles: {
251
+ points: Types.Point3[];
252
+ };
253
+ };
254
+ }
248
255
  export {};
@@ -22,5 +22,6 @@ import * as boundingBox from './boundingBox';
22
22
  import * as planarFreehandROITool from './planarFreehandROITool';
23
23
  import * as rectangleROITool from './rectangleROITool';
24
24
  import * as stackPrefetch from './stackPrefetch';
25
+ import * as viewport from './viewport';
25
26
  import { triggerEvent } from '@cornerstonejs/core';
26
- export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
27
+ export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, scroll, };
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.orientation = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
29
+ exports.scroll = exports.stackPrefetch = exports.planarFreehandROITool = exports.rectangleROITool = exports.boundingBox = exports.clip = exports.cine = exports.viewport = exports.jumpToSlice = exports.getAnnotationNearPointOnEnabledElement = exports.getAnnotationNearPoint = exports.pointInSurroundingSphereCallback = exports.pointInShapeCallback = exports.triggerAnnotationRender = exports.triggerAnnotationRenderForViewportIds = exports.segmentation = exports.calibrateImageSpacing = exports.triggerEvent = exports.isObject = exports.orientation = exports.throttle = exports.deepMerge = exports.debounce = exports.drawing = exports.viewportFilters = exports.planar = exports.math = void 0;
30
30
  const getAnnotationNearPoint_1 = require("./getAnnotationNearPoint");
31
31
  Object.defineProperty(exports, "getAnnotationNearPoint", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPoint; } });
32
32
  Object.defineProperty(exports, "getAnnotationNearPointOnEnabledElement", { enumerable: true, get: function () { return getAnnotationNearPoint_1.getAnnotationNearPointOnEnabledElement; } });
@@ -76,6 +76,8 @@ const rectangleROITool = __importStar(require("./rectangleROITool"));
76
76
  exports.rectangleROITool = rectangleROITool;
77
77
  const stackPrefetch = __importStar(require("./stackPrefetch"));
78
78
  exports.stackPrefetch = stackPrefetch;
79
+ const viewport = __importStar(require("./viewport"));
80
+ exports.viewport = viewport;
79
81
  const core_1 = require("@cornerstonejs/core");
80
82
  Object.defineProperty(exports, "triggerEvent", { enumerable: true, get: function () { return core_1.triggerEvent; } });
81
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAkDhC,uGApDA,+CAAsB,OAoDA;AACtB,uHApDA,+DAAsC,OAoDA;AAhDxC,0DAAkC;AAmChC,mBAnCK,kBAAQ,CAmCL;AAlCV,4DAAoC;AAmClC,oBAnCK,mBAAS,CAmCL;AAlCX,0DAAkC;AAmChC,mBAnCK,kBAAQ,CAmCL;AAlCV,0DAAkC;AAoChC,mBApCK,kBAAQ,CAoCL;AAnCV,kDAA0B;AA+CxB,eA/CK,cAAI,CA+CL;AA9CN,oFAA4D;AAoC1D,gCApCK,+BAAqB,CAoCL;AAnCvB,oHAA4F;AAqC1F,gDArCK,+CAAqC,CAqCL;AApCvC,wFAAgE;AAqC9D,kCArCK,iCAAuB,CAqCL;AApCzB,yEAAiD;AAyC/C,sBAzCK,qBAAW,CAyCL;AAvCb,kFAA0D;AAmCxD,+BAnCK,8BAAoB,CAmCL;AAlCtB,0GAAkF;AAmChF,2CAnCK,0CAAgC,CAmCL;AAlClC,sDAA8B;AA4C5B,iBA5CK,gBAAM,CA4CL;AAzCR,6DAA+C;AA2B7C,oCAAY;AA1Bd,mDAAqC;AAkBnC,0BAAO;AAjBT,6CAA+B;AAc7B,oBAAI;AAbN,iDAAmC;AAcjC,wBAAM;AAbR,mEAAqD;AAcnD,0CAAe;AAbjB,2DAA6C;AAkB3C,kCAAW;AAjBb,6CAA+B;AA6B7B,oBAAI;AA5BN,2DAA6C;AA8B3C,kCAAW;AA7Bb,+EAAiE;AA+B/D,sDAAqB;AA9BvB,qEAAuD;AA6BrD,4CAAgB;AA5BlB,+DAAiD;AA8B/C,sCAAa;AA3Bf,8CAAmD;AAYjD,6FAZO,mBAAY,OAYP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAGkC;AAmDhC,uGArDA,+CAAsB,OAqDA;AACtB,uHArDA,+DAAsC,OAqDA;AAjDxC,0DAAkC;AAoChC,mBApCK,kBAAQ,CAoCL;AAnCV,4DAAoC;AAoClC,oBApCK,mBAAS,CAoCL;AAnCX,0DAAkC;AAoChC,mBApCK,kBAAQ,CAoCL;AAnCV,0DAAkC;AAqChC,mBArCK,kBAAQ,CAqCL;AApCV,kDAA0B;AAiDxB,eAjDK,cAAI,CAiDL;AAhDN,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,oHAA4F;AAsC1F,gDAtCK,+CAAqC,CAsCL;AArCvC,wFAAgE;AAsC9D,kCAtCK,iCAAuB,CAsCL;AArCzB,yEAAiD;AA0C/C,sBA1CK,qBAAW,CA0CL;AAxCb,kFAA0D;AAoCxD,+BApCK,8BAAoB,CAoCL;AAnCtB,0GAAkF;AAoChF,2CApCK,0CAAgC,CAoCL;AAnClC,sDAA8B;AA8C5B,iBA9CK,gBAAM,CA8CL;AA3CR,6DAA+C;AA4B7C,oCAAY;AA3Bd,mDAAqC;AAmBnC,0BAAO;AAlBT,6CAA+B;AAe7B,oBAAI;AAdN,iDAAmC;AAejC,wBAAM;AAdR,mEAAqD;AAenD,0CAAe;AAdjB,2DAA6C;AAmB3C,kCAAW;AAlBb,6CAA+B;AA+B7B,oBAAI;AA9BN,2DAA6C;AAgC3C,kCAAW;AA/Bb,+EAAiE;AAiC/D,sDAAqB;AAhCvB,qEAAuD;AA+BrD,4CAAgB;AA9BlB,+DAAiD;AAgC/C,sCAAa;AA/Bf,qDAAuC;AAyBrC,4BAAQ;AAtBV,8CAAmD;AAYjD,6FAZO,mBAAY,OAYP"}
@@ -4,4 +4,5 @@ import createMergedLabelmapForIndex from './createMergedLabelmapForIndex';
4
4
  import isValidRepresentationConfig from './isValidRepresentationConfig';
5
5
  import getDefaultRepresentationConfig from './getDefaultRepresentationConfig';
6
6
  import createLabelmapVolumeForViewport from './createLabelmapVolumeForViewport';
7
- export { thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, };
7
+ import { triggerSegmentationRender } from './triggerSegmentationRender';
8
+ export { thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, triggerSegmentationRender, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.rectangleROIThresholdVolumeByRange = exports.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange = void 0;
6
+ exports.triggerSegmentationRender = exports.rectangleROIThresholdVolumeByRange = exports.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange = void 0;
7
7
  const thresholdVolumeByRange_1 = __importDefault(require("./thresholdVolumeByRange"));
8
8
  exports.thresholdVolumeByRange = thresholdVolumeByRange_1.default;
9
9
  const rectangleROIThresholdVolumeByRange_1 = __importDefault(require("./rectangleROIThresholdVolumeByRange"));
@@ -16,4 +16,6 @@ const getDefaultRepresentationConfig_1 = __importDefault(require("./getDefaultRe
16
16
  exports.getDefaultRepresentationConfig = getDefaultRepresentationConfig_1.default;
17
17
  const createLabelmapVolumeForViewport_1 = __importDefault(require("./createLabelmapVolumeForViewport"));
18
18
  exports.createLabelmapVolumeForViewport = createLabelmapVolumeForViewport_1.default;
19
+ const triggerSegmentationRender_1 = require("./triggerSegmentationRender");
20
+ Object.defineProperty(exports, "triggerSegmentationRender", { enumerable: true, get: function () { return triggerSegmentationRender_1.triggerSegmentationRender; } });
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,sFAA8D;AAQ5D,iCARK,gCAAsB,CAQL;AAPxB,8GAAsF;AAYpF,6CAZK,4CAAkC,CAYL;AAXpC,kGAA0E;AAOxE,uCAPK,sCAA4B,CAOL;AAN9B,gGAAwE;AAOtE,sCAPK,qCAA2B,CAOL;AAN7B,sGAA8E;AAO5E,yCAPK,wCAA8B,CAOL;AANhC,wGAAgF;AAO9E,0CAPK,yCAA+B,CAOL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,sFAA8D;AAS5D,iCATK,gCAAsB,CASL;AARxB,8GAAsF;AAapF,6CAbK,4CAAkC,CAaL;AAZpC,kGAA0E;AAQxE,uCARK,sCAA4B,CAQL;AAP9B,gGAAwE;AAQtE,sCARK,qCAA2B,CAQL;AAP7B,sGAA8E;AAQ5E,yCARK,wCAA8B,CAQL;AAPhC,wGAAgF;AAQ9E,0CARK,yCAA+B,CAQL;AAPjC,2EAAwE;AAStE,0GATO,qDAAyB,OASP"}
@@ -3,6 +3,7 @@ declare class SegmentationRenderingEngine {
3
3
  private _animationFrameSet;
4
4
  private _animationFrameHandle;
5
5
  hasBeenDestroyed: boolean;
6
+ removeToolGroup(toolGroupId: any): void;
6
7
  renderToolGroupSegmentations(toolGroupId: any): void;
7
8
  private _throwIfDestroyed;
8
9
  private _setToolGroupSegmentationToBeRenderedNextFrame;