@cornerstonejs/tools 0.13.0 → 0.15.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 (79) hide show
  1. package/dist/cjs/enums/ToolBindings.js.map +1 -1
  2. package/dist/cjs/index.d.ts +2 -2
  3. package/dist/cjs/index.js +3 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/tools/MagnifyTool.d.ts +24 -0
  6. package/dist/cjs/tools/MagnifyTool.js +169 -0
  7. package/dist/cjs/tools/MagnifyTool.js.map +1 -0
  8. package/dist/cjs/tools/annotation/AngleTool.d.ts +37 -0
  9. package/dist/cjs/tools/annotation/AngleTool.js +442 -0
  10. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -0
  11. package/dist/cjs/tools/index.d.ts +3 -1
  12. package/dist/cjs/tools/index.js +5 -1
  13. package/dist/cjs/tools/index.js.map +1 -1
  14. package/dist/cjs/types/CINETypes.d.ts +19 -0
  15. package/dist/cjs/types/CINETypes.js +3 -0
  16. package/dist/cjs/types/CINETypes.js.map +1 -0
  17. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +24 -0
  18. package/dist/cjs/types/index.d.ts +2 -1
  19. package/dist/cjs/utilities/cine/events.d.ts +5 -0
  20. package/dist/cjs/utilities/cine/events.js +9 -0
  21. package/dist/cjs/utilities/cine/events.js.map +1 -0
  22. package/dist/cjs/utilities/cine/index.d.ts +4 -0
  23. package/dist/cjs/utilities/cine/index.js +15 -0
  24. package/dist/cjs/utilities/cine/index.js.map +1 -0
  25. package/dist/cjs/utilities/cine/playClip.d.ts +4 -0
  26. package/dist/cjs/utilities/cine/playClip.js +165 -0
  27. package/dist/cjs/utilities/cine/playClip.js.map +1 -0
  28. package/dist/cjs/utilities/cine/state.d.ts +4 -0
  29. package/dist/cjs/utilities/cine/state.js +18 -0
  30. package/dist/cjs/utilities/cine/state.js.map +1 -0
  31. package/dist/cjs/utilities/index.d.ts +2 -1
  32. package/dist/cjs/utilities/index.js +3 -1
  33. package/dist/cjs/utilities/index.js.map +1 -1
  34. package/dist/cjs/utilities/math/angle/angleBetweenLines.d.ts +4 -0
  35. package/dist/cjs/utilities/math/angle/angleBetweenLines.js +17 -0
  36. package/dist/cjs/utilities/math/angle/angleBetweenLines.js.map +1 -0
  37. package/dist/cjs/utilities/viewportFilters/filterViewportsWithToolEnabled.js +3 -0
  38. package/dist/cjs/utilities/viewportFilters/filterViewportsWithToolEnabled.js.map +1 -1
  39. package/dist/esm/enums/ToolBindings.js.map +1 -1
  40. package/dist/esm/index.d.ts +2 -2
  41. package/dist/esm/index.js +2 -2
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/tools/MagnifyTool.d.ts +24 -0
  44. package/dist/esm/tools/MagnifyTool.js +163 -0
  45. package/dist/esm/tools/MagnifyTool.js.map +1 -0
  46. package/dist/esm/tools/annotation/AngleTool.d.ts +37 -0
  47. package/dist/esm/tools/annotation/AngleTool.js +417 -0
  48. package/dist/esm/tools/annotation/AngleTool.js.map +1 -0
  49. package/dist/esm/tools/index.d.ts +3 -1
  50. package/dist/esm/tools/index.js +3 -1
  51. package/dist/esm/tools/index.js.map +1 -1
  52. package/dist/esm/types/CINETypes.d.ts +19 -0
  53. package/dist/esm/types/CINETypes.js +2 -0
  54. package/dist/esm/types/CINETypes.js.map +1 -0
  55. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +24 -0
  56. package/dist/esm/types/index.d.ts +2 -1
  57. package/dist/esm/utilities/cine/events.d.ts +5 -0
  58. package/dist/esm/utilities/cine/events.js +7 -0
  59. package/dist/esm/utilities/cine/events.js.map +1 -0
  60. package/dist/esm/utilities/cine/index.d.ts +4 -0
  61. package/dist/esm/utilities/cine/index.js +5 -0
  62. package/dist/esm/utilities/cine/index.js.map +1 -0
  63. package/dist/esm/utilities/cine/playClip.d.ts +4 -0
  64. package/dist/esm/utilities/cine/playClip.js +157 -0
  65. package/dist/esm/utilities/cine/playClip.js.map +1 -0
  66. package/dist/esm/utilities/cine/state.d.ts +4 -0
  67. package/dist/esm/utilities/cine/state.js +14 -0
  68. package/dist/esm/utilities/cine/state.js.map +1 -0
  69. package/dist/esm/utilities/index.d.ts +2 -1
  70. package/dist/esm/utilities/index.js +2 -1
  71. package/dist/esm/utilities/index.js.map +1 -1
  72. package/dist/esm/utilities/math/angle/angleBetweenLines.d.ts +4 -0
  73. package/dist/esm/utilities/math/angle/angleBetweenLines.js +14 -0
  74. package/dist/esm/utilities/math/angle/angleBetweenLines.js.map +1 -0
  75. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js +3 -0
  76. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js.map +1 -1
  77. package/dist/umd/index.js +1 -1
  78. package/dist/umd/index.js.map +1 -1
  79. package/package.json +6 -6
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const enums_1 = require("../../enums");
26
+ const core_1 = require("@cornerstonejs/core");
27
+ const base_1 = require("../base");
28
+ const throttle_1 = __importDefault(require("../../utilities/throttle"));
29
+ const annotationState_1 = require("../../stateManagement/annotation/annotationState");
30
+ const annotationLocking_1 = require("../../stateManagement/annotation/annotationLocking");
31
+ const lineSegment = __importStar(require("../../utilities/math/line"));
32
+ const angleBetweenLines_1 = __importDefault(require("../../utilities/math/angle/angleBetweenLines"));
33
+ const drawingSvg_1 = require("../../drawingSvg");
34
+ const store_1 = require("../../store");
35
+ const viewportFilters_1 = require("../../utilities/viewportFilters");
36
+ const drawing_1 = require("../../utilities/drawing");
37
+ const triggerAnnotationRenderForViewportIds_1 = __importDefault(require("../../utilities/triggerAnnotationRenderForViewportIds"));
38
+ const elementCursor_1 = require("../../cursors/elementCursor");
39
+ class AngleTool extends base_1.AnnotationTool {
40
+ constructor(toolProps = {}, defaultToolProps = {
41
+ supportedInteractionTypes: ['Mouse', 'Touch'],
42
+ configuration: {
43
+ shadow: true,
44
+ preventHandleOutsideImage: false,
45
+ },
46
+ }) {
47
+ super(toolProps, defaultToolProps);
48
+ this.addNewAnnotation = (evt) => {
49
+ if (this.angleStartedNotYetCompleted) {
50
+ return;
51
+ }
52
+ this.angleStartedNotYetCompleted = true;
53
+ const eventDetail = evt.detail;
54
+ const { currentPoints, element } = eventDetail;
55
+ const worldPos = currentPoints.world;
56
+ const enabledElement = (0, core_1.getEnabledElement)(element);
57
+ const { viewport, renderingEngine } = enabledElement;
58
+ (0, elementCursor_1.hideElementCursor)(element);
59
+ this.isDrawing = true;
60
+ const camera = viewport.getCamera();
61
+ const { viewPlaneNormal, viewUp } = camera;
62
+ const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
63
+ const annotation = {
64
+ highlighted: true,
65
+ invalidated: true,
66
+ metadata: {
67
+ toolName: this.getToolName(),
68
+ viewPlaneNormal: [...viewPlaneNormal],
69
+ viewUp: [...viewUp],
70
+ FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
71
+ referencedImageId,
72
+ },
73
+ data: {
74
+ handles: {
75
+ points: [[...worldPos], [...worldPos]],
76
+ activeHandleIndex: null,
77
+ textBox: {
78
+ hasMoved: false,
79
+ worldPosition: [0, 0, 0],
80
+ worldBoundingBox: {
81
+ topLeft: [0, 0, 0],
82
+ topRight: [0, 0, 0],
83
+ bottomLeft: [0, 0, 0],
84
+ bottomRight: [0, 0, 0],
85
+ },
86
+ },
87
+ },
88
+ label: '',
89
+ cachedStats: {},
90
+ },
91
+ };
92
+ (0, annotationState_1.addAnnotation)(element, annotation);
93
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
94
+ this.editData = {
95
+ annotation,
96
+ viewportIdsToRender,
97
+ handleIndex: 1,
98
+ movingTextBox: false,
99
+ newAnnotation: true,
100
+ hasMoved: false,
101
+ };
102
+ this._activateDraw(element);
103
+ evt.preventDefault();
104
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
105
+ return annotation;
106
+ };
107
+ this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
108
+ const enabledElement = (0, core_1.getEnabledElement)(element);
109
+ const { viewport } = enabledElement;
110
+ const { data } = annotation;
111
+ const [point1, point2, point3] = data.handles.points;
112
+ const canvasPoint1 = viewport.worldToCanvas(point1);
113
+ const canvasPoint2 = viewport.worldToCanvas(point2);
114
+ const canvasPoint3 = viewport.worldToCanvas(point3);
115
+ const line1 = {
116
+ start: {
117
+ x: canvasPoint1[0],
118
+ y: canvasPoint1[1],
119
+ },
120
+ end: {
121
+ x: canvasPoint2[0],
122
+ y: canvasPoint2[1],
123
+ },
124
+ };
125
+ const line2 = {
126
+ start: {
127
+ x: canvasPoint2[0],
128
+ y: canvasPoint2[1],
129
+ },
130
+ end: {
131
+ x: canvasPoint3[0],
132
+ y: canvasPoint3[1],
133
+ },
134
+ };
135
+ const distanceToPoint = lineSegment.distanceToPoint([line1.start.x, line1.start.y], [line1.end.x, line1.end.y], [canvasCoords[0], canvasCoords[1]]);
136
+ const distanceToPoint2 = lineSegment.distanceToPoint([line2.start.x, line2.start.y], [line2.end.x, line2.end.y], [canvasCoords[0], canvasCoords[1]]);
137
+ if (distanceToPoint <= proximity || distanceToPoint2 <= proximity) {
138
+ return true;
139
+ }
140
+ return false;
141
+ };
142
+ this.toolSelectedCallback = (evt, annotation, interactionType) => {
143
+ const eventDetail = evt.detail;
144
+ const { element } = eventDetail;
145
+ annotation.highlighted = true;
146
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
147
+ this.editData = {
148
+ annotation,
149
+ viewportIdsToRender,
150
+ movingTextBox: false,
151
+ };
152
+ this._activateModify(element);
153
+ (0, elementCursor_1.hideElementCursor)(element);
154
+ const enabledElement = (0, core_1.getEnabledElement)(element);
155
+ const { renderingEngine } = enabledElement;
156
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
157
+ evt.preventDefault();
158
+ };
159
+ this._mouseUpCallback = (evt) => {
160
+ const eventDetail = evt.detail;
161
+ const { element } = eventDetail;
162
+ const { annotation, viewportIdsToRender, newAnnotation, hasMoved } = this.editData;
163
+ const { data } = annotation;
164
+ if (newAnnotation && !hasMoved) {
165
+ return;
166
+ }
167
+ if (this.angleStartedNotYetCompleted && data.handles.points.length === 2) {
168
+ this.editData.handleIndex = 2;
169
+ return;
170
+ }
171
+ this.angleStartedNotYetCompleted = false;
172
+ annotation.highlighted = false;
173
+ data.handles.activeHandleIndex = null;
174
+ this._deactivateModify(element);
175
+ this._deactivateDraw(element);
176
+ (0, elementCursor_1.resetElementCursor)(element);
177
+ const enabledElement = (0, core_1.getEnabledElement)(element);
178
+ const { renderingEngine } = enabledElement;
179
+ if (this.isHandleOutsideImage &&
180
+ this.configuration.preventHandleOutsideImage) {
181
+ (0, annotationState_1.removeAnnotation)(annotation.annotationUID, element);
182
+ }
183
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
184
+ if (newAnnotation) {
185
+ const eventType = enums_1.Events.ANNOTATION_COMPLETED;
186
+ const eventDetail = {
187
+ annotation,
188
+ };
189
+ (0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
190
+ }
191
+ this.editData = null;
192
+ this.isDrawing = false;
193
+ };
194
+ this._mouseDragCallback = (evt) => {
195
+ this.isDrawing = true;
196
+ const eventDetail = evt.detail;
197
+ const { element } = eventDetail;
198
+ const { annotation, viewportIdsToRender, handleIndex, movingTextBox } = this.editData;
199
+ const { data } = annotation;
200
+ if (movingTextBox) {
201
+ const { deltaPoints } = eventDetail;
202
+ const worldPosDelta = deltaPoints.world;
203
+ const { textBox } = data.handles;
204
+ const { worldPosition } = textBox;
205
+ worldPosition[0] += worldPosDelta[0];
206
+ worldPosition[1] += worldPosDelta[1];
207
+ worldPosition[2] += worldPosDelta[2];
208
+ textBox.hasMoved = true;
209
+ }
210
+ else if (handleIndex === undefined) {
211
+ const { deltaPoints } = eventDetail;
212
+ const worldPosDelta = deltaPoints.world;
213
+ const points = data.handles.points;
214
+ points.forEach((point) => {
215
+ point[0] += worldPosDelta[0];
216
+ point[1] += worldPosDelta[1];
217
+ point[2] += worldPosDelta[2];
218
+ });
219
+ annotation.invalidated = true;
220
+ }
221
+ else {
222
+ const { currentPoints } = eventDetail;
223
+ const worldPos = currentPoints.world;
224
+ data.handles.points[handleIndex] = [...worldPos];
225
+ annotation.invalidated = true;
226
+ }
227
+ this.editData.hasMoved = true;
228
+ const enabledElement = (0, core_1.getEnabledElement)(element);
229
+ const { renderingEngine } = enabledElement;
230
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
231
+ };
232
+ this.cancel = (element) => {
233
+ if (this.isDrawing) {
234
+ this.isDrawing = false;
235
+ this._deactivateDraw(element);
236
+ this._deactivateModify(element);
237
+ (0, elementCursor_1.resetElementCursor)(element);
238
+ const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
239
+ const { data } = annotation;
240
+ annotation.highlighted = false;
241
+ data.handles.activeHandleIndex = null;
242
+ const enabledElement = (0, core_1.getEnabledElement)(element);
243
+ const { renderingEngine } = enabledElement;
244
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
245
+ if (newAnnotation) {
246
+ const eventType = enums_1.Events.ANNOTATION_COMPLETED;
247
+ const eventDetail = {
248
+ annotation,
249
+ };
250
+ (0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
251
+ }
252
+ this.editData = null;
253
+ return annotation.annotationUID;
254
+ }
255
+ };
256
+ this._activateModify = (element) => {
257
+ store_1.state.isInteractingWithTool = true;
258
+ element.addEventListener(enums_1.Events.MOUSE_UP, this._mouseUpCallback);
259
+ element.addEventListener(enums_1.Events.MOUSE_DRAG, this._mouseDragCallback);
260
+ element.addEventListener(enums_1.Events.MOUSE_CLICK, this._mouseUpCallback);
261
+ };
262
+ this._deactivateModify = (element) => {
263
+ store_1.state.isInteractingWithTool = false;
264
+ element.removeEventListener(enums_1.Events.MOUSE_UP, this._mouseUpCallback);
265
+ element.removeEventListener(enums_1.Events.MOUSE_DRAG, this._mouseDragCallback);
266
+ element.removeEventListener(enums_1.Events.MOUSE_CLICK, this._mouseUpCallback);
267
+ };
268
+ this._activateDraw = (element) => {
269
+ store_1.state.isInteractingWithTool = true;
270
+ element.addEventListener(enums_1.Events.MOUSE_UP, this._mouseUpCallback);
271
+ element.addEventListener(enums_1.Events.MOUSE_DRAG, this._mouseDragCallback);
272
+ element.addEventListener(enums_1.Events.MOUSE_MOVE, this._mouseDragCallback);
273
+ element.addEventListener(enums_1.Events.MOUSE_CLICK, this._mouseUpCallback);
274
+ };
275
+ this._deactivateDraw = (element) => {
276
+ store_1.state.isInteractingWithTool = false;
277
+ element.removeEventListener(enums_1.Events.MOUSE_UP, this._mouseUpCallback);
278
+ element.removeEventListener(enums_1.Events.MOUSE_DRAG, this._mouseDragCallback);
279
+ element.removeEventListener(enums_1.Events.MOUSE_MOVE, this._mouseDragCallback);
280
+ element.removeEventListener(enums_1.Events.MOUSE_CLICK, this._mouseUpCallback);
281
+ };
282
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
283
+ var _a;
284
+ const { viewport } = enabledElement;
285
+ const { element } = viewport;
286
+ let annotations = (0, annotationState_1.getAnnotations)(element, this.getToolName());
287
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
288
+ return;
289
+ }
290
+ annotations = this.filterInteractableAnnotationsForElement(element, annotations);
291
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
292
+ return;
293
+ }
294
+ const targetId = this.getTargetId(viewport);
295
+ const renderingEngine = viewport.getRenderingEngine();
296
+ const styleSpecifier = {
297
+ toolGroupId: this.toolGroupId,
298
+ toolName: this.getToolName(),
299
+ viewportId: enabledElement.viewport.id,
300
+ };
301
+ for (let i = 0; i < annotations.length; i++) {
302
+ const annotation = annotations[i];
303
+ const { annotationUID, data } = annotation;
304
+ const { points, activeHandleIndex } = data.handles;
305
+ styleSpecifier.annotationUID = annotationUID;
306
+ const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
307
+ const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
308
+ const color = this.getStyle('color', styleSpecifier, annotation);
309
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
310
+ if (!data.cachedStats[targetId]) {
311
+ data.cachedStats[targetId] = {
312
+ angle: null,
313
+ };
314
+ this._calculateCachedStats(annotation, renderingEngine, enabledElement);
315
+ }
316
+ else if (annotation.invalidated) {
317
+ this._throttledCalculateCachedStats(annotation, renderingEngine, enabledElement);
318
+ }
319
+ let activeHandleCanvasCoords;
320
+ if (!(0, annotationLocking_1.isAnnotationLocked)(annotation) &&
321
+ !this.editData &&
322
+ activeHandleIndex !== null) {
323
+ activeHandleCanvasCoords = [canvasCoordinates[activeHandleIndex]];
324
+ }
325
+ if (activeHandleCanvasCoords) {
326
+ const handleGroupUID = '0';
327
+ (0, drawingSvg_1.drawHandles)(svgDrawingHelper, annotationUID, handleGroupUID, canvasCoordinates, {
328
+ color,
329
+ lineDash,
330
+ lineWidth,
331
+ });
332
+ }
333
+ let lineUID = '1';
334
+ (0, drawingSvg_1.drawLine)(svgDrawingHelper, annotationUID, lineUID, canvasCoordinates[0], canvasCoordinates[1], {
335
+ color,
336
+ width: lineWidth,
337
+ lineDash,
338
+ });
339
+ if (canvasCoordinates.length !== 3) {
340
+ return;
341
+ }
342
+ lineUID = '2';
343
+ (0, drawingSvg_1.drawLine)(svgDrawingHelper, annotationUID, lineUID, canvasCoordinates[1], canvasCoordinates[2], {
344
+ color,
345
+ width: lineWidth,
346
+ lineDash,
347
+ });
348
+ if (!viewport.getRenderingEngine()) {
349
+ console.warn('Rendering Engine has been destroyed');
350
+ return;
351
+ }
352
+ if (!((_a = data.cachedStats[targetId]) === null || _a === void 0 ? void 0 : _a.angle)) {
353
+ continue;
354
+ }
355
+ const textLines = this._getTextLines(data, targetId);
356
+ if (!data.handles.textBox.hasMoved) {
357
+ const canvasTextBoxCoords = (0, drawing_1.getTextBoxCoordsCanvas)(canvasCoordinates);
358
+ data.handles.textBox.worldPosition =
359
+ viewport.canvasToWorld(canvasTextBoxCoords);
360
+ }
361
+ const textBoxPosition = viewport.worldToCanvas(data.handles.textBox.worldPosition);
362
+ const textBoxUID = '1';
363
+ const boundingBox = (0, drawingSvg_1.drawLinkedTextBox)(svgDrawingHelper, annotationUID, textBoxUID, textLines, textBoxPosition, canvasCoordinates, {}, this.getLinkedTextBoxStyle(styleSpecifier, annotation));
364
+ const { x: left, y: top, width, height } = boundingBox;
365
+ data.handles.textBox.worldBoundingBox = {
366
+ topLeft: viewport.canvasToWorld([left, top]),
367
+ topRight: viewport.canvasToWorld([left + width, top]),
368
+ bottomLeft: viewport.canvasToWorld([left, top + height]),
369
+ bottomRight: viewport.canvasToWorld([left + width, top + height]),
370
+ };
371
+ }
372
+ };
373
+ this._throttledCalculateCachedStats = (0, throttle_1.default)(this._calculateCachedStats, 100, { trailing: true });
374
+ }
375
+ handleSelectedCallback(evt, annotation, handle, interactionType = 'mouse') {
376
+ const eventDetail = evt.detail;
377
+ const { element } = eventDetail;
378
+ const { data } = annotation;
379
+ annotation.highlighted = true;
380
+ let movingTextBox = false;
381
+ let handleIndex;
382
+ if (handle.worldPosition) {
383
+ movingTextBox = true;
384
+ }
385
+ else {
386
+ handleIndex = data.handles.points.findIndex((p) => p === handle);
387
+ }
388
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
389
+ this.editData = {
390
+ annotation,
391
+ viewportIdsToRender,
392
+ handleIndex,
393
+ movingTextBox,
394
+ };
395
+ this._activateModify(element);
396
+ (0, elementCursor_1.hideElementCursor)(element);
397
+ const enabledElement = (0, core_1.getEnabledElement)(element);
398
+ const { renderingEngine } = enabledElement;
399
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
400
+ evt.preventDefault();
401
+ }
402
+ _getTextLines(data, targetId) {
403
+ const cachedVolumeStats = data.cachedStats[targetId];
404
+ const { angle } = cachedVolumeStats;
405
+ if (angle === undefined) {
406
+ return;
407
+ }
408
+ const textLines = [`${angle.toFixed(2)} ${String.fromCharCode(176)}`];
409
+ return textLines;
410
+ }
411
+ _calculateCachedStats(annotation, renderingEngine, enabledElement) {
412
+ const data = annotation.data;
413
+ const { viewportId, renderingEngineId } = enabledElement;
414
+ if (data.handles.points.length !== 3) {
415
+ return;
416
+ }
417
+ const worldPos1 = data.handles.points[0];
418
+ const worldPos2 = data.handles.points[1];
419
+ const worldPos3 = data.handles.points[2];
420
+ const { cachedStats } = data;
421
+ const targetIds = Object.keys(cachedStats);
422
+ for (let i = 0; i < targetIds.length; i++) {
423
+ const targetId = targetIds[i];
424
+ const angle = (0, angleBetweenLines_1.default)([worldPos1, worldPos2], [worldPos2, worldPos3]);
425
+ cachedStats[targetId] = {
426
+ angle,
427
+ };
428
+ }
429
+ annotation.invalidated = false;
430
+ const eventType = enums_1.Events.ANNOTATION_MODIFIED;
431
+ const eventDetail = {
432
+ annotation,
433
+ viewportId,
434
+ renderingEngineId,
435
+ };
436
+ (0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
437
+ return cachedStats;
438
+ }
439
+ }
440
+ AngleTool.toolName = 'Angle';
441
+ exports.default = AngleTool;
442
+ //# sourceMappingURL=AngleTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AngleTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/AngleTool.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import ZoomTool from './ZoomTool';
7
7
  import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
8
8
  import MIPJumpToClickTool from './MIPJumpToClickTool';
9
9
  import CrosshairsTool from './CrosshairsTool';
10
+ import MagnifyTool from './MagnifyTool';
10
11
  import BidirectionalTool from './annotation/BidirectionalTool';
11
12
  import LengthTool from './annotation/LengthTool';
12
13
  import ProbeTool from './annotation/ProbeTool';
@@ -15,6 +16,7 @@ import RectangleROITool from './annotation/RectangleROITool';
15
16
  import EllipticalROITool from './annotation/EllipticalROITool';
16
17
  import PlanarFreehandROITool from './annotation/PlanarFreehandROITool';
17
18
  import ArrowAnnotateTool from './annotation/ArrowAnnotateTool';
19
+ import AngleTool from './annotation/AngleTool';
18
20
  import SegmentationDisplayTool from './displayTools/SegmentationDisplayTool';
19
21
  import RectangleScissorsTool from './segmentation/RectangleScissorsTool';
20
22
  import CircleScissorsTool from './segmentation/CircleScissorsTool';
@@ -22,4 +24,4 @@ import SphereScissorsTool from './segmentation/SphereScissorsTool';
22
24
  import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool';
23
25
  import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
24
26
  import BrushTool from './segmentation/BrushTool';
25
- export { BaseTool, AnnotationTool, PanTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, };
27
+ export { BaseTool, AnnotationTool, PanTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, 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.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = 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.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.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = 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; } });
@@ -23,6 +23,8 @@ const MIPJumpToClickTool_1 = __importDefault(require("./MIPJumpToClickTool"));
23
23
  exports.MIPJumpToClickTool = MIPJumpToClickTool_1.default;
24
24
  const CrosshairsTool_1 = __importDefault(require("./CrosshairsTool"));
25
25
  exports.CrosshairsTool = CrosshairsTool_1.default;
26
+ const MagnifyTool_1 = __importDefault(require("./MagnifyTool"));
27
+ exports.MagnifyTool = MagnifyTool_1.default;
26
28
  const BidirectionalTool_1 = __importDefault(require("./annotation/BidirectionalTool"));
27
29
  exports.BidirectionalTool = BidirectionalTool_1.default;
28
30
  const LengthTool_1 = __importDefault(require("./annotation/LengthTool"));
@@ -39,6 +41,8 @@ const PlanarFreehandROITool_1 = __importDefault(require("./annotation/PlanarFree
39
41
  exports.PlanarFreehandROITool = PlanarFreehandROITool_1.default;
40
42
  const ArrowAnnotateTool_1 = __importDefault(require("./annotation/ArrowAnnotateTool"));
41
43
  exports.ArrowAnnotateTool = ArrowAnnotateTool_1.default;
44
+ const AngleTool_1 = __importDefault(require("./annotation/AngleTool"));
45
+ exports.AngleTool = AngleTool_1.default;
42
46
  const SegmentationDisplayTool_1 = __importDefault(require("./displayTools/SegmentationDisplayTool"));
43
47
  exports.SegmentationDisplayTool = SegmentationDisplayTool_1.default;
44
48
  const RectangleScissorsTool_1 = __importDefault(require("./segmentation/RectangleScissorsTool"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;AAgChD,yFAhCO,eAAQ,OAgCP;AACR,+FAjCiB,qBAAc,OAiCjB;AAhChB,wDAAgC;AAkC9B,kBAlCK,iBAAO,CAkCL;AAjCT,wEAAgD;AAmC9C,0BAnCK,yBAAe,CAmCL;AAlCjB,wEAAgD;AAmC9C,0BAnCK,yBAAe,CAmCL;AAlCjB,oGAAwE;AAmCtE,oCAnCK,uCAAyB,CAmCL;AAlC3B,0DAAkC;AAmChC,mBAnCK,kBAAQ,CAmCL;AAlCV,8FAAsE;AAmCpE,qCAnCK,oCAA0B,CAmCL;AAlC5B,8EAAsD;AAmCpD,6BAnCK,4BAAkB,CAmCL;AAlCpB,sEAA8C;AAoC5C,yBApCK,wBAAc,CAoCL;AAlChB,uFAA+D;AAmC7D,4BAnCK,2BAAiB,CAmCL;AAlCnB,yEAAiD;AAmC/C,qBAnCK,oBAAU,CAmCL;AAlCZ,uEAA+C;AAmC7C,oBAnCK,mBAAS,CAmCL;AAlCX,+EAAuD;AAuBrD,wBAvBK,uBAAa,CAuBL;AAtBf,qFAA6D;AAkC3D,2BAlCK,0BAAgB,CAkCL;AAjClB,uFAA+D;AAkC7D,4BAlCK,2BAAiB,CAkCL;AAjCnB,+FAAuE;AAkCrE,gCAlCK,+BAAqB,CAkCL;AAjCvB,uFAA+D;AAkC7D,4BAlCK,2BAAiB,CAkCL;AA/BnB,qGAA6E;AAiC3E,kCAjCK,iCAAuB,CAiCL;AA9BzB,iGAAyE;AAgCvE,gCAhCK,+BAAqB,CAgCL;AA/BvB,2FAAmE;AAgCjE,6BAhCK,4BAAkB,CAgCL;AA/BpB,2FAAmE;AAgCjE,6BAhCK,4BAAkB,CAgCL;AA/BpB,yGAAiF;AAgC/E,oCAhCK,mCAAyB,CAgCL;AA/B3B,yHAAiG;AAgC/F,4CAhCK,2CAAiC,CAgCL;AA/BnC,yEAAiD;AAgC/C,oBAhCK,mBAAS,CAgCL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;AAkChD,yFAlCO,eAAQ,OAkCP;AACR,+FAnCiB,qBAAc,OAmCjB;AAlChB,wDAAgC;AAoC9B,kBApCK,iBAAO,CAoCL;AAnCT,wEAAgD;AAqC9C,0BArCK,yBAAe,CAqCL;AApCjB,wEAAgD;AAqC9C,0BArCK,yBAAe,CAqCL;AApCjB,oGAAwE;AAqCtE,oCArCK,uCAAyB,CAqCL;AApC3B,0DAAkC;AAqChC,mBArCK,kBAAQ,CAqCL;AApCV,8FAAsE;AAqCpE,qCArCK,oCAA0B,CAqCL;AApC5B,8EAAsD;AAqCpD,6BArCK,4BAAkB,CAqCL;AApCpB,sEAA8C;AAsC5C,yBAtCK,wBAAc,CAsCL;AArChB,gEAAwC;AAuDtC,sBAvDK,qBAAW,CAuDL;AArDb,uFAA+D;AAoC7D,4BApCK,2BAAiB,CAoCL;AAnCnB,yEAAiD;AAoC/C,qBApCK,oBAAU,CAoCL;AAnCZ,uEAA+C;AAoC7C,oBApCK,mBAAS,CAoCL;AAnCX,+EAAuD;AAwBrD,wBAxBK,uBAAa,CAwBL;AAvBf,qFAA6D;AAmC3D,2BAnCK,0BAAgB,CAmCL;AAlClB,uFAA+D;AAmC7D,4BAnCK,2BAAiB,CAmCL;AAlCnB,+FAAuE;AAmCrE,gCAnCK,+BAAqB,CAmCL;AAlCvB,uFAA+D;AAmC7D,4BAnCK,2BAAiB,CAmCL;AAlCnB,uEAA+C;AAmC7C,oBAnCK,mBAAS,CAmCL;AAhCX,qGAA6E;AAkC3E,kCAlCK,iCAAuB,CAkCL;AA/BzB,iGAAyE;AAiCvE,gCAjCK,+BAAqB,CAiCL;AAhCvB,2FAAmE;AAiCjE,6BAjCK,4BAAkB,CAiCL;AAhCpB,2FAAmE;AAiCjE,6BAjCK,4BAAkB,CAiCL;AAhCpB,yGAAiF;AAiC/E,oCAjCK,mCAAyB,CAiCL;AAhC3B,yHAAiG;AAiC/F,4CAjCK,2CAAiC,CAiCL;AAhCnC,yEAAiD;AAiC/C,oBAjCK,mBAAS,CAiCL"}
@@ -0,0 +1,19 @@
1
+ declare type PlayClipOptions = {
2
+ framesPerSecond?: number;
3
+ frameTimeVector?: number[];
4
+ reverse?: boolean;
5
+ loop?: boolean;
6
+ frameTimeVectorSpeedMultiplier?: number;
7
+ };
8
+ interface ToolData {
9
+ intervalId: number | undefined;
10
+ framesPerSecond: number;
11
+ lastFrameTimeStamp: number | undefined;
12
+ frameTimeVector: number[] | undefined;
13
+ ignoreFrameTimeVector: boolean;
14
+ usingFrameTimeVector: boolean;
15
+ speed: number;
16
+ reverse: boolean;
17
+ loop: boolean;
18
+ }
19
+ export type { PlayClipOptions, ToolData };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CINETypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CINETypes.js","sourceRoot":"","sources":["../../../src/types/CINETypes.ts"],"names":[],"mappings":""}
@@ -215,4 +215,28 @@ export interface ArrowAnnotation extends Annotation {
215
215
  };
216
216
  };
217
217
  }
218
+ export interface AngleAnnotation extends Annotation {
219
+ data: {
220
+ handles: {
221
+ points: Types.Point3[];
222
+ activeHandleIndex: number | null;
223
+ textBox: {
224
+ hasMoved: boolean;
225
+ worldPosition: Types.Point3;
226
+ worldBoundingBox: {
227
+ topLeft: Types.Point3;
228
+ topRight: Types.Point3;
229
+ bottomLeft: Types.Point3;
230
+ bottomRight: Types.Point3;
231
+ };
232
+ };
233
+ };
234
+ label: string;
235
+ cachedStats: {
236
+ [targetId: string]: {
237
+ angle: number;
238
+ };
239
+ };
240
+ };
241
+ }
218
242
  export {};
@@ -14,5 +14,6 @@ import type { ToolProps, PublicToolProps } from './ToolProps';
14
14
  import type { SVGCursorDescriptor, SVGPoint } from './CursorTypes';
15
15
  import type JumpToSliceOptions from './JumpToSliceOptions';
16
16
  import type ScrollOptions from './ScrollOptions';
17
+ import type * as CINETypes from './CINETypes';
17
18
  import type { Color, ColorLUT, RepresentationConfig, SegmentationRepresentationConfig, SegmentationRepresentationData, Segmentation, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, SegmentationState, RepresentationPublicInput } from './SegmentationStateTypes';
18
- export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, };
19
+ export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, };
@@ -0,0 +1,5 @@
1
+ declare enum Events {
2
+ CLIP_STOPPED = "CORNERSTONE_CINE_TOOL_STOPPED",
3
+ CLIP_STARTED = "CORNERSTONE_CINE_TOOL_STARTED"
4
+ }
5
+ export default Events;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var Events;
4
+ (function (Events) {
5
+ Events["CLIP_STOPPED"] = "CORNERSTONE_CINE_TOOL_STOPPED";
6
+ Events["CLIP_STARTED"] = "CORNERSTONE_CINE_TOOL_STARTED";
7
+ })(Events || (Events = {}));
8
+ exports.default = Events;
9
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/utilities/cine/events.ts"],"names":[],"mappings":";;AAGA,IAAK,MAGJ;AAHD,WAAK,MAAM;IACT,wDAA8C,CAAA;IAC9C,wDAA8C,CAAA;AAChD,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { playClip, stopClip } from './playClip';
2
+ import Events from './events';
3
+ import { getToolState, addToolState } from './state';
4
+ export { playClip, stopClip, Events, getToolState, addToolState };