our-medical
Version:
medical image vue component
210 lines (209 loc) • 7.43 kB
TypeScript
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;