@cornerstonejs/tools 0.26.5 → 0.27.0

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.
@@ -0,0 +1,13 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ import BaseTool from './BaseTool';
3
+ import { Annotation, Annotations, SVGDrawingHelper } from '../../types';
4
+ import { StyleSpecifier } from '../../types/AnnotationStyle';
5
+ declare abstract class AnnotationDisplayTool extends BaseTool {
6
+ static toolName: any;
7
+ abstract renderAnnotation(enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper): any;
8
+ filterInteractableAnnotationsForElement(element: HTMLDivElement, annotations: Annotations): Annotations | undefined;
9
+ onImageSpacingCalibrated: (evt: Types.EventTypes.ImageSpacingCalibratedEvent) => void;
10
+ protected getReferencedImageId(viewport: Types.IStackViewport | Types.IVolumeViewport, worldPos: Types.Point3, viewPlaneNormal: Types.Point3, viewUp: Types.Point3): string;
11
+ getStyle(property: string, specifications: StyleSpecifier, annotation?: Annotation): unknown;
12
+ }
13
+ export default AnnotationDisplayTool;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const core_1 = require("@cornerstonejs/core");
7
+ const gl_matrix_1 = require("gl-matrix");
8
+ const BaseTool_1 = __importDefault(require("./BaseTool"));
9
+ const annotationState_1 = require("../../stateManagement/annotation/annotationState");
10
+ const triggerAnnotationRender_1 = __importDefault(require("../../utilities/triggerAnnotationRender"));
11
+ const filterAnnotationsForDisplay_1 = __importDefault(require("../../utilities/planar/filterAnnotationsForDisplay"));
12
+ const helpers_1 = require("../../stateManagement/annotation/config/helpers");
13
+ const config_1 = require("../../stateManagement/annotation/config");
14
+ class AnnotationDisplayTool extends BaseTool_1.default {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.onImageSpacingCalibrated = (evt) => {
18
+ const { element, rowScale, columnScale, imageId, imageData: calibratedImageData, worldToIndex: noneCalibratedWorldToIndex, } = evt.detail;
19
+ const { viewport } = (0, core_1.getEnabledElement)(element);
20
+ if (viewport instanceof core_1.VolumeViewport) {
21
+ throw new Error('Cannot calibrate a volume viewport');
22
+ }
23
+ const calibratedIndexToWorld = calibratedImageData.getIndexToWorld();
24
+ const imageURI = core_1.utilities.imageIdToURI(imageId);
25
+ const stateManager = (0, annotationState_1.getViewportSpecificAnnotationManager)(element);
26
+ const framesOfReference = stateManager.getFramesOfReference();
27
+ framesOfReference.forEach((frameOfReference) => {
28
+ const frameOfReferenceSpecificAnnotations = stateManager.getFrameOfReferenceAnnotations(frameOfReference);
29
+ const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[this.getToolName()];
30
+ if (!toolSpecificAnnotations || !toolSpecificAnnotations.length) {
31
+ return;
32
+ }
33
+ toolSpecificAnnotations.forEach((annotation) => {
34
+ const referencedImageURI = core_1.utilities.imageIdToURI(annotation.metadata.referencedImageId);
35
+ if (referencedImageURI === imageURI) {
36
+ annotation.invalidated = true;
37
+ annotation.data.cachedStats = {};
38
+ annotation.data.handles.points = annotation.data.handles.points.map((point) => {
39
+ const p = gl_matrix_1.vec4.fromValues(...point, 1);
40
+ const pCalibrated = gl_matrix_1.vec4.fromValues(0, 0, 0, 1);
41
+ const nonCalibratedIndexVec4 = gl_matrix_1.vec4.create();
42
+ gl_matrix_1.vec4.transformMat4(nonCalibratedIndexVec4, p, noneCalibratedWorldToIndex);
43
+ const calibratedIndex = [
44
+ columnScale * nonCalibratedIndexVec4[0],
45
+ rowScale * nonCalibratedIndexVec4[1],
46
+ nonCalibratedIndexVec4[2],
47
+ ];
48
+ gl_matrix_1.vec4.transformMat4(pCalibrated, gl_matrix_1.vec4.fromValues(calibratedIndex[0], calibratedIndex[1], calibratedIndex[2], 1), calibratedIndexToWorld);
49
+ return pCalibrated.slice(0, 3);
50
+ });
51
+ }
52
+ });
53
+ (0, triggerAnnotationRender_1.default)(element);
54
+ });
55
+ };
56
+ }
57
+ filterInteractableAnnotationsForElement(element, annotations) {
58
+ if (!annotations || !annotations.length) {
59
+ return;
60
+ }
61
+ const enabledElement = (0, core_1.getEnabledElement)(element);
62
+ const { viewport } = enabledElement;
63
+ return (0, filterAnnotationsForDisplay_1.default)(viewport, annotations);
64
+ }
65
+ getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp) {
66
+ const targetId = this.getTargetId(viewport);
67
+ let referencedImageId;
68
+ if (viewport instanceof core_1.StackViewport) {
69
+ referencedImageId = targetId.split('imageId:')[1];
70
+ }
71
+ else {
72
+ const volumeId = targetId.split('volumeId:')[1];
73
+ const imageVolume = core_1.cache.getVolume(volumeId);
74
+ referencedImageId = core_1.utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
75
+ }
76
+ return referencedImageId;
77
+ }
78
+ getStyle(property, specifications, annotation) {
79
+ return (0, helpers_1.getStyleProperty)(property, specifications, (0, config_1.getState)(annotation), this.mode);
80
+ }
81
+ }
82
+ AnnotationDisplayTool.toolName = 'AnnotationDisplayTool';
83
+ exports.default = AnnotationDisplayTool;
84
+ //# sourceMappingURL=AnnotationDisplayTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,16 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- import BaseTool from './BaseTool';
3
- import { Annotation, Annotations, EventTypes, ToolHandle, InteractionTypes, SVGDrawingHelper } from '../../types';
2
+ import AnnotationDisplayTool from './AnnotationDisplayTool';
3
+ import { Annotation, Annotations, EventTypes, ToolHandle, InteractionTypes } from '../../types';
4
4
  import { StyleSpecifier } from '../../types/AnnotationStyle';
5
- declare abstract class AnnotationTool extends BaseTool {
5
+ declare abstract class AnnotationTool extends AnnotationDisplayTool {
6
6
  static toolName: any;
7
7
  abstract addNewAnnotation(evt: EventTypes.MouseDownActivateEventType, interactionType: InteractionTypes): Annotation;
8
- abstract renderAnnotation(enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper): any;
9
8
  abstract cancel(element: HTMLDivElement): any;
10
9
  abstract handleSelectedCallback(evt: EventTypes.MouseDownEventType, annotation: Annotation, handle: ToolHandle, interactionType: InteractionTypes): void;
11
10
  abstract toolSelectedCallback(evt: EventTypes.MouseDownEventType, annotation: Annotation, interactionType: InteractionTypes): void;
12
11
  abstract isPointNearTool(element: HTMLDivElement, annotation: Annotation, canvasCoords: Types.Point2, proximity: number, interactionType: string): boolean;
13
- filterInteractableAnnotationsForElement(element: HTMLDivElement, annotations: Annotations): Annotations | undefined;
14
12
  mouseMoveCallback: (evt: EventTypes.MouseMoveEventType, filteredAnnotations?: Annotations) => boolean;
15
- onImageSpacingCalibrated: (evt: Types.EventTypes.ImageSpacingCalibratedEvent) => void;
16
13
  getHandleNearImagePoint(element: HTMLDivElement, annotation: Annotation, canvasCoords: Types.Point2, proximity: number): ToolHandle | undefined;
17
- protected getReferencedImageId(viewport: Types.IStackViewport | Types.IVolumeViewport, worldPos: Types.Point3, viewPlaneNormal: Types.Point3, viewUp: Types.Point3): string;
18
- getStyle(property: string, specifications: StyleSpecifier, annotation?: Annotation): unknown;
19
14
  getLinkedTextBoxStyle(specifications: StyleSpecifier, annotation?: Annotation): Record<string, unknown>;
20
15
  private _imagePointNearToolOrHandle;
21
16
  }
@@ -5,15 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const core_1 = require("@cornerstonejs/core");
7
7
  const gl_matrix_1 = require("gl-matrix");
8
- const BaseTool_1 = __importDefault(require("./BaseTool"));
8
+ const AnnotationDisplayTool_1 = __importDefault(require("./AnnotationDisplayTool"));
9
9
  const annotationLocking_1 = require("../../stateManagement/annotation/annotationLocking");
10
10
  const annotationVisibility_1 = require("../../stateManagement/annotation/annotationVisibility");
11
- const annotationState_1 = require("../../stateManagement/annotation/annotationState");
12
- const triggerAnnotationRender_1 = __importDefault(require("../../utilities/triggerAnnotationRender"));
13
- const filterAnnotationsForDisplay_1 = __importDefault(require("../../utilities/planar/filterAnnotationsForDisplay"));
14
- const helpers_1 = require("../../stateManagement/annotation/config/helpers");
15
- const config_1 = require("../../stateManagement/annotation/config");
16
- class AnnotationTool extends BaseTool_1.default {
11
+ class AnnotationTool extends AnnotationDisplayTool_1.default {
17
12
  constructor() {
18
13
  super(...arguments);
19
14
  this.mouseMoveCallback = (evt, filteredAnnotations) => {
@@ -46,53 +41,6 @@ class AnnotationTool extends BaseTool_1.default {
46
41
  }
47
42
  return annotationsNeedToBeRedrawn;
48
43
  };
49
- this.onImageSpacingCalibrated = (evt) => {
50
- const { element, rowScale, columnScale, imageId, imageData: calibratedImageData, worldToIndex: noneCalibratedWorldToIndex, } = evt.detail;
51
- const { viewport } = (0, core_1.getEnabledElement)(element);
52
- if (viewport instanceof core_1.VolumeViewport) {
53
- throw new Error('Cannot calibrate a volume viewport');
54
- }
55
- const calibratedIndexToWorld = calibratedImageData.getIndexToWorld();
56
- const imageURI = core_1.utilities.imageIdToURI(imageId);
57
- const stateManager = (0, annotationState_1.getViewportSpecificAnnotationManager)(element);
58
- const framesOfReference = stateManager.getFramesOfReference();
59
- framesOfReference.forEach((frameOfReference) => {
60
- const frameOfReferenceSpecificAnnotations = stateManager.getFrameOfReferenceAnnotations(frameOfReference);
61
- const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[this.getToolName()];
62
- if (!toolSpecificAnnotations || !toolSpecificAnnotations.length) {
63
- return;
64
- }
65
- toolSpecificAnnotations.forEach((annotation) => {
66
- const referencedImageURI = core_1.utilities.imageIdToURI(annotation.metadata.referencedImageId);
67
- if (referencedImageURI === imageURI) {
68
- annotation.invalidated = true;
69
- annotation.data.cachedStats = {};
70
- annotation.data.handles.points = annotation.data.handles.points.map((point) => {
71
- const p = gl_matrix_1.vec4.fromValues(...point, 1);
72
- const pCalibrated = gl_matrix_1.vec4.fromValues(0, 0, 0, 1);
73
- const nonCalibratedIndexVec4 = gl_matrix_1.vec4.create();
74
- gl_matrix_1.vec4.transformMat4(nonCalibratedIndexVec4, p, noneCalibratedWorldToIndex);
75
- const calibratedIndex = [
76
- columnScale * nonCalibratedIndexVec4[0],
77
- rowScale * nonCalibratedIndexVec4[1],
78
- nonCalibratedIndexVec4[2],
79
- ];
80
- gl_matrix_1.vec4.transformMat4(pCalibrated, gl_matrix_1.vec4.fromValues(calibratedIndex[0], calibratedIndex[1], calibratedIndex[2], 1), calibratedIndexToWorld);
81
- return pCalibrated.slice(0, 3);
82
- });
83
- }
84
- });
85
- (0, triggerAnnotationRender_1.default)(element);
86
- });
87
- };
88
- }
89
- filterInteractableAnnotationsForElement(element, annotations) {
90
- if (!annotations || !annotations.length) {
91
- return;
92
- }
93
- const enabledElement = (0, core_1.getEnabledElement)(element);
94
- const { viewport } = enabledElement;
95
- return (0, filterAnnotationsForDisplay_1.default)(viewport, annotations);
96
44
  }
97
45
  getHandleNearImagePoint(element, annotation, canvasCoords, proximity) {
98
46
  const enabledElement = (0, core_1.getEnabledElement)(element);
@@ -126,22 +74,6 @@ class AnnotationTool extends BaseTool_1.default {
126
74
  }
127
75
  data.handles.activeHandleIndex = null;
128
76
  }
129
- getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp) {
130
- const targetId = this.getTargetId(viewport);
131
- let referencedImageId;
132
- if (viewport instanceof core_1.StackViewport) {
133
- referencedImageId = targetId.split('imageId:')[1];
134
- }
135
- else {
136
- const volumeId = targetId.split('volumeId:')[1];
137
- const imageVolume = core_1.cache.getVolume(volumeId);
138
- referencedImageId = core_1.utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
139
- }
140
- return referencedImageId;
141
- }
142
- getStyle(property, specifications, annotation) {
143
- return (0, helpers_1.getStyleProperty)(property, specifications, (0, config_1.getState)(annotation), this.mode);
144
- }
145
77
  getLinkedTextBoxStyle(specifications, annotation) {
146
78
  return {
147
79
  fontFamily: this.getStyle('textBoxFontFamily', specifications, annotation),
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwD;AAGxD,yCAAiC;AAEjC,oFAA4D;AAC5D,0FAAwF;AACxF,gGAA4F;AAoB5F,MAAe,cAAe,SAAQ,+BAAqB;IAA3D;;QA8ES,sBAAiB,GAAG,CACzB,GAAkC,EAClC,mBAAiC,EACxB,EAAE;YACX,IAAI,CAAC,mBAAmB,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;YAC1C,IAAI,0BAA0B,GAAG,KAAK,CAAC;YAEvC,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE;gBAE5C,IACE,IAAA,sCAAkB,EAAC,UAAU,CAAC;oBAC9B,CAAC,IAAA,0CAAmB,EAAC,UAAU,CAAC,aAAa,CAAC,EAC9C;oBACA,SAAS;iBACV;gBAED,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;gBAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO;oBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB;oBAChC,CAAC,CAAC,SAAS,CAAC;gBAId,MAAM,IAAI,GAAG,IAAI,CAAC,2BAA2B,CAC3C,OAAO,EACP,UAAU,EACV,YAAY,EACZ,CAAC,CACF,CAAC;gBAEF,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBACnE,MAAM,0BAA0B,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC;gBACnE,IAAI,0BAA0B,IAAI,0BAA0B,EAAE;oBAC5D,UAAU,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;oBACjD,0BAA0B,GAAG,IAAI,CAAC;iBACnC;qBAAM,IACL,IAAI,CAAC,OAAO;oBACZ,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,mBAAmB,EACtD;oBAEA,0BAA0B,GAAG,IAAI,CAAC;iBACnC;aACF;YAED,OAAO,0BAA0B,CAAC;QACpC,CAAC,CAAC;IAoJJ,CAAC;IArIC,uBAAuB,CACrB,OAAuB,EACvB,UAAsB,EACtB,YAA0B,EAC1B,SAAiB;QAEjB,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;QAErC,IAAI,gBAAgB,EAAE;YACpB,MAAM,iBAAiB,GAAG;gBACxB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACzD,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBAC3D,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAC/D,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC;aAClE,CAAC;YAEF,IACE,YAAY,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/C,YAAY,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnD,YAAY,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/C,YAAY,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,EACnD;gBACA,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBACtC,OAAO,OAAO,CAAC;aAChB;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,0BAA0B,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEjE,MAAM,IAAI,GACR,gBAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC,GAAG,SAAS,CAAC;YAEtE,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACxC,CAAC;IAYM,qBAAqB,CAC1B,cAA8B,EAC9B,UAAuB;QAKvB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CACvB,mBAAmB,EACnB,cAAc,EACd,UAAU,CACX;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,EAAE,UAAU,CAAC;YACtE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC;YAChE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC;YAClE,UAAU,EAAE,IAAI,CAAC,QAAQ,CACvB,mBAAmB,EACnB,cAAc,EACd,UAAU,CACX;YACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CACtB,sBAAsB,EACtB,cAAc,EACd,UAAU,CACX;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CACrB,qBAAqB,EACrB,cAAc,EACd,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IAYO,2BAA2B,CACjC,OAAuB,EACvB,UAAsB,EACtB,YAA0B,EAC1B,SAAiB;QAGjB,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CACvD,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,IAAI,oBAAoB,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;QAGD,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC5C,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,CACR,CAAC;QAEF,IAAI,iBAAiB,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AAED,cAAc,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AAC3C,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ import BaseTool from './BaseTool';
3
+ import { Annotation, Annotations, SVGDrawingHelper } from '../../types';
4
+ import { StyleSpecifier } from '../../types/AnnotationStyle';
5
+ declare abstract class AnnotationDisplayTool extends BaseTool {
6
+ static toolName: any;
7
+ abstract renderAnnotation(enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper): any;
8
+ filterInteractableAnnotationsForElement(element: HTMLDivElement, annotations: Annotations): Annotations | undefined;
9
+ onImageSpacingCalibrated: (evt: Types.EventTypes.ImageSpacingCalibratedEvent) => void;
10
+ protected getReferencedImageId(viewport: Types.IStackViewport | Types.IVolumeViewport, worldPos: Types.Point3, viewPlaneNormal: Types.Point3, viewUp: Types.Point3): string;
11
+ getStyle(property: string, specifications: StyleSpecifier, annotation?: Annotation): unknown;
12
+ }
13
+ export default AnnotationDisplayTool;
@@ -0,0 +1,79 @@
1
+ import { utilities, getEnabledElement, VolumeViewport, StackViewport, cache, } from '@cornerstonejs/core';
2
+ import { vec4 } from 'gl-matrix';
3
+ import BaseTool from './BaseTool';
4
+ import { getViewportSpecificAnnotationManager } from '../../stateManagement/annotation/annotationState';
5
+ import triggerAnnotationRender from '../../utilities/triggerAnnotationRender';
6
+ import filterAnnotationsForDisplay from '../../utilities/planar/filterAnnotationsForDisplay';
7
+ import { getStyleProperty } from '../../stateManagement/annotation/config/helpers';
8
+ import { getState } from '../../stateManagement/annotation/config';
9
+ class AnnotationDisplayTool extends BaseTool {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.onImageSpacingCalibrated = (evt) => {
13
+ const { element, rowScale, columnScale, imageId, imageData: calibratedImageData, worldToIndex: noneCalibratedWorldToIndex, } = evt.detail;
14
+ const { viewport } = getEnabledElement(element);
15
+ if (viewport instanceof VolumeViewport) {
16
+ throw new Error('Cannot calibrate a volume viewport');
17
+ }
18
+ const calibratedIndexToWorld = calibratedImageData.getIndexToWorld();
19
+ const imageURI = utilities.imageIdToURI(imageId);
20
+ const stateManager = getViewportSpecificAnnotationManager(element);
21
+ const framesOfReference = stateManager.getFramesOfReference();
22
+ framesOfReference.forEach((frameOfReference) => {
23
+ const frameOfReferenceSpecificAnnotations = stateManager.getFrameOfReferenceAnnotations(frameOfReference);
24
+ const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[this.getToolName()];
25
+ if (!toolSpecificAnnotations || !toolSpecificAnnotations.length) {
26
+ return;
27
+ }
28
+ toolSpecificAnnotations.forEach((annotation) => {
29
+ const referencedImageURI = utilities.imageIdToURI(annotation.metadata.referencedImageId);
30
+ if (referencedImageURI === imageURI) {
31
+ annotation.invalidated = true;
32
+ annotation.data.cachedStats = {};
33
+ annotation.data.handles.points = annotation.data.handles.points.map((point) => {
34
+ const p = vec4.fromValues(...point, 1);
35
+ const pCalibrated = vec4.fromValues(0, 0, 0, 1);
36
+ const nonCalibratedIndexVec4 = vec4.create();
37
+ vec4.transformMat4(nonCalibratedIndexVec4, p, noneCalibratedWorldToIndex);
38
+ const calibratedIndex = [
39
+ columnScale * nonCalibratedIndexVec4[0],
40
+ rowScale * nonCalibratedIndexVec4[1],
41
+ nonCalibratedIndexVec4[2],
42
+ ];
43
+ vec4.transformMat4(pCalibrated, vec4.fromValues(calibratedIndex[0], calibratedIndex[1], calibratedIndex[2], 1), calibratedIndexToWorld);
44
+ return pCalibrated.slice(0, 3);
45
+ });
46
+ }
47
+ });
48
+ triggerAnnotationRender(element);
49
+ });
50
+ };
51
+ }
52
+ filterInteractableAnnotationsForElement(element, annotations) {
53
+ if (!annotations || !annotations.length) {
54
+ return;
55
+ }
56
+ const enabledElement = getEnabledElement(element);
57
+ const { viewport } = enabledElement;
58
+ return filterAnnotationsForDisplay(viewport, annotations);
59
+ }
60
+ getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp) {
61
+ const targetId = this.getTargetId(viewport);
62
+ let referencedImageId;
63
+ if (viewport instanceof StackViewport) {
64
+ referencedImageId = targetId.split('imageId:')[1];
65
+ }
66
+ else {
67
+ const volumeId = targetId.split('volumeId:')[1];
68
+ const imageVolume = cache.getVolume(volumeId);
69
+ referencedImageId = utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
70
+ }
71
+ return referencedImageId;
72
+ }
73
+ getStyle(property, specifications, annotation) {
74
+ return getStyleProperty(property, specifications, getState(annotation), this.mode);
75
+ }
76
+ }
77
+ AnnotationDisplayTool.toolName = 'AnnotationDisplayTool';
78
+ export default AnnotationDisplayTool;
79
+ //# sourceMappingURL=AnnotationDisplayTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,GACN,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,oCAAoC,EAAE,MAAM,kDAAkD,CAAC;AAExG,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,2BAA2B,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAanE,MAAe,qBAAsB,SAAQ,QAAQ;IAArD;;QAoDS,6BAAwB,GAAG,CAChC,GAAiD,EACjD,EAAE;YACF,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,0BAA0B,GACzC,GAAG,GAAG,CAAC,MAAM,CAAC;YAEf,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,QAAQ,YAAY,cAAc,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACvD;YAED,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,eAAe,EAAE,CAAC;YAErE,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,oCAAoC,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,iBAAiB,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;YAG9D,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;gBAC7C,MAAM,mCAAmC,GACvC,YAAY,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;gBAEhE,MAAM,uBAAuB,GAC3B,mCAAmC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAE1D,IAAI,CAAC,uBAAuB,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;oBAC/D,OAAO;iBACR;gBAGD,uBAAuB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBAE7C,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAC/C,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CACtC,CAAC;oBAEF,IAAI,kBAAkB,KAAK,QAAQ,EAAE;wBAGnC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC9B,UAAU,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;wBAMjC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CACjE,CAAC,KAAK,EAAE,EAAE;4BACR,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BAChD,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;4BAC7C,IAAI,CAAC,aAAa,CAChB,sBAAsB,EACtB,CAAC,EACD,0BAA0B,CAC3B,CAAC;4BACF,MAAM,eAAe,GAAG;gCACtB,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC;gCACvC,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC;gCACpC,sBAAsB,CAAC,CAAC,CAAC;6BAC1B,CAAC;4BAEF,IAAI,CAAC,aAAa,CAChB,WAAW,EACX,IAAI,CAAC,UAAU,CACb,eAAe,CAAC,CAAC,CAAC,EAClB,eAAe,CAAC,CAAC,CAAC,EAClB,eAAe,CAAC,CAAC,CAAC,EAClB,CAAC,CACF,EACD,sBAAsB,CACvB,CAAC;4BAEF,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAC;wBACjD,CAAC,CACF,CAAC;qBACH;gBACH,CAAC,CAAC,CAAC;gBAEH,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAsDJ,CAAC;IArKC,uCAAuC,CACrC,OAAuB,EACvB,WAAwB;QAExB,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACvC,OAAO;SACR;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,OAAO,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAqGS,oBAAoB,CAC5B,QAAsD,EACtD,QAAsB,EACtB,eAA6B,EAC7B,MAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,iBAAiB,CAAC;QAEtB,IAAI,QAAQ,YAAY,aAAa,EAAE;YACrC,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE9C,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAC7C,WAAW,EACX,QAAQ,EACR,eAAe,EACf,MAAM,CACP,CAAC;SACH;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAeM,QAAQ,CACb,QAAgB,EAChB,cAA8B,EAC9B,UAAuB;QAEvB,OAAO,gBAAgB,CACrB,QAAQ,EACR,cAAc,EACd,QAAQ,CAAC,UAAU,CAAC,EACpB,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;CACF;AAED,qBAAqB,CAAC,QAAQ,GAAG,uBAAuB,CAAC;AACzD,eAAe,qBAAqB,CAAC"}
@@ -1,21 +1,16 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- import BaseTool from './BaseTool';
3
- import { Annotation, Annotations, EventTypes, ToolHandle, InteractionTypes, SVGDrawingHelper } from '../../types';
2
+ import AnnotationDisplayTool from './AnnotationDisplayTool';
3
+ import { Annotation, Annotations, EventTypes, ToolHandle, InteractionTypes } from '../../types';
4
4
  import { StyleSpecifier } from '../../types/AnnotationStyle';
5
- declare abstract class AnnotationTool extends BaseTool {
5
+ declare abstract class AnnotationTool extends AnnotationDisplayTool {
6
6
  static toolName: any;
7
7
  abstract addNewAnnotation(evt: EventTypes.MouseDownActivateEventType, interactionType: InteractionTypes): Annotation;
8
- abstract renderAnnotation(enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper): any;
9
8
  abstract cancel(element: HTMLDivElement): any;
10
9
  abstract handleSelectedCallback(evt: EventTypes.MouseDownEventType, annotation: Annotation, handle: ToolHandle, interactionType: InteractionTypes): void;
11
10
  abstract toolSelectedCallback(evt: EventTypes.MouseDownEventType, annotation: Annotation, interactionType: InteractionTypes): void;
12
11
  abstract isPointNearTool(element: HTMLDivElement, annotation: Annotation, canvasCoords: Types.Point2, proximity: number, interactionType: string): boolean;
13
- filterInteractableAnnotationsForElement(element: HTMLDivElement, annotations: Annotations): Annotations | undefined;
14
12
  mouseMoveCallback: (evt: EventTypes.MouseMoveEventType, filteredAnnotations?: Annotations) => boolean;
15
- onImageSpacingCalibrated: (evt: Types.EventTypes.ImageSpacingCalibratedEvent) => void;
16
13
  getHandleNearImagePoint(element: HTMLDivElement, annotation: Annotation, canvasCoords: Types.Point2, proximity: number): ToolHandle | undefined;
17
- protected getReferencedImageId(viewport: Types.IStackViewport | Types.IVolumeViewport, worldPos: Types.Point3, viewPlaneNormal: Types.Point3, viewUp: Types.Point3): string;
18
- getStyle(property: string, specifications: StyleSpecifier, annotation?: Annotation): unknown;
19
14
  getLinkedTextBoxStyle(specifications: StyleSpecifier, annotation?: Annotation): Record<string, unknown>;
20
15
  private _imagePointNearToolOrHandle;
21
16
  }
@@ -1,14 +1,9 @@
1
- import { utilities, getEnabledElement, VolumeViewport, StackViewport, cache, } from '@cornerstonejs/core';
2
- import { vec4, vec2 } from 'gl-matrix';
3
- import BaseTool from './BaseTool';
1
+ import { getEnabledElement } from '@cornerstonejs/core';
2
+ import { vec2 } from 'gl-matrix';
3
+ import AnnotationDisplayTool from './AnnotationDisplayTool';
4
4
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
5
5
  import { isAnnotationVisible } from '../../stateManagement/annotation/annotationVisibility';
6
- import { getViewportSpecificAnnotationManager } from '../../stateManagement/annotation/annotationState';
7
- import triggerAnnotationRender from '../../utilities/triggerAnnotationRender';
8
- import filterAnnotationsForDisplay from '../../utilities/planar/filterAnnotationsForDisplay';
9
- import { getStyleProperty } from '../../stateManagement/annotation/config/helpers';
10
- import { getState } from '../../stateManagement/annotation/config';
11
- class AnnotationTool extends BaseTool {
6
+ class AnnotationTool extends AnnotationDisplayTool {
12
7
  constructor() {
13
8
  super(...arguments);
14
9
  this.mouseMoveCallback = (evt, filteredAnnotations) => {
@@ -41,53 +36,6 @@ class AnnotationTool extends BaseTool {
41
36
  }
42
37
  return annotationsNeedToBeRedrawn;
43
38
  };
44
- this.onImageSpacingCalibrated = (evt) => {
45
- const { element, rowScale, columnScale, imageId, imageData: calibratedImageData, worldToIndex: noneCalibratedWorldToIndex, } = evt.detail;
46
- const { viewport } = getEnabledElement(element);
47
- if (viewport instanceof VolumeViewport) {
48
- throw new Error('Cannot calibrate a volume viewport');
49
- }
50
- const calibratedIndexToWorld = calibratedImageData.getIndexToWorld();
51
- const imageURI = utilities.imageIdToURI(imageId);
52
- const stateManager = getViewportSpecificAnnotationManager(element);
53
- const framesOfReference = stateManager.getFramesOfReference();
54
- framesOfReference.forEach((frameOfReference) => {
55
- const frameOfReferenceSpecificAnnotations = stateManager.getFrameOfReferenceAnnotations(frameOfReference);
56
- const toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[this.getToolName()];
57
- if (!toolSpecificAnnotations || !toolSpecificAnnotations.length) {
58
- return;
59
- }
60
- toolSpecificAnnotations.forEach((annotation) => {
61
- const referencedImageURI = utilities.imageIdToURI(annotation.metadata.referencedImageId);
62
- if (referencedImageURI === imageURI) {
63
- annotation.invalidated = true;
64
- annotation.data.cachedStats = {};
65
- annotation.data.handles.points = annotation.data.handles.points.map((point) => {
66
- const p = vec4.fromValues(...point, 1);
67
- const pCalibrated = vec4.fromValues(0, 0, 0, 1);
68
- const nonCalibratedIndexVec4 = vec4.create();
69
- vec4.transformMat4(nonCalibratedIndexVec4, p, noneCalibratedWorldToIndex);
70
- const calibratedIndex = [
71
- columnScale * nonCalibratedIndexVec4[0],
72
- rowScale * nonCalibratedIndexVec4[1],
73
- nonCalibratedIndexVec4[2],
74
- ];
75
- vec4.transformMat4(pCalibrated, vec4.fromValues(calibratedIndex[0], calibratedIndex[1], calibratedIndex[2], 1), calibratedIndexToWorld);
76
- return pCalibrated.slice(0, 3);
77
- });
78
- }
79
- });
80
- triggerAnnotationRender(element);
81
- });
82
- };
83
- }
84
- filterInteractableAnnotationsForElement(element, annotations) {
85
- if (!annotations || !annotations.length) {
86
- return;
87
- }
88
- const enabledElement = getEnabledElement(element);
89
- const { viewport } = enabledElement;
90
- return filterAnnotationsForDisplay(viewport, annotations);
91
39
  }
92
40
  getHandleNearImagePoint(element, annotation, canvasCoords, proximity) {
93
41
  const enabledElement = getEnabledElement(element);
@@ -121,22 +69,6 @@ class AnnotationTool extends BaseTool {
121
69
  }
122
70
  data.handles.activeHandleIndex = null;
123
71
  }
124
- getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp) {
125
- const targetId = this.getTargetId(viewport);
126
- let referencedImageId;
127
- if (viewport instanceof StackViewport) {
128
- referencedImageId = targetId.split('imageId:')[1];
129
- }
130
- else {
131
- const volumeId = targetId.split('volumeId:')[1];
132
- const imageVolume = cache.getVolume(volumeId);
133
- referencedImageId = utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal, viewUp);
134
- }
135
- return referencedImageId;
136
- }
137
- getStyle(property, specifications, annotation) {
138
- return getStyleProperty(property, specifications, getState(annotation), this.mode);
139
- }
140
72
  getLinkedTextBoxStyle(specifications, annotation) {
141
73
  return {
142
74
  fontFamily: this.getStyle('textBoxFontFamily', specifications, annotation),
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationTool.ts"],"names":[],"mappings":"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"}