@cornerstonejs/tools 0.20.1 → 0.20.4

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 (39) hide show
  1. package/dist/cjs/tools/CrosshairsTool.js +22 -16
  2. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  3. package/dist/cjs/tools/WindowLevelTool.d.ts +6 -4
  4. package/dist/cjs/tools/WindowLevelTool.js +53 -26
  5. package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
  6. package/dist/cjs/tools/annotation/BidirectionalTool.js +6 -4
  7. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  8. package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -3
  9. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  10. package/dist/cjs/tools/annotation/LengthTool.js +5 -3
  11. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  12. package/dist/cjs/tools/annotation/RectangleROITool.js +4 -3
  13. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  14. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +32 -16
  15. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  16. package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js +36 -33
  17. package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
  18. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +3 -0
  19. package/dist/esm/tools/CrosshairsTool.js +22 -16
  20. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  21. package/dist/esm/tools/WindowLevelTool.d.ts +6 -4
  22. package/dist/esm/tools/WindowLevelTool.js +53 -26
  23. package/dist/esm/tools/WindowLevelTool.js.map +1 -1
  24. package/dist/esm/tools/annotation/BidirectionalTool.js +6 -4
  25. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  26. package/dist/esm/tools/annotation/EllipticalROITool.js +5 -3
  27. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  28. package/dist/esm/tools/annotation/LengthTool.js +5 -3
  29. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  30. package/dist/esm/tools/annotation/RectangleROITool.js +4 -3
  31. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  32. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +32 -16
  33. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  34. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js +36 -33
  35. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
  36. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +3 -0
  37. package/dist/umd/index.js +1 -1
  38. package/dist/umd/index.js.map +1 -1
  39. package/package.json +6 -6
@@ -80,20 +80,6 @@ function mouseUpDrawCallback(evt) {
80
80
  const lastPoint = canvasPoints[canvasPoints.length - 1];
81
81
  const eventDetail = evt.detail;
82
82
  const { element } = eventDetail;
83
- const { subPixelResolution } = this.configuration;
84
- const minPoints = Math.max(subPixelResolution * 3, 3);
85
- if (canvasPoints.length < minPoints) {
86
- const { annotation, viewportIdsToRender } = this.commonData;
87
- const enabledElement = (0, core_1.getEnabledElement)(element);
88
- const { renderingEngine } = enabledElement;
89
- (0, annotationState_1.removeAnnotation)(annotation.annotationUID);
90
- this.isDrawing = false;
91
- this.drawData = undefined;
92
- this.commonData = undefined;
93
- (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
94
- this.deactivateDraw(element);
95
- return;
96
- }
97
83
  if (allowOpenContours &&
98
84
  !pointsAreWithinCloseContourProximity(firstPoint, lastPoint, this.configuration.closeContourProximity)) {
99
85
  this.completeDrawOpenContour(element);
@@ -105,6 +91,9 @@ function mouseUpDrawCallback(evt) {
105
91
  function completeDrawClosedContour(element) {
106
92
  this.removeCrossedLinesOnCompleteDraw();
107
93
  const { canvasPoints } = this.drawData;
94
+ if (this.haltDrawing(element, canvasPoints)) {
95
+ return false;
96
+ }
108
97
  const { annotation, viewportIdsToRender } = this.commonData;
109
98
  const enabledElement = (0, core_1.getEnabledElement)(element);
110
99
  const { viewport, renderingEngine } = enabledElement;
@@ -119,6 +108,7 @@ function completeDrawClosedContour(element) {
119
108
  this.commonData = undefined;
120
109
  (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
121
110
  this.deactivateDraw(element);
111
+ return true;
122
112
  }
123
113
  function removeCrossedLinesOnCompleteDraw() {
124
114
  const { canvasPoints } = this.drawData;
@@ -133,6 +123,9 @@ function removeCrossedLinesOnCompleteDraw() {
133
123
  }
134
124
  function completeDrawOpenContour(element) {
135
125
  const { canvasPoints } = this.drawData;
126
+ if (this.haltDrawing(element, canvasPoints)) {
127
+ return false;
128
+ }
136
129
  const { annotation, viewportIdsToRender } = this.commonData;
137
130
  const enabledElement = (0, core_1.getEnabledElement)(element);
138
131
  const { viewport, renderingEngine } = enabledElement;
@@ -153,6 +146,7 @@ function completeDrawOpenContour(element) {
153
146
  this.commonData = undefined;
154
147
  (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
155
148
  this.deactivateDraw(element);
149
+ return true;
156
150
  }
157
151
  function findCrossingIndexDuringCreate(evt) {
158
152
  const eventDetail = evt.detail;
@@ -178,8 +172,9 @@ function applyCreateOnCross(evt, crossingIndex) {
178
172
  for (let i = 0; i < crossingIndex; i++) {
179
173
  canvasPoints.shift();
180
174
  }
181
- this.completeDrawClosedContour(element);
182
- this.activateClosedContourEdit(evt, annotation, viewportIdsToRender);
175
+ if (this.completeDrawClosedContour(element)) {
176
+ this.activateClosedContourEdit(evt, annotation, viewportIdsToRender);
177
+ }
183
178
  }
184
179
  function cancelDrawing(element) {
185
180
  const { allowOpenContours } = this.configuration;
@@ -194,6 +189,26 @@ function cancelDrawing(element) {
194
189
  this.completeDrawClosedContour(element);
195
190
  }
196
191
  }
192
+ function shouldHaltDrawing(canvasPoints, subPixelResolution) {
193
+ const minPoints = Math.max(subPixelResolution * 3, 3);
194
+ return canvasPoints.length < minPoints;
195
+ }
196
+ function haltDrawing(element, canvasPoints) {
197
+ const { subPixelResolution } = this.configuration;
198
+ if (shouldHaltDrawing(canvasPoints, subPixelResolution)) {
199
+ const { annotation, viewportIdsToRender } = this.commonData;
200
+ const enabledElement = (0, core_1.getEnabledElement)(element);
201
+ const { renderingEngine } = enabledElement;
202
+ (0, annotationState_1.removeAnnotation)(annotation.annotationUID);
203
+ this.isDrawing = false;
204
+ this.drawData = undefined;
205
+ this.commonData = undefined;
206
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
207
+ this.deactivateDraw(element);
208
+ return true;
209
+ }
210
+ return false;
211
+ }
197
212
  function registerDrawLoop(toolInstance) {
198
213
  toolInstance.activateDraw = activateDraw.bind(toolInstance);
199
214
  toolInstance.deactivateDraw = deactivateDraw.bind(toolInstance);
@@ -209,6 +224,7 @@ function registerDrawLoop(toolInstance) {
209
224
  toolInstance.completeDrawClosedContour =
210
225
  completeDrawClosedContour.bind(toolInstance);
211
226
  toolInstance.cancelDrawing = cancelDrawing.bind(toolInstance);
227
+ toolInstance.haltDrawing = haltDrawing.bind(toolInstance);
212
228
  }
213
229
  exports.default = registerDrawLoop;
214
230
  //# sourceMappingURL=drawLoop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawLoop.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/drawLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawLoop.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/drawLoop.ts"],"names":[],"mappings":"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"}
@@ -14,40 +14,43 @@ function checkForFirstCrossing(evt, isClosedContour) {
14
14
  this.editData.startCrossingIndex = crossedLineSegment[0];
15
15
  this.removePointsUpUntilFirstCrossing(isClosedContour);
16
16
  }
17
- else if (editCanvasPoints.length >
18
- this.configuration.checkCanvasEditFallbackProximity) {
19
- const firstEditCanvasPoint = editCanvasPoints[0];
20
- const distanceIndexPairs = [];
21
- for (let i = 0; i < prevCanvasPoints.length; i++) {
22
- const prevCanvasPoint = prevCanvasPoints[i];
23
- const distance = gl_matrix_1.vec2.distance(prevCanvasPoint, firstEditCanvasPoint);
24
- distanceIndexPairs.push({ distance, index: i });
17
+ else if (prevCanvasPoints.length >= 2) {
18
+ if (editCanvasPoints.length >
19
+ this.configuration.checkCanvasEditFallbackProximity) {
20
+ const firstEditCanvasPoint = editCanvasPoints[0];
21
+ const distanceIndexPairs = [];
22
+ for (let i = 0; i < prevCanvasPoints.length; i++) {
23
+ const prevCanvasPoint = prevCanvasPoints[i];
24
+ const distance = gl_matrix_1.vec2.distance(prevCanvasPoint, firstEditCanvasPoint);
25
+ distanceIndexPairs.push({ distance, index: i });
26
+ }
27
+ distanceIndexPairs.sort((a, b) => a.distance - b.distance);
28
+ const twoClosestDistanceIndexPairs = [
29
+ distanceIndexPairs[0],
30
+ distanceIndexPairs[1],
31
+ ];
32
+ const lowestIndex = Math.min(twoClosestDistanceIndexPairs[0].index, twoClosestDistanceIndexPairs[1].index);
33
+ this.editData.startCrossingIndex = lowestIndex;
25
34
  }
26
- distanceIndexPairs.sort((a, b) => a.distance - b.distance);
27
- const twoClosestDistanceIndexPairs = [
28
- distanceIndexPairs[0],
29
- distanceIndexPairs[1],
30
- ];
31
- const lowestIndex = Math.min(twoClosestDistanceIndexPairs[0].index, twoClosestDistanceIndexPairs[1].index);
32
- this.editData.startCrossingIndex = lowestIndex;
33
- }
34
- else if (editCanvasPoints.length >= 2) {
35
- const dir = gl_matrix_1.vec2.create();
36
- gl_matrix_1.vec2.subtract(dir, editCanvasPoints[1], editCanvasPoints[0]);
37
- gl_matrix_1.vec2.normalize(dir, dir);
38
- const proximity = 6;
39
- const extendedPoint = [
40
- editCanvasPoints[0][0] - dir[0] * proximity,
41
- editCanvasPoints[0][1] - dir[1] * proximity,
42
- ];
43
- const crossedLineSegmentFromExtendedPoint = getFirstIntersectionWithPolyline(prevCanvasPoints, extendedPoint, editCanvasPoints[0], isClosedContour);
44
- if (crossedLineSegmentFromExtendedPoint) {
45
- const pointsToPrepend = [extendedPoint];
46
- addCanvasPointsToArray(element, pointsToPrepend, editCanvasPoints[0], this.commonData);
47
- editCanvasPoints.unshift(...pointsToPrepend);
48
- this.removePointsUpUntilFirstCrossing(isClosedContour);
49
- this.editData.editIndex = editCanvasPoints.length - 1;
50
- this.editData.startCrossingIndex = crossedLineSegmentFromExtendedPoint[0];
35
+ else {
36
+ const dir = gl_matrix_1.vec2.create();
37
+ gl_matrix_1.vec2.subtract(dir, editCanvasPoints[1], editCanvasPoints[0]);
38
+ gl_matrix_1.vec2.normalize(dir, dir);
39
+ const proximity = 6;
40
+ const extendedPoint = [
41
+ editCanvasPoints[0][0] - dir[0] * proximity,
42
+ editCanvasPoints[0][1] - dir[1] * proximity,
43
+ ];
44
+ const crossedLineSegmentFromExtendedPoint = getFirstIntersectionWithPolyline(prevCanvasPoints, extendedPoint, editCanvasPoints[0], isClosedContour);
45
+ if (crossedLineSegmentFromExtendedPoint) {
46
+ const pointsToPrepend = [extendedPoint];
47
+ addCanvasPointsToArray(element, pointsToPrepend, editCanvasPoints[0], this.commonData);
48
+ editCanvasPoints.unshift(...pointsToPrepend);
49
+ this.removePointsUpUntilFirstCrossing(isClosedContour);
50
+ this.editData.editIndex = editCanvasPoints.length - 1;
51
+ this.editData.startCrossingIndex =
52
+ crossedLineSegmentFromExtendedPoint[0];
53
+ }
51
54
  }
52
55
  }
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editLoopCommon.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/editLoopCommon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editLoopCommon.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/editLoopCommon.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ interface ROICachedStats {
4
4
  [targetId: string]: {
5
5
  Modality: string;
6
6
  area: number;
7
+ areaUnit: string;
7
8
  max: number;
8
9
  mean: number;
9
10
  stdDev: number;
@@ -67,6 +68,7 @@ export interface LengthAnnotation extends Annotation {
67
68
  cachedStats: {
68
69
  [targetId: string]: {
69
70
  length: number;
71
+ unit: string;
70
72
  };
71
73
  };
72
74
  };
@@ -112,6 +114,7 @@ export interface BidirectionalAnnotation extends Annotation {
112
114
  [targetId: string]: {
113
115
  length: number;
114
116
  width: number;
117
+ unit: string;
115
118
  };
116
119
  };
117
120
  };
@@ -85,8 +85,8 @@ export default class CrosshairsTool extends AnnotationTool {
85
85
  return {
86
86
  normal: viewPlaneNormal,
87
87
  point: viewport.canvasToWorld([
88
- viewport.sWidth / 2,
89
- viewport.sHeight / 2,
88
+ viewport.canvas.clientWidth / 2,
89
+ viewport.canvas.clientHeight / 2,
90
90
  ]),
91
91
  };
92
92
  };
@@ -282,8 +282,8 @@ export default class CrosshairsTool extends AnnotationTool {
282
282
  return renderStatus;
283
283
  }
284
284
  const annotationUID = viewportAnnotation.annotationUID;
285
- const { sWidth, sHeight } = viewport;
286
- const canvasDiagonalLength = Math.sqrt(sWidth * sWidth + sHeight * sHeight);
285
+ const { clientWidth, clientHeight } = viewport.canvas;
286
+ const canvasDiagonalLength = Math.sqrt(clientWidth * clientWidth + clientHeight * clientHeight);
287
287
  const data = viewportAnnotation.data;
288
288
  const crosshairCenterCanvas = viewport.worldToCanvas(this.toolCenter);
289
289
  const otherViewportAnnotations = this._filterAnnotationsByUniqueViewportOrientations(enabledElement, annotations);
@@ -296,9 +296,12 @@ export default class CrosshairsTool extends AnnotationTool {
296
296
  const otherViewportControllable = this._getReferenceLineControllable(otherViewport.id);
297
297
  const otherViewportDraggableRotatable = this._getReferenceLineDraggableRotatable(otherViewport.id);
298
298
  const otherViewportSlabThicknessControlsOn = this._getReferenceLineSlabThicknessControlsOn(otherViewport.id);
299
- const { sWidth, sHeight } = otherViewport;
300
- const otherCanvasDiagonalLength = Math.sqrt(sWidth * sWidth + sHeight * sHeight);
301
- const otherCanvasCenter = [sWidth * 0.5, sHeight * 0.5];
299
+ const { clientWidth, clientHeight } = otherViewport.canvas;
300
+ const otherCanvasDiagonalLength = Math.sqrt(clientWidth * clientWidth + clientHeight * clientHeight);
301
+ const otherCanvasCenter = [
302
+ clientWidth * 0.5,
303
+ clientHeight * 0.5,
304
+ ];
302
305
  const otherViewportCenterWorld = otherViewport.canvasToWorld(otherCanvasCenter);
303
306
  const direction = [0, 0, 0];
304
307
  vtkMath.cross(camera.viewPlaneNormal, otherCamera.viewPlaneNormal, direction);
@@ -308,7 +311,7 @@ export default class CrosshairsTool extends AnnotationTool {
308
311
  vtkMath.add(otherViewportCenterWorld, direction, pointWorld0);
309
312
  const pointWorld1 = [0, 0, 0];
310
313
  vtkMath.subtract(otherViewportCenterWorld, direction, pointWorld1);
311
- const canvasBox = [0, 0, sWidth, sHeight];
314
+ const canvasBox = [0, 0, clientWidth, clientHeight];
312
315
  const pointCanvas0 = viewport.worldToCanvas(pointWorld0);
313
316
  const otherViewportCenterCanvas = viewport.worldToCanvas(otherViewportCenterWorld);
314
317
  const canvasUnitVectorFromCenter = vec2.create();
@@ -577,8 +580,8 @@ export default class CrosshairsTool extends AnnotationTool {
577
580
  data.handles.slabThicknessPoints = newStpoints;
578
581
  if (this.configuration.viewportIndicators) {
579
582
  const referenceColorCoordinates = [
580
- sWidth * 0.95,
581
- sHeight * 0.05,
583
+ clientWidth * 0.95,
584
+ clientHeight * 0.05,
582
585
  ];
583
586
  const circleRadius = canvasDiagonalLength * 0.01;
584
587
  const circleUID = '0';
@@ -1069,11 +1072,14 @@ export default class CrosshairsTool extends AnnotationTool {
1069
1072
  }
1070
1073
  _autoPanViewportIfNecessary(viewportId, renderingEngine) {
1071
1074
  const viewport = renderingEngine.getViewport(viewportId);
1072
- const { sWidth, sHeight } = viewport;
1075
+ const { clientWidth, clientHeight } = viewport.canvas;
1073
1076
  const topLefWorld = viewport.canvasToWorld([0, 0]);
1074
- const bottomRightWorld = viewport.canvasToWorld([sWidth, sHeight]);
1075
- const topRightWorld = viewport.canvasToWorld([sWidth, 0]);
1076
- const bottomLeftWorld = viewport.canvasToWorld([0, sHeight]);
1077
+ const bottomRightWorld = viewport.canvasToWorld([
1078
+ clientWidth,
1079
+ clientHeight,
1080
+ ]);
1081
+ const topRightWorld = viewport.canvasToWorld([clientWidth, 0]);
1082
+ const bottomLeftWorld = viewport.canvasToWorld([0, clientHeight]);
1077
1083
  const minX = Math.min(topLefWorld[0], bottomRightWorld[0], topRightWorld[0], bottomLeftWorld[0]);
1078
1084
  const maxX = Math.max(topLefWorld[0], bottomRightWorld[0], topRightWorld[0], bottomLeftWorld[0]);
1079
1085
  const minY = Math.min(topLefWorld[1], bottomRightWorld[1], topRightWorld[1], bottomLeftWorld[1]);
@@ -1220,8 +1226,8 @@ export default class CrosshairsTool extends AnnotationTool {
1220
1226
  _pointNearTool(element, annotation, canvasCoords, proximity) {
1221
1227
  const enabledElement = getEnabledElement(element);
1222
1228
  const { viewport } = enabledElement;
1223
- const { sWidth, sHeight } = viewport;
1224
- const canvasDiagonalLength = Math.sqrt(sWidth * sWidth + sHeight * sHeight);
1229
+ const { clientWidth, clientHeight } = viewport.canvas;
1230
+ const canvasDiagonalLength = Math.sqrt(clientWidth * clientWidth + clientHeight * clientHeight);
1225
1231
  const { data } = annotation;
1226
1232
  const { rotationPoints } = data.handles;
1227
1233
  const { slabThicknessPoints } = data.handles;