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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x 15x | import type { Types } from '@cornerstonejs/core';
import _getHash from './_getHash';
import _setNewAttributesIfValid from './_setNewAttributesIfValid';
import _setAttributesIfNecessary from './_setAttributesIfNecessary';
import { SVGDrawingHelper } from '../types';
function drawHandles(
svgDrawingHelper: SVGDrawingHelper,
annotationUID: string,
handleGroupUID: string,
handlePoints: Array<Types.Point2>,
options = {}
): void {
const { color, handleRadius, width, lineWidth, fill, type } = Object.assign(
{
color: 'dodgerblue',
handleRadius: '6',
width: '2',
lineWidth: undefined,
fill: 'transparent',
type: 'circle',
},
options
);
// for supporting both lineWidth and width options
const strokeWidth = lineWidth || width;
for (let i = 0; i < handlePoints.length; i++) {
const handle = handlePoints[i];
// variable for the namespace
const svgns = 'http://www.w3.org/2000/svg';
const svgNodeHash = _getHash(
annotationUID,
'handle',
`hg-${handleGroupUID}-index-${i}`
);
let attributes;
Eif (type === 'circle') {
attributes = {
cx: `${handle[0]}`,
cy: `${handle[1]}`,
r: handleRadius,
stroke: color,
fill,
'stroke-width': strokeWidth,
};
} else if (type === 'rect') {
const handleRadiusFloat = parseFloat(handleRadius);
const side = handleRadiusFloat * 1.5;
const x = handle[0] - side * 0.5;
const y = handle[1] - side * 0.5;
attributes = {
x: `${x}`,
y: `${y}`,
width: `${side}`,
height: `${side}`,
stroke: color,
fill,
'stroke-width': strokeWidth,
rx: `${side * 0.1}`,
};
} else {
throw new Error(`Unsupported handle type: ${type}`);
}
const existingHandleElement = svgDrawingHelper.getSvgNode(svgNodeHash);
Iif (existingHandleElement) {
_setAttributesIfNecessary(attributes, existingHandleElement);
svgDrawingHelper.setNodeTouched(svgNodeHash);
} else {
const newHandleElement = document.createElementNS(svgns, type);
_setNewAttributesIfValid(attributes, newHandleElement);
svgDrawingHelper.appendNode(newHandleElement, svgNodeHash);
}
}
}
export default drawHandles;
|