All files / packages/tools/src/utilities/math/circle getCanvasCircleCorners.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24                              10x 10x   10x 10x   10x    
import type { Types } from '@cornerstonejs/core';
import { distanceToPoint } from '../point';
import { canvasCoordinates } from './_types';
 
/**
 * It takes the canvas coordinates of the circle corners (wrapping square rectangle)
 * and returns the top left and bottom right
 * corners of it
 *
 * @param circleCanvasPoints - The coordinates of the circle in the canvas.
 * @returns An array of two points.
 */
export default function getCanvasCircleCorners(
  circleCanvasPoints: canvasCoordinates
): Array<Types.Point2> {
  const [center, end] = circleCanvasPoints;
  const radius = distanceToPoint(center, end);
 
  const topLeft = <Types.Point2>[center[0] - radius, center[1] - radius];
  const bottomRight = <Types.Point2>[center[0] + radius, center[1] + radius];
 
  return [topLeft, bottomRight];
}