@cornerstonejs/tools 0.30.7 → 0.32.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 (109) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.js +2 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +4 -1
  5. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +90 -29
  6. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  7. package/dist/cjs/store/state.d.ts +4 -6
  8. package/dist/cjs/tools/base/BaseTool.d.ts +1 -1
  9. package/dist/cjs/tools/index.d.ts +2 -1
  10. package/dist/cjs/tools/index.js +3 -1
  11. package/dist/cjs/tools/index.js.map +1 -1
  12. package/dist/cjs/tools/segmentation/BrushTool.d.ts +9 -5
  13. package/dist/cjs/tools/segmentation/BrushTool.js +95 -115
  14. package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
  15. package/dist/cjs/tools/segmentation/PaintFillTool.d.ts +12 -0
  16. package/dist/cjs/tools/segmentation/PaintFillTool.js +213 -0
  17. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -0
  18. package/dist/cjs/tools/segmentation/strategies/eraseCircle.d.ts +15 -0
  19. package/dist/cjs/tools/segmentation/strategies/eraseCircle.js +10 -0
  20. package/dist/cjs/tools/segmentation/strategies/eraseCircle.js.map +1 -0
  21. package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +13 -0
  22. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js +12 -0
  23. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -0
  24. package/dist/cjs/tools/segmentation/strategies/fillCircle.d.ts +3 -0
  25. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +41 -12
  26. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  27. package/dist/cjs/types/FloodFillTypes.d.ts +15 -0
  28. package/dist/cjs/types/FloodFillTypes.js +3 -0
  29. package/dist/cjs/types/FloodFillTypes.js.map +1 -0
  30. package/dist/cjs/types/IToolClassReference.d.ts +3 -0
  31. package/dist/cjs/types/IToolClassReference.js +3 -0
  32. package/dist/cjs/types/IToolClassReference.js.map +1 -0
  33. package/dist/cjs/types/IToolGroup.d.ts +3 -0
  34. package/dist/cjs/types/index.d.ts +3 -1
  35. package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -0
  36. package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js +49 -0
  37. package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js.map +1 -0
  38. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.d.ts +3 -0
  39. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.js +49 -0
  40. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.js.map +1 -0
  41. package/dist/cjs/utilities/segmentation/createLabelmapVolumeForViewport.js +1 -1
  42. package/dist/cjs/utilities/segmentation/createLabelmapVolumeForViewport.js.map +1 -1
  43. package/dist/cjs/utilities/segmentation/floodFill.d.ts +3 -0
  44. package/dist/cjs/utilities/segmentation/floodFill.js +131 -0
  45. package/dist/cjs/utilities/segmentation/floodFill.js.map +1 -0
  46. package/dist/cjs/utilities/segmentation/index.d.ts +4 -1
  47. package/dist/cjs/utilities/segmentation/index.js +9 -1
  48. package/dist/cjs/utilities/segmentation/index.js.map +1 -1
  49. package/dist/cjs/utilities/segmentation/utilities.d.ts +2 -0
  50. package/dist/cjs/utilities/segmentation/utilities.js +21 -0
  51. package/dist/cjs/utilities/segmentation/utilities.js.map +1 -0
  52. package/dist/cjs/utilities/viewport/isViewportPreScaled.js +1 -1
  53. package/dist/cjs/utilities/viewport/isViewportPreScaled.js.map +1 -1
  54. package/dist/esm/index.d.ts +2 -2
  55. package/dist/esm/index.js +2 -2
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +4 -1
  58. package/dist/esm/store/ToolGroupManager/ToolGroup.js +90 -29
  59. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  60. package/dist/esm/store/state.d.ts +4 -6
  61. package/dist/esm/tools/base/BaseTool.d.ts +1 -1
  62. package/dist/esm/tools/index.d.ts +2 -1
  63. package/dist/esm/tools/index.js +2 -1
  64. package/dist/esm/tools/index.js.map +1 -1
  65. package/dist/esm/tools/segmentation/BrushTool.d.ts +9 -5
  66. package/dist/esm/tools/segmentation/BrushTool.js +98 -119
  67. package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
  68. package/dist/esm/tools/segmentation/PaintFillTool.d.ts +12 -0
  69. package/dist/esm/tools/segmentation/PaintFillTool.js +210 -0
  70. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -0
  71. package/dist/esm/tools/segmentation/strategies/eraseCircle.d.ts +15 -0
  72. package/dist/esm/tools/segmentation/strategies/eraseCircle.js +9 -0
  73. package/dist/esm/tools/segmentation/strategies/eraseCircle.js.map +1 -0
  74. package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +13 -0
  75. package/dist/esm/tools/segmentation/strategies/eraseSphere.js +8 -0
  76. package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -0
  77. package/dist/esm/tools/segmentation/strategies/fillCircle.d.ts +3 -0
  78. package/dist/esm/tools/segmentation/strategies/fillCircle.js +38 -10
  79. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  80. package/dist/esm/types/FloodFillTypes.d.ts +15 -0
  81. package/dist/esm/types/FloodFillTypes.js +2 -0
  82. package/dist/esm/types/FloodFillTypes.js.map +1 -0
  83. package/dist/esm/types/IToolClassReference.d.ts +3 -0
  84. package/dist/esm/types/IToolClassReference.js +2 -0
  85. package/dist/esm/types/IToolClassReference.js.map +1 -0
  86. package/dist/esm/types/IToolGroup.d.ts +3 -0
  87. package/dist/esm/types/index.d.ts +3 -1
  88. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -0
  89. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +41 -0
  90. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js.map +1 -0
  91. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.d.ts +3 -0
  92. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +41 -0
  93. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js.map +1 -0
  94. package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +1 -1
  95. package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js.map +1 -1
  96. package/dist/esm/utilities/segmentation/floodFill.d.ts +3 -0
  97. package/dist/esm/utilities/segmentation/floodFill.js +128 -0
  98. package/dist/esm/utilities/segmentation/floodFill.js.map +1 -0
  99. package/dist/esm/utilities/segmentation/index.d.ts +4 -1
  100. package/dist/esm/utilities/segmentation/index.js +4 -1
  101. package/dist/esm/utilities/segmentation/index.js.map +1 -1
  102. package/dist/esm/utilities/segmentation/utilities.d.ts +2 -0
  103. package/dist/esm/utilities/segmentation/utilities.js +15 -0
  104. package/dist/esm/utilities/segmentation/utilities.js.map +1 -0
  105. package/dist/esm/utilities/viewport/isViewportPreScaled.js +2 -2
  106. package/dist/esm/utilities/viewport/isViewportPreScaled.js.map +1 -1
  107. package/dist/umd/index.js +1 -1
  108. package/dist/umd/index.js.map +1 -1
  109. package/package.json +3 -3
@@ -1,87 +1,70 @@
1
1
  import { cache, getEnabledElement, StackViewport } from '@cornerstonejs/core';
2
2
  import { BaseTool } from '../base';
3
- import { fillInsideCircle } from './strategies/fillCircle';
4
- import { Events } from '../../enums';
3
+ import { fillInsideSphere } from './strategies/fillSphere';
4
+ import { eraseInsideSphere } from './strategies/eraseSphere';
5
+ import { thresholdInsideCircle, fillInsideCircle, } from './strategies/fillCircle';
6
+ import { eraseInsideCircle } from './strategies/eraseCircle';
7
+ import { Events, ToolModes } from '../../enums';
5
8
  import { drawCircle as drawCircleSvg } from '../../drawingSvg';
6
9
  import { resetElementCursor, hideElementCursor, } from '../../cursors/elementCursor';
7
10
  import triggerAnnotationRenderForViewportUIDs from '../../utilities/triggerAnnotationRenderForViewportIds';
8
11
  import { config as segmentationConfig, segmentLocking, segmentIndex as segmentIndexController, state as segmentationState, activeSegmentation, } from '../../stateManagement/segmentation';
9
- class BrushTool extends BaseTool {
12
+ export default class BrushTool extends BaseTool {
10
13
  constructor(toolProps = {}, defaultToolProps = {
11
14
  supportedInteractionTypes: ['Mouse', 'Touch'],
12
15
  configuration: {
13
16
  strategies: {
14
- FILL_INSIDE: fillInsideCircle,
17
+ FILL_INSIDE_CIRCLE: fillInsideCircle,
18
+ THRESHOLD_INSIDE_CIRCLE: thresholdInsideCircle,
19
+ ERASE_INSIDE_CIRCLE: eraseInsideCircle,
20
+ FILL_INSIDE_SPHERE: fillInsideSphere,
21
+ ERASE_INSIDE_SPHERE: eraseInsideSphere,
15
22
  },
16
- defaultStrategy: 'FILL_INSIDE',
17
- activeStrategy: 'FILL_INSIDE',
23
+ strategySpecificConfiguration: {
24
+ THRESHOLD_INSIDE_CIRCLE: {
25
+ threshold: [-150, -70],
26
+ },
27
+ },
28
+ defaultStrategy: 'FILL_INSIDE_CIRCLE',
29
+ activeStrategy: 'FILL_INSIDE_CIRCLE',
18
30
  brushSize: 25,
19
31
  },
20
32
  }) {
21
33
  super(toolProps, defaultToolProps);
34
+ this.onSetToolPassive = () => {
35
+ this.disableCursor();
36
+ };
37
+ this.onSetToolEnabled = () => {
38
+ this.disableCursor();
39
+ };
40
+ this.onSetToolDisabled = () => {
41
+ this.disableCursor();
42
+ };
22
43
  this.preMouseDownCallback = (evt) => {
23
44
  const eventData = evt.detail;
24
- const { currentPoints, element } = eventData;
25
- const worldPos = currentPoints.world;
26
- const canvasPos = currentPoints.canvas;
45
+ const { element } = eventData;
27
46
  const enabledElement = getEnabledElement(element);
28
47
  const { viewport, renderingEngine } = enabledElement;
29
- const { canvasToWorld } = viewport;
30
- this._isDrawing = true;
31
- const camera = viewport.getCamera();
32
- const { viewPlaneNormal, viewUp } = camera;
48
+ if (viewport instanceof StackViewport) {
49
+ throw new Error('Not implemented yet');
50
+ }
33
51
  const toolGroupId = this.toolGroupId;
34
52
  const activeSegmentationRepresentation = activeSegmentation.getActiveSegmentationRepresentation(toolGroupId);
35
53
  if (!activeSegmentationRepresentation) {
36
54
  throw new Error('No active segmentation detected, create one before using the brush tool');
37
55
  }
38
- const { segmentationRepresentationUID, segmentationId, type } = activeSegmentationRepresentation;
39
- const segmentIndex = segmentIndexController.getActiveSegmentIndex(segmentationId);
56
+ const { segmentationId, type } = activeSegmentationRepresentation;
40
57
  const segmentsLocked = segmentLocking.getLockedSegments(segmentationId);
41
- const segmentColor = segmentationConfig.color.getColorForSegmentIndex(toolGroupId, segmentationRepresentationUID, segmentIndex);
42
58
  const { representationData } = segmentationState.getSegmentation(segmentationId);
43
59
  const { volumeId } = representationData[type];
44
60
  const segmentation = cache.getVolume(volumeId);
45
- const centerCanvas = canvasPos;
46
- const radius = this.configuration.brushSize;
47
- const bottomCanvas = [
48
- centerCanvas[0],
49
- centerCanvas[1] + radius,
50
- ];
51
- const topCanvas = [centerCanvas[0], centerCanvas[1] - radius];
52
- const leftCanvas = [
53
- centerCanvas[0] - radius,
54
- centerCanvas[1],
55
- ];
56
- const rightCanvas = [
57
- centerCanvas[0] + radius,
58
- centerCanvas[1],
59
- ];
60
- const brushCursor = {
61
- metadata: {
62
- viewPlaneNormal: [...viewPlaneNormal],
63
- viewUp: [...viewUp],
64
- FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
65
- referencedImageId: '',
66
- toolName: this.getToolName(),
67
- segmentColor,
68
- },
69
- data: {
70
- invalidated: true,
71
- handles: {
72
- points: [
73
- canvasToWorld(bottomCanvas),
74
- canvasToWorld(topCanvas),
75
- canvasToWorld(leftCanvas),
76
- canvasToWorld(rightCanvas),
77
- ],
78
- },
79
- cachedStats: {},
80
- },
81
- };
61
+ const actors = viewport.getActors();
62
+ const firstVolumeActorUID = actors[0].uid;
63
+ const imageVolume = cache.getVolume(firstVolumeActorUID);
82
64
  const viewportIdsToRender = [viewport.id];
83
65
  this._editData = {
84
66
  segmentation,
67
+ imageVolume,
85
68
  segmentsLocked,
86
69
  };
87
70
  this._activateDraw(element);
@@ -91,48 +74,25 @@ class BrushTool extends BaseTool {
91
74
  return true;
92
75
  };
93
76
  this.mouseMoveCallback = (evt) => {
94
- this.updateCursor(evt);
77
+ if (this.mode === ToolModes.Active) {
78
+ this.updateCursor(evt);
79
+ }
95
80
  };
96
81
  this._mouseDragCallback = (evt) => {
97
- this._isDrawing = true;
98
- const brushSize = this.configuration.brushSize;
99
82
  const eventData = evt.detail;
100
83
  const { element } = eventData;
101
- const { currentPoints } = eventData;
102
- const currentCanvasPoints = currentPoints.canvas;
103
84
  const enabledElement = getEnabledElement(element);
104
- const { renderingEngine, viewport } = enabledElement;
105
- const { canvasToWorld } = viewport;
106
- const { segmentation, segmentsLocked } = this._editData;
85
+ const { renderingEngine } = enabledElement;
86
+ const { imageVolume, segmentation, segmentsLocked } = this._editData;
87
+ this.updateCursor(evt);
107
88
  const { segmentIndex, segmentationId, segmentationRepresentationUID, brushCursor, viewportIdsToRender, } = this._hoverData;
108
- const { viewPlaneNormal, viewUp } = brushCursor.metadata;
109
89
  const { data } = brushCursor;
110
- const centerCanvas = currentCanvasPoints;
111
- const radius = brushSize;
112
- const bottomCanvas = [
113
- centerCanvas[0],
114
- centerCanvas[1] + radius,
115
- ];
116
- const topCanvas = [centerCanvas[0], centerCanvas[1] - radius];
117
- const leftCanvas = [
118
- centerCanvas[0] - radius,
119
- centerCanvas[1],
120
- ];
121
- const rightCanvas = [
122
- centerCanvas[0] + radius,
123
- centerCanvas[1],
124
- ];
125
- data.handles.points = [
126
- canvasToWorld(bottomCanvas),
127
- canvasToWorld(topCanvas),
128
- canvasToWorld(leftCanvas),
129
- canvasToWorld(rightCanvas),
130
- ];
131
- data.invalidated = true;
90
+ const { viewPlaneNormal, viewUp } = brushCursor.metadata;
132
91
  triggerAnnotationRenderForViewportUIDs(renderingEngine, viewportIdsToRender);
133
92
  const operationData = {
134
93
  points: data.handles.points,
135
94
  volume: segmentation,
95
+ imageVolume,
136
96
  segmentIndex,
137
97
  segmentsLocked,
138
98
  viewPlaneNormal,
@@ -140,13 +100,14 @@ class BrushTool extends BaseTool {
140
100
  segmentationId,
141
101
  segmentationRepresentationUID,
142
102
  viewUp,
103
+ strategySpecificConfiguration: this.configuration.strategySpecificConfiguration,
143
104
  };
144
105
  this.applyActiveStrategy(enabledElement, operationData);
145
106
  };
146
107
  this._mouseUpCallback = (evt) => {
147
108
  const eventData = evt.detail;
148
109
  const { element } = eventData;
149
- const { segmentation, segmentsLocked } = this._editData;
110
+ const { imageVolume, segmentation, segmentsLocked } = this._editData;
150
111
  const { segmentIndex, segmentationId, segmentationRepresentationUID, brushCursor, } = this._hoverData;
151
112
  const { data } = brushCursor;
152
113
  const { viewPlaneNormal, viewUp } = brushCursor.metadata;
@@ -155,7 +116,6 @@ class BrushTool extends BaseTool {
155
116
  const enabledElement = getEnabledElement(element);
156
117
  const { viewport } = enabledElement;
157
118
  this._editData = null;
158
- this._isDrawing = false;
159
119
  this.updateCursor(evt);
160
120
  if (viewport instanceof StackViewport) {
161
121
  throw new Error('Not implemented yet');
@@ -163,6 +123,7 @@ class BrushTool extends BaseTool {
163
123
  const operationData = {
164
124
  points: data.handles.points,
165
125
  volume: segmentation,
126
+ imageVolume,
166
127
  segmentIndex,
167
128
  segmentsLocked,
168
129
  viewPlaneNormal,
@@ -170,6 +131,7 @@ class BrushTool extends BaseTool {
170
131
  segmentationId,
171
132
  segmentationRepresentationUID,
172
133
  viewUp,
134
+ strategySpecificConfiguration: this.configuration.strategySpecificConfiguration,
173
135
  };
174
136
  this.applyActiveStrategy(enabledElement, operationData);
175
137
  };
@@ -184,15 +146,17 @@ class BrushTool extends BaseTool {
184
146
  element.removeEventListener(Events.MOUSE_CLICK, this._mouseUpCallback);
185
147
  };
186
148
  }
149
+ static { this.toolName = 'Brush'; }
150
+ disableCursor() {
151
+ this._hoverData = undefined;
152
+ }
187
153
  updateCursor(evt) {
188
- const brushSize = this.configuration.brushSize;
189
154
  const eventData = evt.detail;
190
155
  const { element } = eventData;
191
156
  const { currentPoints } = eventData;
192
- const canvasPos = currentPoints.canvas;
157
+ const centerCanvas = currentPoints.canvas;
193
158
  const enabledElement = getEnabledElement(element);
194
159
  const { renderingEngine, viewport } = enabledElement;
195
- const { canvasToWorld } = viewport;
196
160
  const camera = viewport.getCamera();
197
161
  const { viewPlaneNormal, viewUp } = camera;
198
162
  const toolGroupId = this.toolGroupId;
@@ -203,24 +167,8 @@ class BrushTool extends BaseTool {
203
167
  }
204
168
  const { segmentationRepresentationUID, segmentationId } = activeSegmentationRepresentation;
205
169
  const segmentIndex = segmentIndexController.getActiveSegmentIndex(segmentationId);
206
- const segmentsLocked = segmentLocking.getLockedSegments(segmentationId);
207
170
  const segmentColor = segmentationConfig.color.getColorForSegmentIndex(toolGroupId, segmentationRepresentationUID, segmentIndex);
208
171
  const viewportIdsToRender = [viewport.id];
209
- const centerCanvas = canvasPos;
210
- const radius = brushSize;
211
- const bottomCanvas = [
212
- centerCanvas[0],
213
- centerCanvas[1] + radius,
214
- ];
215
- const topCanvas = [centerCanvas[0], centerCanvas[1] - radius];
216
- const leftCanvas = [
217
- centerCanvas[0] - radius,
218
- centerCanvas[1],
219
- ];
220
- const rightCanvas = [
221
- centerCanvas[0] + radius,
222
- centerCanvas[1],
223
- ];
224
172
  const brushCursor = {
225
173
  metadata: {
226
174
  viewPlaneNormal: [...viewPlaneNormal],
@@ -230,18 +178,7 @@ class BrushTool extends BaseTool {
230
178
  toolName: this.getToolName(),
231
179
  segmentColor,
232
180
  },
233
- data: {
234
- invalidated: true,
235
- handles: {
236
- points: [
237
- canvasToWorld(bottomCanvas),
238
- canvasToWorld(topCanvas),
239
- canvasToWorld(leftCanvas),
240
- canvasToWorld(rightCanvas),
241
- ],
242
- },
243
- cachedStats: {},
244
- },
181
+ data: {},
245
182
  };
246
183
  this._hoverData = {
247
184
  brushCursor,
@@ -252,8 +189,47 @@ class BrushTool extends BaseTool {
252
189
  segmentColor,
253
190
  viewportIdsToRender,
254
191
  };
192
+ this._calculateCursor(element, centerCanvas);
255
193
  triggerAnnotationRenderForViewportUIDs(renderingEngine, viewportIdsToRender);
256
194
  }
195
+ _calculateCursor(element, centerCanvas) {
196
+ const enabledElement = getEnabledElement(element);
197
+ const { viewport } = enabledElement;
198
+ const { canvasToWorld } = viewport;
199
+ const { brushSize } = this.configuration;
200
+ const radius = brushSize;
201
+ const bottomCanvas = [
202
+ centerCanvas[0],
203
+ centerCanvas[1] + radius,
204
+ ];
205
+ const topCanvas = [centerCanvas[0], centerCanvas[1] - radius];
206
+ const leftCanvas = [
207
+ centerCanvas[0] - radius,
208
+ centerCanvas[1],
209
+ ];
210
+ const rightCanvas = [
211
+ centerCanvas[0] + radius,
212
+ centerCanvas[1],
213
+ ];
214
+ const { brushCursor } = this._hoverData;
215
+ const { data } = brushCursor;
216
+ if (data.handles === undefined) {
217
+ data.handles = {};
218
+ }
219
+ data.handles.points = [
220
+ canvasToWorld(bottomCanvas),
221
+ canvasToWorld(topCanvas),
222
+ canvasToWorld(leftCanvas),
223
+ canvasToWorld(rightCanvas),
224
+ ];
225
+ data.invalidated = false;
226
+ }
227
+ invalidateBrushCursor() {
228
+ if (this._hoverData !== undefined) {
229
+ const { data } = this._hoverData.brushCursor;
230
+ data.invalidated = true;
231
+ }
232
+ }
257
233
  renderAnnotation(enabledElement, svgDrawingHelper) {
258
234
  if (!this._hoverData) {
259
235
  return;
@@ -264,6 +240,11 @@ class BrushTool extends BaseTool {
264
240
  return;
265
241
  }
266
242
  const brushCursor = this._hoverData.brushCursor;
243
+ if (brushCursor.data.invalidated === true) {
244
+ const { centerCanvas } = this._hoverData;
245
+ const { element } = viewport;
246
+ this._calculateCursor(element, centerCanvas);
247
+ }
267
248
  const toolMetadata = brushCursor.metadata;
268
249
  const annotationUID = toolMetadata.brushCursorUID;
269
250
  const data = brushCursor.data;
@@ -287,6 +268,4 @@ class BrushTool extends BaseTool {
287
268
  });
288
269
  }
289
270
  }
290
- BrushTool.toolName = 'Brush';
291
- export default BrushTool;
292
271
  //# sourceMappingURL=BrushTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAS9E,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,sCAAsC,MAAM,uDAAuD,CAAC;AAC3G,OAAO,EACL,MAAM,IAAI,kBAAkB,EAC5B,cAAc,EACd,YAAY,IAAI,sBAAsB,EACtC,KAAK,IAAI,iBAAiB,EAC1B,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAiB7C,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,kBAAkB,EAAE,gBAAgB;gBACpC,uBAAuB,EAAE,qBAAqB;gBAC9C,mBAAmB,EAAE,iBAAiB;gBACtC,kBAAkB,EAAE,gBAAgB;gBACpC,mBAAmB,EAAE,iBAAiB;aACvC;YACD,6BAA6B,EAAE;gBAC7B,uBAAuB,EAAE;oBACvB,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;iBACvB;aACF;YACD,eAAe,EAAE,oBAAoB;YACrC,cAAc,EAAE,oBAAoB;YACpC,SAAS,EAAE,EAAE;SACd;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAGrC,qBAAgB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAMF,yBAAoB,GAAG,CACrB,GAA0C,EACjC,EAAE;YACX,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAErD,IAAI,QAAQ,YAAY,aAAa,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;aACxC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAErC,MAAM,gCAAgC,GACpC,kBAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,gCAAgC,EAAE;gBACrC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;aACH;YAED,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,gCAAgC,CAAC;YAClE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAExE,MAAM,EAAE,kBAAkB,EAAE,GAC1B,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAGpD,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YAIpC,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAEzD,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE1C,IAAI,CAAC,SAAS,GAAG;gBACf,YAAY;gBACZ,WAAW;gBACX,cAAc;aACf,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;YAErB,sCAAsC,CACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,GAAkC,EAAQ,EAAE;YAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACxB;QACH,CAAC,CAAC;QA0EM,uBAAkB,GAAG,CAAC,GAAkC,EAAQ,EAAE;YACxE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAC9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAErE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEvB,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,WAAW,EACX,mBAAmB,GACpB,GAAG,IAAI,CAAC,UAAU,CAAC;YAEpB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;YAC7B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEzD,sCAAsC,CACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;YAEF,MAAM,aAAa,GAAG;gBACpB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,MAAM,EAAE,YAAY;gBACpB,WAAW;gBACX,YAAY;gBACZ,cAAc;gBACd,eAAe;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,cAAc;gBACd,6BAA6B;gBAC7B,MAAM;gBACN,6BAA6B,EAC3B,IAAI,CAAC,aAAa,CAAC,6BAA6B;aACnD,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QA0CM,qBAAgB,GAAG,CAAC,GAAgC,EAAQ,EAAE;YACpE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAE9B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACrE,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,WAAW,GACZ,GAAG,IAAI,CAAC,UAAU,CAAC;YAEpB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;YAC7B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEzD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YAEpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEvB,IAAI,QAAQ,YAAY,aAAa,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;aACxC;YAED,MAAM,aAAa,GAAG;gBACpB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,MAAM,EAAE,YAAY;gBACpB,WAAW;gBACX,YAAY;gBACZ,cAAc;gBACd,eAAe;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,cAAc;gBACd,6BAA6B;gBAC7B,MAAM;gBACN,6BAA6B,EAC3B,IAAI,CAAC,aAAa,CAAC,6BAA6B;aACnD,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QAKM,kBAAa,GAAG,CAAC,OAAuB,EAAQ,EAAE;YACxD,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,gBAAiC,CACvC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,kBAAmC,CACzC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,gBAAiC,CACvC,CAAC;QACJ,CAAC,CAAC;QAKM,oBAAe,GAAG,CAAC,OAAuB,EAAQ,EAAE;YAC1D,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,gBAAiC,CACvC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,kBAAmC,CACzC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,gBAAiC,CACvC,CAAC;QACJ,CAAC,CAAC;IAnUF,CAAC;aAxCM,aAAQ,GAAG,OAAO,CAAC;IAsDlB,aAAa;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAsEO,YAAY,CAClB,GAG+B;QAE/B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QACpC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;QAC1C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAErD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,MAAM,gCAAgC,GACpC,kBAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,gCAAgC,EAAE;YACrC,OAAO,CAAC,IAAI,CACV,yEAAyE,CAC1E,CAAC;YACF,OAAO;SACR;QAED,MAAM,EAAE,6BAA6B,EAAE,cAAc,EAAE,GACrD,gCAAgC,CAAC;QACnC,MAAM,YAAY,GAChB,sBAAsB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,uBAAuB,CACnE,WAAW,EACX,6BAA6B,EAC7B,YAAY,CACb,CAAC;QAEF,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAI1C,MAAM,WAAW,GAAG;YAClB,QAAQ,EAAE;gBACR,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;gBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;gBACjC,mBAAmB,EAAE,QAAQ,CAAC,sBAAsB,EAAE;gBACtD,iBAAiB,EAAE,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,YAAY;aACb;YACD,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG;YAChB,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,6BAA6B;YAC7B,YAAY;YACZ,mBAAmB;SACpB,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE7C,sCAAsC,CACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;IACJ,CAAC;IA8CO,gBAAgB,CAAC,OAAO,EAAE,YAAY;QAC5C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAGzC,MAAM,MAAM,GAAG,SAAS,CAAC;QAEzB,MAAM,YAAY,GAAiB;YACjC,YAAY,CAAC,CAAC,CAAC;YACf,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;SACzB,CAAC;QACF,MAAM,SAAS,GAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAiB;YAC/B,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;YACxB,YAAY,CAAC,CAAC,CAAC;SAChB,CAAC;QACF,MAAM,WAAW,GAAiB;YAChC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;YACxB,YAAY,CAAC,CAAC,CAAC;SAChB,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,aAAa,CAAC,YAAY,CAAC;YAC3B,aAAa,CAAC,SAAS,CAAC;YACxB,aAAa,CAAC,UAAU,CAAC;YACzB,aAAa,CAAC,WAAW,CAAC;SAC3B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAqFM,qBAAqB;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAE7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,gBAAgB,CACd,cAAqC,EACrC,gBAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAEhE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC9C,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAEhD,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YACzC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YACzC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAI7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAC9C;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC;QAElD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG;YACb,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACrC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1E,MAAM,KAAK,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAG9D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO;SACR;QAED,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,aAAa,CACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,MAAsB,EACtB,MAAM,EACN;YACE,KAAK;SACN,CACF,CAAC;IACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseTool } from '../base';
2
+ import { PublicToolProps, ToolProps, EventTypes } from '../../types';
3
+ export default class PaintFillTool extends BaseTool {
4
+ static toolName: string;
5
+ constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
6
+ preMouseDownCallback: (evt: EventTypes.MouseDownActivateEventType) => boolean;
7
+ private getFramesModified;
8
+ private generateHelpers;
9
+ private getFixedDimension;
10
+ private generateFloodFillGetter;
11
+ private generateGetScalarDataPositionFromPlane;
12
+ }
@@ -0,0 +1,210 @@
1
+ import { cache, getEnabledElement, utilities as csUtils, } from '@cornerstonejs/core';
2
+ import { BaseTool } from '../base';
3
+ import { triggerSegmentationDataModified } from '../../stateManagement/segmentation/triggerSegmentationEvents';
4
+ import { segmentLocking, activeSegmentation, segmentIndex as segmentIndexController, } from '../../stateManagement/segmentation';
5
+ import { segmentation as segmentationUtils } from '../../utilities';
6
+ import { getSegmentation } from '../../stateManagement/segmentation/segmentationState';
7
+ const { transformWorldToIndex, isEqual } = csUtils;
8
+ const { floodFill } = segmentationUtils;
9
+ export default class PaintFillTool extends BaseTool {
10
+ constructor(toolProps = {}, defaultToolProps = {
11
+ supportedInteractionTypes: ['Mouse', 'Touch'],
12
+ }) {
13
+ super(toolProps, defaultToolProps);
14
+ this.preMouseDownCallback = (evt) => {
15
+ const eventDetail = evt.detail;
16
+ const { currentPoints, element } = eventDetail;
17
+ const worldPos = currentPoints.world;
18
+ const enabledElement = getEnabledElement(element);
19
+ const { viewport } = enabledElement;
20
+ const camera = viewport.getCamera();
21
+ const { viewPlaneNormal } = camera;
22
+ const toolGroupId = this.toolGroupId;
23
+ const activeSegmentationRepresentation = activeSegmentation.getActiveSegmentationRepresentation(toolGroupId);
24
+ if (!activeSegmentationRepresentation) {
25
+ throw new Error('No active segmentation detected, create one before using scissors tool');
26
+ }
27
+ const { segmentationId, type } = activeSegmentationRepresentation;
28
+ const segmentIndex = segmentIndexController.getActiveSegmentIndex(segmentationId);
29
+ const segmentsLocked = segmentLocking.getLockedSegments(segmentationId);
30
+ const { representationData } = getSegmentation(segmentationId);
31
+ const { volumeId } = representationData[type];
32
+ const segmentation = cache.getVolume(volumeId);
33
+ const { scalarData, dimensions, direction } = segmentation;
34
+ const index = transformWorldToIndex(segmentation.imageData, worldPos);
35
+ const fixedDimension = this.getFixedDimension(viewPlaneNormal, direction);
36
+ if (fixedDimension === undefined) {
37
+ console.warn('Oblique paint fill not yet supported');
38
+ return;
39
+ }
40
+ const { floodFillGetter, getLabelValue, getScalarDataPositionFromPlane, inPlaneSeedPoint, fixedDimensionValue, } = this.generateHelpers(scalarData, dimensions, index, fixedDimension);
41
+ if (index[0] < 0 ||
42
+ index[0] >= dimensions[0] ||
43
+ index[1] < 0 ||
44
+ index[1] >= dimensions[1] ||
45
+ index[2] < 0 ||
46
+ index[2] >= dimensions[2]) {
47
+ return;
48
+ }
49
+ const clickedLabelValue = getLabelValue(index[0], index[1], index[2]);
50
+ if (segmentsLocked.includes(clickedLabelValue)) {
51
+ return;
52
+ }
53
+ const floodFillResult = floodFill(floodFillGetter, inPlaneSeedPoint);
54
+ const { flooded } = floodFillResult;
55
+ flooded.forEach((index) => {
56
+ const scalarDataPosition = getScalarDataPositionFromPlane(index[0], index[1]);
57
+ scalarData[scalarDataPosition] = segmentIndex;
58
+ });
59
+ const framesModified = this.getFramesModified(fixedDimension, fixedDimensionValue, floodFillResult);
60
+ triggerSegmentationDataModified(segmentationId, framesModified);
61
+ return true;
62
+ };
63
+ this.getFramesModified = (fixedDimension, fixedDimensionValue, floodFillResult) => {
64
+ const { boundaries } = floodFillResult;
65
+ if (fixedDimension === 2) {
66
+ return [fixedDimensionValue];
67
+ }
68
+ let minJ = Infinity;
69
+ let maxJ = -Infinity;
70
+ for (let b = 0; b < boundaries.length; b++) {
71
+ const j = boundaries[b][1];
72
+ if (j < minJ)
73
+ minJ = j;
74
+ if (j > maxJ)
75
+ maxJ = j;
76
+ }
77
+ const framesModified = [];
78
+ for (let frame = minJ; frame <= maxJ; frame++) {
79
+ framesModified.push(frame);
80
+ }
81
+ return framesModified;
82
+ };
83
+ this.generateHelpers = (scalarData, dimensions, seedIndex3D, fixedDimension = 2) => {
84
+ let fixedDimensionValue;
85
+ let inPlaneSeedPoint;
86
+ switch (fixedDimension) {
87
+ case 0:
88
+ fixedDimensionValue = seedIndex3D[0];
89
+ inPlaneSeedPoint = [seedIndex3D[1], seedIndex3D[2]];
90
+ break;
91
+ case 1:
92
+ fixedDimensionValue = seedIndex3D[1];
93
+ inPlaneSeedPoint = [seedIndex3D[0], seedIndex3D[2]];
94
+ break;
95
+ case 2:
96
+ fixedDimensionValue = seedIndex3D[2];
97
+ inPlaneSeedPoint = [seedIndex3D[0], seedIndex3D[1]];
98
+ break;
99
+ default:
100
+ throw new Error(`Invalid fixedDimension: ${fixedDimension}`);
101
+ }
102
+ const getScalarDataPosition = (x, y, z) => {
103
+ return z * dimensions[1] * dimensions[0] + y * dimensions[0] + x;
104
+ };
105
+ const getLabelValue = (x, y, z) => {
106
+ return scalarData[getScalarDataPosition(x, y, z)];
107
+ };
108
+ const floodFillGetter = this.generateFloodFillGetter(dimensions, fixedDimension, fixedDimensionValue, getLabelValue);
109
+ const getScalarDataPositionFromPlane = this.generateGetScalarDataPositionFromPlane(getScalarDataPosition, fixedDimension, fixedDimensionValue);
110
+ return {
111
+ getScalarDataPositionFromPlane,
112
+ getLabelValue,
113
+ floodFillGetter,
114
+ inPlaneSeedPoint,
115
+ fixedDimensionValue,
116
+ };
117
+ };
118
+ this.generateFloodFillGetter = (dimensions, fixedDimension, fixedDimensionValue, getLabelValue) => {
119
+ let floodFillGetter;
120
+ switch (fixedDimension) {
121
+ case 0:
122
+ floodFillGetter = (y, z) => {
123
+ if (y >= dimensions[1] || y < 0 || z >= dimensions[2] || z < 0) {
124
+ return;
125
+ }
126
+ return getLabelValue(fixedDimensionValue, y, z);
127
+ };
128
+ break;
129
+ case 1:
130
+ floodFillGetter = (x, z) => {
131
+ if (x >= dimensions[0] || x < 0 || z >= dimensions[2] || z < 0) {
132
+ return;
133
+ }
134
+ return getLabelValue(x, fixedDimensionValue, z);
135
+ };
136
+ break;
137
+ case 2:
138
+ floodFillGetter = (x, y) => {
139
+ if (x >= dimensions[0] || x < 0 || y >= dimensions[1] || y < 0) {
140
+ return;
141
+ }
142
+ return getLabelValue(x, y, fixedDimensionValue);
143
+ };
144
+ break;
145
+ default:
146
+ throw new Error(`Invalid fixedDimension: ${fixedDimension}`);
147
+ }
148
+ return floodFillGetter;
149
+ };
150
+ this.generateGetScalarDataPositionFromPlane = (getScalarDataPosition, fixedDimension, fixedDimensionValue) => {
151
+ let getScalarDataPositionFromPlane;
152
+ switch (fixedDimension) {
153
+ case 0:
154
+ getScalarDataPositionFromPlane = (y, z) => {
155
+ return getScalarDataPosition(fixedDimensionValue, y, z);
156
+ };
157
+ break;
158
+ case 1:
159
+ getScalarDataPositionFromPlane = (x, z) => {
160
+ return getScalarDataPosition(x, fixedDimensionValue, z);
161
+ };
162
+ break;
163
+ case 2:
164
+ getScalarDataPositionFromPlane = (x, y) => {
165
+ return getScalarDataPosition(x, y, fixedDimensionValue);
166
+ };
167
+ break;
168
+ default:
169
+ throw new Error(`Invalid fixedDimension: ${fixedDimension}`);
170
+ }
171
+ return getScalarDataPositionFromPlane;
172
+ };
173
+ }
174
+ static { this.toolName = 'PaintFill'; }
175
+ getFixedDimension(viewPlaneNormal, direction) {
176
+ const xDirection = direction.slice(0, 3);
177
+ const yDirection = direction.slice(3, 6);
178
+ const zDirection = direction.slice(6, 9);
179
+ const absoluteOfViewPlaneNormal = [
180
+ Math.abs(viewPlaneNormal[0]),
181
+ Math.abs(viewPlaneNormal[1]),
182
+ Math.abs(viewPlaneNormal[2]),
183
+ ];
184
+ const absoluteOfXDirection = [
185
+ Math.abs(xDirection[0]),
186
+ Math.abs(xDirection[1]),
187
+ Math.abs(xDirection[2]),
188
+ ];
189
+ if (isEqual(absoluteOfViewPlaneNormal, absoluteOfXDirection)) {
190
+ return 0;
191
+ }
192
+ const absoluteOfYDirection = [
193
+ Math.abs(yDirection[0]),
194
+ Math.abs(yDirection[1]),
195
+ Math.abs(yDirection[2]),
196
+ ];
197
+ if (isEqual(absoluteOfViewPlaneNormal, absoluteOfYDirection)) {
198
+ return 1;
199
+ }
200
+ const absoluteOfZDirection = [
201
+ Math.abs(zDirection[0]),
202
+ Math.abs(zDirection[1]),
203
+ Math.abs(zDirection[2]),
204
+ ];
205
+ if (isEqual(absoluteOfViewPlaneNormal, absoluteOfZDirection)) {
206
+ return 2;
207
+ }
208
+ }
209
+ }
210
+ //# sourceMappingURL=PaintFillTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaintFillTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/PaintFillTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ declare type OperationData = {
3
+ segmentationId: string;
4
+ imageVolume: Types.IImageVolume;
5
+ points: any;
6
+ volume: Types.IImageVolume;
7
+ segmentIndex: number;
8
+ segmentsLocked: number[];
9
+ viewPlaneNormal: number[];
10
+ viewUp: number[];
11
+ strategySpecificConfiguration: any;
12
+ constraintFn: () => boolean;
13
+ };
14
+ export declare function eraseInsideCircle(enabledElement: Types.IEnabledElement, operationData: OperationData): void;
15
+ export {};
@@ -0,0 +1,9 @@
1
+ import { fillInsideCircle } from './fillCircle';
2
+ export function eraseInsideCircle(enabledElement, operationData) {
3
+ const eraseOperationData = {
4
+ ...operationData,
5
+ segmentIndex: 0,
6
+ };
7
+ fillInsideCircle(enabledElement, eraseOperationData);
8
+ }
9
+ //# sourceMappingURL=eraseCircle.js.map