@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.
- package/dist/cjs/tools/CrosshairsTool.js +22 -16
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/WindowLevelTool.d.ts +6 -4
- package/dist/cjs/tools/WindowLevelTool.js +53 -26
- package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +6 -4
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -3
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +5 -3
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +4 -3
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +32 -16
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js +36 -33
- package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +3 -0
- package/dist/esm/tools/CrosshairsTool.js +22 -16
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/WindowLevelTool.d.ts +6 -4
- package/dist/esm/tools/WindowLevelTool.js +53 -26
- package/dist/esm/tools/WindowLevelTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +6 -4
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +5 -3
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +5 -3
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +4 -3
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +32 -16
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js +36 -33
- package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
- package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +3 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- 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
|
-
|
|
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 (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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":";;AACA,yCAAiC;AACjC,kDAAmD;AAGnD,MAAM,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,GAAG,eAAQ,CAAC;AAe9E,SAAS,qBAAqB,CAC5B,GAAkC,EAClC,eAAwB;IAExB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;IAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;IACvC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE7D,MAAM,kBAAkB,GAAG,gCAAgC,CACzD,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,eAAe,CAChB,CAAC;IAEF,IAAI,kBAAkB,EAAE;QACtB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAGzD,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;
|
|
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.
|
|
89
|
-
viewport.
|
|
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 {
|
|
286
|
-
const canvasDiagonalLength = Math.sqrt(
|
|
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 {
|
|
300
|
-
const otherCanvasDiagonalLength = Math.sqrt(
|
|
301
|
-
const otherCanvasCenter = [
|
|
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,
|
|
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
|
-
|
|
581
|
-
|
|
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 {
|
|
1075
|
+
const { clientWidth, clientHeight } = viewport.canvas;
|
|
1073
1076
|
const topLefWorld = viewport.canvasToWorld([0, 0]);
|
|
1074
|
-
const bottomRightWorld = viewport.canvasToWorld([
|
|
1075
|
-
|
|
1076
|
-
|
|
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 {
|
|
1224
|
-
const canvasDiagonalLength = Math.sqrt(
|
|
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;
|