UNPKG

our-medical

Version:

medical image vue component

210 lines (209 loc) 7.43 kB
import { type Types as coreTypes } from '@cornerstonejs/core'; import { AnnotationTool, type Types as toolsTypes } from '@cornerstonejs/tools'; type CircleAnnotation = { annotationUID: string; data: { handles: { points: coreTypes.Point3[]; }; }; metadata: { viewPlaneNormal: coreTypes.Point3; viewUp: coreTypes.Point3; }; } & toolsTypes.Annotation; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @class ManualRegistrationTool * @extends {AnnotationTool} */ declare class ManualRegistrationTool extends AnnotationTool { static toolName: string; private annotations; private activeAnnotation; private radians; private translation; private center; private volumeId; private watchStop; constructor(toolProps?: {}, defaultToolProps?: { supportedInteractionTypes: string[]; }); onSetToolActive(): void; private watchHandle; private cleanup; onSetToolDisabled: () => void; onSetToolEnabled: () => void; onSetToolPassive: () => void; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @memberof ManualRegistrationTool */ private clearAnnotations; /** * @description AnnotationTool中已定义了mouseMoveCallback处理鼠标移动时annotation的高亮状态,此处不可在使用 * mouseMoveCallback(arg: toolsTypes.EventTypes.MouseMoveEventType) {} */ /** * @description 触发在postMouseDownCallback之前 * 返回true不执行eventDispatchers/mouseEventHandlers/mouseDown.ts中对annotationTools的判断 * preMouseDownCallback(arg: toolsTypes.EventTypes.MouseDownEventType) {} */ /** * @description 触发在eventDispatchers/mouseEventHandlers/mouseDown.ts中对annotationTools的执行后 * postMouseDownCallback(arg: toolsTypes.EventTypes.MouseDownEventType) {} */ /** * @description 渲染控制环 * @author jiannan.jiao * @date 19/10/2023 * @param {coreTypes.IEnabledElement} enabledElement * @param {toolsTypes.SVGDrawingHelper} svgDrawingHelper * @memberof ManualRegistrationTool */ renderAnnotation(enabledElement: coreTypes.IEnabledElement, svgDrawingHelper: toolsTypes.SVGDrawingHelper): void; /** * @description 创建控制环的Annotation * @author jiannan.jiao * @date 19/10/2023 * @param {string} annotationUID * @param {coreTypes.IEnabledElement} enabledElement * @returns {*} * @memberof ManualRegistrationTool */ createAnnotation(annotationUID: string, enabledElement: coreTypes.IEnabledElement): CircleAnnotation; /** * @description 绘制旋转控制环 * @author jiannan.jiao * @date 19/10/2023 * @param {coreTypes.IEnabledElement} enabledElement * @param {toolsTypes.SVGDrawingHelper} svgDrawingHelper * @param {toolsTypes.Annotation} _annotation * @memberof ManualRegistrationTool */ private draw; /** * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- * ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- */ /** * @description 由于继承AnnotationTool必须定义的抽象方法 * @author jiannan.jiao * @date 19/10/2023 * @memberof ManualRegistrationTool */ addNewAnnotation: () => { metadata: { FrameOfReferenceUID: string; toolName: string; }; data: {}; }; /** * @description 由于继承AnnotationTool必须定义的抽象方法 * @author jiannan.jiao * @date 19/10/2023 * @memberof ManualRegistrationTool */ cancel(): void; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @param {HTMLDivElement} element * @param {toolsTypes.Annotation} _annotation * @param {coreTypes.Point2} canvasCoords * @param {number} proximity 记录接收到的参数,勿删 * @returns {*} * @memberof ManualRegistrationTool */ getHandleNearImagePoint(element: HTMLDivElement, _annotation: toolsTypes.Annotation, canvasCoords: coreTypes.Point2): coreTypes.Point3 | undefined; /** * @description 始终返回true使鼠标按下时能够使toolSelectedCallback响应 * @author jiannan.jiao * @date 19/10/2023 * @memberof ManualRegistrationTool */ isPointNearTool: () => boolean; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.InteractionEventType} evt * @param {toolsTypes.Annotation} annotation * @param {toolsTypes.ToolHandle} handle 记录接收到的参数,勿删 * @param {toolsTypes.InteractionTypes} interactionType 记录接收到的参数,勿删 * @memberof ManualRegistrationTool */ handleSelectedCallback(evt: toolsTypes.EventTypes.InteractionEventType, annotation: toolsTypes.Annotation): void; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.InteractionEventType} evt * @param {toolsTypes.Annotation} annotation * @param {toolsTypes.InteractionTypes} interactionType 记录接收到的参数,勿删 * @memberof ManualRegistrationTool */ toolSelectedCallback(evt: toolsTypes.EventTypes.InteractionEventType, annotation: toolsTypes.Annotation): void; /** * @description 鼠标按下后快速抬起触发 * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.MouseClickEventType} arg 记录接收到的参数,勿删 * @memberof ManualRegistrationTool */ mouseClickCallback(): void; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.MouseUpEventType} arg 记录接收到的参数,勿删 * @memberof ManualRegistrationTool */ mouseUpCallback(): void; /** * @description * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.MouseDragEventType} evt * @memberof ManualRegistrationTool */ mouseDragCallback(evt: toolsTypes.EventTypes.MouseDragEventType): void; /** * @description 计算控制环上旋转控制点和原始点位间的夹角 * @author jiannan.jiao * @date 23/10/2023 * @private * @param {coreTypes.Point2} centreOnCanvas * @param {coreTypes.Point2} originOnCanvas * @param {toolsTypes.IPoints} lastPoints * @returns {*} * @memberof ManualRegistrationTool */ private calRotateRadians; private calRotateContrlPosition; private updateOrientation; /** * @description 以平面Z轴为旋转轴旋转体积 * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.MouseDragEventType} evt * @memberof ManualRegistrationTool */ private rotateVolume; /** * @description 在平面X/Y轴方向上移动体积 * @author jiannan.jiao * @date 19/10/2023 * @param {toolsTypes.EventTypes.MouseDragEventType} evt * @memberof ManualRegistrationTool */ private moveVolume; } export default ManualRegistrationTool;