@cornerstonejs/tools 0.30.3 → 0.30.5

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.
@@ -27,17 +27,18 @@ declare class BidirectionalTool extends AnnotationTool {
27
27
  _mouseUpCallback: (evt: EventTypes.MouseUpEventType | EventTypes.MouseClickEventType) => void;
28
28
  _mouseDragDrawCallback: (evt: MouseMoveEventType | MouseDragEventType) => void;
29
29
  _mouseDragModifyCallback: (evt: MouseDragEventType) => void;
30
- _mouseDragModifyHandle: (evt: any) => void;
30
+ _handleDragModify: (evt: any) => void;
31
31
  cancel: (element: HTMLDivElement) => any;
32
32
  _activateDraw: (element: any) => void;
33
33
  _deactivateDraw: (element: any) => void;
34
34
  _activateModify: (element: any) => void;
35
35
  _deactivateModify: (element: any) => void;
36
36
  renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean;
37
- _movingLongAxisWouldPutItThroughShortAxis: (proposedFirstLineSegment: any, secondLineSegment: any) => boolean;
37
+ _movingLongAxisWouldPutItThroughShortAxis: (firstLineSegment: any, secondLineSegment: any) => boolean;
38
38
  _getTextLines: (data: any, targetId: any) => string[];
39
39
  _calculateLength(pos1: any, pos2: any): number;
40
40
  _calculateCachedStats: (annotation: any, renderingEngine: any, enabledElement: any) => any;
41
41
  _isInsideVolume: (index1: any, index2: any, index3: any, index4: any, dimensions: any) => boolean;
42
+ _getSignedAngle: (vector1: any, vector2: any) => number;
42
43
  }
43
44
  export default BidirectionalTool;
@@ -278,17 +278,17 @@ class BidirectionalTool extends base_1.AnnotationTool {
278
278
  annotation.invalidated = true;
279
279
  }
280
280
  else {
281
- this._mouseDragModifyHandle(evt);
281
+ this._handleDragModify(evt);
282
282
  annotation.invalidated = true;
283
283
  }
284
284
  (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
285
285
  };
286
- this._mouseDragModifyHandle = (evt) => {
286
+ this._handleDragModify = (evt) => {
287
287
  const eventDetail = evt.detail;
288
288
  const { currentPoints, element } = eventDetail;
289
289
  const enabledElement = (0, core_1.getEnabledElement)(element);
290
290
  const { viewport } = enabledElement;
291
- const { annotation, handleIndex } = this.editData;
291
+ const { annotation, handleIndex: movingHandleIndex } = this.editData;
292
292
  const { data } = annotation;
293
293
  const worldPos = currentPoints.world;
294
294
  const canvasCoordHandlesCurrent = [
@@ -319,13 +319,19 @@ class BidirectionalTool extends base_1.AnnotationTool {
319
319
  };
320
320
  const proposedPoint = [...worldPos];
321
321
  const proposedCanvasCoord = viewport.worldToCanvas(proposedPoint);
322
- if (handleIndex === 0 || handleIndex === 1) {
323
- const fixedHandleIndex = handleIndex === 0 ? 1 : 0;
324
- const fixedCanvasCoord = canvasCoordHandlesCurrent[fixedHandleIndex];
322
+ if (movingHandleIndex === 0 || movingHandleIndex === 1) {
323
+ const fixedHandleIndex = movingHandleIndex === 0 ? 1 : 0;
324
+ const fixedHandleCanvasCoord = canvasCoordHandlesCurrent[fixedHandleIndex];
325
+ const fixedHandleToProposedCoordVec = gl_matrix_1.vec2.set(gl_matrix_1.vec2.create(), proposedCanvasCoord[0] - fixedHandleCanvasCoord[0], proposedCanvasCoord[1] - fixedHandleCanvasCoord[1]);
326
+ const fixedHandleToOldCoordVec = gl_matrix_1.vec2.set(gl_matrix_1.vec2.create(), canvasCoordHandlesCurrent[movingHandleIndex][0] -
327
+ fixedHandleCanvasCoord[0], canvasCoordHandlesCurrent[movingHandleIndex][1] -
328
+ fixedHandleCanvasCoord[1]);
329
+ gl_matrix_1.vec2.normalize(fixedHandleToProposedCoordVec, fixedHandleToProposedCoordVec);
330
+ gl_matrix_1.vec2.normalize(fixedHandleToOldCoordVec, fixedHandleToOldCoordVec);
325
331
  const proposedFirstLineSegment = {
326
332
  start: {
327
- x: fixedCanvasCoord[0],
328
- y: fixedCanvasCoord[1],
333
+ x: fixedHandleCanvasCoord[0],
334
+ y: fixedHandleCanvasCoord[1],
329
335
  },
330
336
  end: {
331
337
  x: proposedCanvasCoord[0],
@@ -335,34 +341,35 @@ class BidirectionalTool extends base_1.AnnotationTool {
335
341
  if (this._movingLongAxisWouldPutItThroughShortAxis(proposedFirstLineSegment, secondLineSegment)) {
336
342
  return;
337
343
  }
338
- const intersectionPoint = lineSegment.intersectLine([secondLineSegment.start.x, secondLineSegment.start.y], [secondLineSegment.end.x, secondLineSegment.end.y], [firstLineSegment.start.x, firstLineSegment.start.y], [firstLineSegment.end.x, firstLineSegment.end.y]);
339
- const intersectionCoord = gl_matrix_1.vec2.create();
340
- gl_matrix_1.vec2.set(intersectionCoord, intersectionPoint[0], intersectionPoint[1]);
341
- const distFromLeftHandle = gl_matrix_1.vec2.distance(canvasCoordHandlesCurrent[2], intersectionCoord);
342
- const distFromRightHandle = gl_matrix_1.vec2.distance(canvasCoordHandlesCurrent[3], intersectionCoord);
343
- const distIntersectAndFixedPoint = Math.abs(gl_matrix_1.vec2.distance(fixedCanvasCoord, intersectionCoord));
344
- const dx = fixedCanvasCoord[0] - proposedCanvasCoord[0];
345
- const dy = fixedCanvasCoord[1] - proposedCanvasCoord[1];
346
- const length = Math.sqrt(dx * dx + dy * dy);
347
- const vectorX = dx / length;
348
- const vectorY = dy / length;
349
- const intersectX = fixedCanvasCoord[0] - distIntersectAndFixedPoint * vectorX;
350
- const intersectY = fixedCanvasCoord[1] - distIntersectAndFixedPoint * vectorY;
351
- const mod = handleIndex === 0 ? -1 : 1;
352
- const leftX = intersectX + distFromLeftHandle * vectorY * mod;
353
- const leftY = intersectY - distFromLeftHandle * vectorX * mod;
354
- const rightX = intersectX - distFromRightHandle * vectorY * mod;
355
- const rightY = intersectY + distFromRightHandle * vectorX * mod;
356
- data.handles.points[handleIndex] = proposedPoint;
357
- data.handles.points[2] = viewport.canvasToWorld([leftX, leftY]);
358
- data.handles.points[3] = viewport.canvasToWorld([rightX, rightY]);
344
+ const centerOfRotation = fixedHandleCanvasCoord;
345
+ const angle = this._getSignedAngle(fixedHandleToOldCoordVec, fixedHandleToProposedCoordVec);
346
+ let firstPointX = canvasCoordHandlesCurrent[2][0];
347
+ let firstPointY = canvasCoordHandlesCurrent[2][1];
348
+ let secondPointX = canvasCoordHandlesCurrent[3][0];
349
+ let secondPointY = canvasCoordHandlesCurrent[3][1];
350
+ firstPointX -= centerOfRotation[0];
351
+ firstPointY -= centerOfRotation[1];
352
+ secondPointX -= centerOfRotation[0];
353
+ secondPointY -= centerOfRotation[1];
354
+ const rotatedFirstPoint = firstPointX * Math.cos(angle) - firstPointY * Math.sin(angle);
355
+ const rotatedFirstPointY = firstPointX * Math.sin(angle) + firstPointY * Math.cos(angle);
356
+ const rotatedSecondPoint = secondPointX * Math.cos(angle) - secondPointY * Math.sin(angle);
357
+ const rotatedSecondPointY = secondPointX * Math.sin(angle) + secondPointY * Math.cos(angle);
358
+ firstPointX = rotatedFirstPoint + centerOfRotation[0];
359
+ firstPointY = rotatedFirstPointY + centerOfRotation[1];
360
+ secondPointX = rotatedSecondPoint + centerOfRotation[0];
361
+ secondPointY = rotatedSecondPointY + centerOfRotation[1];
362
+ const newFirstPoint = viewport.canvasToWorld([firstPointX, firstPointY]);
363
+ const newSecondPoint = viewport.canvasToWorld([
364
+ secondPointX,
365
+ secondPointY,
366
+ ]);
367
+ data.handles.points[movingHandleIndex] = proposedPoint;
368
+ data.handles.points[2] = newFirstPoint;
369
+ data.handles.points[3] = newSecondPoint;
359
370
  }
360
371
  else {
361
- const translateHandleIndex = handleIndex === 2 ? 3 : 2;
362
- const proposedCanvasCoordPoint = {
363
- x: proposedCanvasCoord[0],
364
- y: proposedCanvasCoord[1],
365
- };
372
+ const translateHandleIndex = movingHandleIndex === 2 ? 3 : 2;
366
373
  const canvasCoordsCurrent = {
367
374
  longLineSegment: {
368
375
  start: firstLineSegment.start,
@@ -373,52 +380,52 @@ class BidirectionalTool extends base_1.AnnotationTool {
373
380
  end: secondLineSegment.end,
374
381
  },
375
382
  };
376
- const dx = canvasCoordsCurrent.longLineSegment.start.x -
377
- canvasCoordsCurrent.longLineSegment.end.x;
378
- const dy = canvasCoordsCurrent.longLineSegment.start.y -
379
- canvasCoordsCurrent.longLineSegment.end.y;
380
- const length = Math.sqrt(dx * dx + dy * dy);
381
- const vectorX = dx / length;
382
- const vectorY = dy / length;
383
- const highNumber = Number.MAX_SAFE_INTEGER;
384
- const mod = handleIndex === 0 || handleIndex === 3 ? 1 : -1;
385
- const multiplier = mod * highNumber;
386
- const helperLine = {
387
- start: proposedCanvasCoordPoint,
388
- end: {
389
- x: proposedCanvasCoordPoint.x + vectorY * multiplier,
390
- y: proposedCanvasCoordPoint.y + vectorX * multiplier * -1,
391
- },
392
- };
393
- const newIntersectionPoint = lineSegment.intersectLine([
394
- canvasCoordsCurrent.longLineSegment.start.x,
395
- canvasCoordsCurrent.longLineSegment.start.y,
396
- ], [
383
+ const longLineSegmentVec = gl_matrix_1.vec2.subtract(gl_matrix_1.vec2.create(), [
397
384
  canvasCoordsCurrent.longLineSegment.end.x,
398
385
  canvasCoordsCurrent.longLineSegment.end.y,
399
- ], [helperLine.start.x, helperLine.start.y], [helperLine.end.x, helperLine.end.y]);
400
- if (newIntersectionPoint === undefined) {
401
- return;
402
- }
403
- const distFromTranslateHandle = gl_matrix_1.vec2.distance(canvasCoordHandlesCurrent[translateHandleIndex], [newIntersectionPoint[0], newIntersectionPoint[1]]);
404
- const shortLineSegment = {
386
+ ], [
387
+ canvasCoordsCurrent.longLineSegment.start.x,
388
+ canvasCoordsCurrent.longLineSegment.start.y,
389
+ ]);
390
+ const longLineSegmentVecNormalized = gl_matrix_1.vec2.normalize(gl_matrix_1.vec2.create(), longLineSegmentVec);
391
+ const proposedToCurrentVec = gl_matrix_1.vec2.subtract(gl_matrix_1.vec2.create(), [proposedCanvasCoord[0], proposedCanvasCoord[1]], [
392
+ canvasCoordHandlesCurrent[movingHandleIndex][0],
393
+ canvasCoordHandlesCurrent[movingHandleIndex][1],
394
+ ]);
395
+ const movementLength = gl_matrix_1.vec2.length(proposedToCurrentVec);
396
+ const angle = this._getSignedAngle(longLineSegmentVecNormalized, proposedToCurrentVec);
397
+ const movementAlongLineSegmentLength = Math.cos(angle) * movementLength;
398
+ const newTranslatedPoint = gl_matrix_1.vec2.scaleAndAdd(gl_matrix_1.vec2.create(), [
399
+ canvasCoordHandlesCurrent[translateHandleIndex][0],
400
+ canvasCoordHandlesCurrent[translateHandleIndex][1],
401
+ ], longLineSegmentVecNormalized, movementAlongLineSegmentLength);
402
+ if (this._movingLongAxisWouldPutItThroughShortAxis({
405
403
  start: {
406
- x: newIntersectionPoint[0] + vectorY * distFromTranslateHandle,
407
- y: newIntersectionPoint[1] + vectorX * distFromTranslateHandle * -1,
404
+ x: proposedCanvasCoord[0],
405
+ y: proposedCanvasCoord[1],
408
406
  },
409
407
  end: {
410
- x: newIntersectionPoint[0] + vectorY * distFromTranslateHandle * -1,
411
- y: newIntersectionPoint[1] + vectorX * distFromTranslateHandle,
408
+ x: newTranslatedPoint[0],
409
+ y: newTranslatedPoint[1],
412
410
  },
413
- };
414
- const translatedHandleCoords = translateHandleIndex === 2
415
- ? shortLineSegment.start
416
- : shortLineSegment.end;
417
- data.handles.points[translateHandleIndex] = viewport.canvasToWorld([
418
- translatedHandleCoords.x,
419
- translatedHandleCoords.y,
420
- ]);
421
- data.handles.points[handleIndex] = proposedPoint;
411
+ }, {
412
+ start: {
413
+ x: canvasCoordsCurrent.longLineSegment.start.x,
414
+ y: canvasCoordsCurrent.longLineSegment.start.y,
415
+ },
416
+ end: {
417
+ x: canvasCoordsCurrent.longLineSegment.end.x,
418
+ y: canvasCoordsCurrent.longLineSegment.end.y,
419
+ },
420
+ })) {
421
+ return;
422
+ }
423
+ const intersectionPoint = lineSegment.intersectLine([proposedCanvasCoord[0], proposedCanvasCoord[1]], [newTranslatedPoint[0], newTranslatedPoint[1]], [firstLineSegment.start.x, firstLineSegment.start.y], [firstLineSegment.end.x, firstLineSegment.end.y]);
424
+ if (!intersectionPoint) {
425
+ return;
426
+ }
427
+ data.handles.points[translateHandleIndex] = viewport.canvasToWorld(newTranslatedPoint);
428
+ data.handles.points[movingHandleIndex] = proposedPoint;
422
429
  }
423
430
  };
424
431
  this.cancel = (element) => {
@@ -571,7 +578,7 @@ class BidirectionalTool extends base_1.AnnotationTool {
571
578
  }
572
579
  return renderStatus;
573
580
  };
574
- this._movingLongAxisWouldPutItThroughShortAxis = (proposedFirstLineSegment, secondLineSegment) => {
581
+ this._movingLongAxisWouldPutItThroughShortAxis = (firstLineSegment, secondLineSegment) => {
575
582
  const vectorInSecondLineDirection = gl_matrix_1.vec2.create();
576
583
  gl_matrix_1.vec2.set(vectorInSecondLineDirection, secondLineSegment.end.x - secondLineSegment.start.x, secondLineSegment.end.y - secondLineSegment.start.y);
577
584
  gl_matrix_1.vec2.normalize(vectorInSecondLineDirection, vectorInSecondLineDirection);
@@ -585,7 +592,7 @@ class BidirectionalTool extends base_1.AnnotationTool {
585
592
  y: secondLineSegment.end.y + vectorInSecondLineDirection[1] * 10,
586
593
  },
587
594
  };
588
- const proposedIntersectionPoint = lineSegment.intersectLine([extendedSecondLineSegment.start.x, extendedSecondLineSegment.start.y], [extendedSecondLineSegment.end.x, extendedSecondLineSegment.end.y], [proposedFirstLineSegment.start.x, proposedFirstLineSegment.start.y], [proposedFirstLineSegment.end.x, proposedFirstLineSegment.end.y]);
595
+ const proposedIntersectionPoint = lineSegment.intersectLine([extendedSecondLineSegment.start.x, extendedSecondLineSegment.start.y], [extendedSecondLineSegment.end.x, extendedSecondLineSegment.end.y], [firstLineSegment.start.x, firstLineSegment.start.y], [firstLineSegment.end.x, firstLineSegment.end.y]);
589
596
  const wouldPutThroughShortAxis = !proposedIntersectionPoint;
590
597
  return wouldPutThroughShortAxis;
591
598
  };
@@ -650,6 +657,9 @@ class BidirectionalTool extends base_1.AnnotationTool {
650
657
  core_1.utilities.indexWithinDimensions(index3, dimensions) &&
651
658
  core_1.utilities.indexWithinDimensions(index4, dimensions));
652
659
  };
660
+ this._getSignedAngle = (vector1, vector2) => {
661
+ return Math.atan2(vector1[0] * vector2[1] - vector1[1] * vector2[0], vector1[0] * vector2[0] + vector1[1] * vector2[1]);
662
+ };
653
663
  this._throttledCalculateCachedStats = (0, throttle_1.default)(this._calculateCachedStats, 100, { trailing: true });
654
664
  }
655
665
  addNewAnnotation(evt) {
@@ -1 +1 @@
1
- {"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BidirectionalTool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/BidirectionalTool.ts"],"names":[],"mappings":"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"}
@@ -27,17 +27,18 @@ declare class BidirectionalTool extends AnnotationTool {
27
27
  _mouseUpCallback: (evt: EventTypes.MouseUpEventType | EventTypes.MouseClickEventType) => void;
28
28
  _mouseDragDrawCallback: (evt: MouseMoveEventType | MouseDragEventType) => void;
29
29
  _mouseDragModifyCallback: (evt: MouseDragEventType) => void;
30
- _mouseDragModifyHandle: (evt: any) => void;
30
+ _handleDragModify: (evt: any) => void;
31
31
  cancel: (element: HTMLDivElement) => any;
32
32
  _activateDraw: (element: any) => void;
33
33
  _deactivateDraw: (element: any) => void;
34
34
  _activateModify: (element: any) => void;
35
35
  _deactivateModify: (element: any) => void;
36
36
  renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean;
37
- _movingLongAxisWouldPutItThroughShortAxis: (proposedFirstLineSegment: any, secondLineSegment: any) => boolean;
37
+ _movingLongAxisWouldPutItThroughShortAxis: (firstLineSegment: any, secondLineSegment: any) => boolean;
38
38
  _getTextLines: (data: any, targetId: any) => string[];
39
39
  _calculateLength(pos1: any, pos2: any): number;
40
40
  _calculateCachedStats: (annotation: any, renderingEngine: any, enabledElement: any) => any;
41
41
  _isInsideVolume: (index1: any, index2: any, index3: any, index4: any, dimensions: any) => boolean;
42
+ _getSignedAngle: (vector1: any, vector2: any) => number;
42
43
  }
43
44
  export default BidirectionalTool;