@cornerstonejs/tools 1.16.6 → 1.17.1

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.
@@ -8,6 +8,6 @@ import * as cursors from './cursors';
8
8
  import * as Types from './types';
9
9
  import * as annotation from './stateManagement/annotation';
10
10
  import * as segmentation from './stateManagement/segmentation';
11
- import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
11
+ import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, OverlayGridTool } from './tools';
12
12
  import * as Enums from './enums';
13
- export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
13
+ export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
package/dist/cjs/index.js CHANGED
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.CONSTANTS = exports.Enums = exports.ToolGroupManager = exports.state = exports.Types = exports.PaintFillTool = exports.SynchronizerManager = exports.Synchronizer = exports.synchronizers = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ScaleOverlayTool = exports.ReferenceLines = exports.ReferenceCursors = exports.MagnifyTool = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.BidirectionalTool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.LengthTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.ZoomTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = exports.cancelActiveManipulations = exports.removeTool = exports.addTool = exports.destroy = exports.init = void 0;
27
- exports.cursors = exports.utilities = exports.segmentation = exports.annotation = exports.drawing = void 0;
26
+ exports.Enums = exports.ToolGroupManager = exports.state = exports.Types = exports.PaintFillTool = exports.SynchronizerManager = exports.Synchronizer = exports.synchronizers = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ScaleOverlayTool = exports.ReferenceLines = exports.ReferenceCursors = exports.MagnifyTool = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.BidirectionalTool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.OverlayGridTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.LengthTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.ZoomTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = exports.cancelActiveManipulations = exports.removeTool = exports.addTool = exports.destroy = exports.init = void 0;
27
+ exports.cursors = exports.utilities = exports.segmentation = exports.annotation = exports.drawing = exports.CONSTANTS = void 0;
28
28
  const init_1 = require("./init");
29
29
  Object.defineProperty(exports, "init", { enumerable: true, get: function () { return init_1.init; } });
30
30
  Object.defineProperty(exports, "destroy", { enumerable: true, get: function () { return init_1.destroy; } });
@@ -90,6 +90,7 @@ Object.defineProperty(exports, "ReferenceCursors", { enumerable: true, get: func
90
90
  Object.defineProperty(exports, "ReferenceLines", { enumerable: true, get: function () { return tools_1.ReferenceLines; } });
91
91
  Object.defineProperty(exports, "PaintFillTool", { enumerable: true, get: function () { return tools_1.PaintFillTool; } });
92
92
  Object.defineProperty(exports, "ScaleOverlayTool", { enumerable: true, get: function () { return tools_1.ScaleOverlayTool; } });
93
+ Object.defineProperty(exports, "OverlayGridTool", { enumerable: true, get: function () { return tools_1.OverlayGridTool; } });
93
94
  const Enums = __importStar(require("./enums"));
94
95
  exports.Enums = Enums;
95
96
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAuC;AAkErC,qFAlEO,WAAI,OAkEP;AACJ,wFAnEa,cAAO,OAmEb;AAlET,mCAQiB;AA2Df,wFAlEA,eAAO,OAkEA;AACP,2FAlEA,kBAAU,OAkEA;AAiDV,sFAlHA,aAAK,OAkHA;AAEL,iGAnHA,wBAAgB,OAmHA;AALhB,oGA7GA,2BAAmB,OA6GA;AADnB,6FA3GA,oBAAY,OA2GA;AA5CZ,0GA9DA,iCAAyB,OA8DA;AA3D3B,uDAAyC;AAiHvC,8BAAS;AA9GX,+DAAiD;AAmG/C,sCAAa;AAlGf,sDAAwC;AA+GtC,0BAAO;AA9GT,uDAAyC;AAoHvC,8BAAS;AAnHX,mDAAqC;AAoHnC,0BAAO;AAnHT,+CAAiC;AAmG/B,sBAAK;AAlGP,yEAA2D;AA6GzD,gCAAU;AA5GZ,6EAA+D;AA8G7D,oCAAY;AA5Gd,mCAsCiB;AAYf,yFAjDA,gBAAQ,OAiDA;AACR,+FAjDA,sBAAc,OAiDA;AACd,sGAjDA,6BAAqB,OAiDA;AAErB,wFAlDA,eAAO,OAkDA;AACP,oGAlDA,2BAAmB,OAkDA;AACnB,8FAlDA,qBAAa,OAkDA;AACb,gGAlDA,uBAAe,OAkDA;AACf,yFAlDA,gBAAQ,OAkDA;AACR,gGAlDA,uBAAe,OAkDA;AACf,iGAlDA,wBAAgB,OAkDA;AAChB,0GAlDA,iCAAyB,OAkDA;AACzB,2GAlDA,kCAA0B,OAkDA;AAC1B,mGAlDA,0BAAkB,OAkDA;AAElB,2FAnDA,kBAAU,OAmDA;AAGV,0FArDA,iBAAS,OAqDA;AACT,iGArDA,wBAAgB,OAqDA;AAChB,kGArDA,yBAAiB,OAqDA;AACjB,8FArDA,qBAAa,OAqDA;AACb,kGArDA,yBAAiB,OAqDA;AACjB,sGArDA,6BAAqB,OAqDA;AACrB,kGArDA,yBAAiB,OAqDA;AARjB,+FA5CA,sBAAc,OA4CA;AACd,mGA5CA,0BAAkB,OA4CA;AAiBlB,sGA5DA,6BAAqB,OA4DA;AACrB,mGA5DA,0BAAkB,OA4DA;AAClB,mGA5DA,0BAAkB,OA4DA;AAClB,0GA5DA,iCAAyB,OA4DA;AACzB,kHA5DA,yCAAiC,OA4DA;AANjC,wGArDA,+BAAuB,OAqDA;AAOvB,0FA3DA,iBAAS,OA2DA;AAdT,0FA5CA,iBAAS,OA4CA;AACT,8FA5CA,qBAAa,OA4CA;AACb,4FA5CA,mBAAW,OA4CA;AACX,iGA5CA,wBAAgB,OA4CA;AAChB,+FA5CA,sBAAc,OA4CA;AAed,8FA1DA,qBAAa,OA0DA;AAdb,iGA3CA,wBAAgB,OA2CA;AAxClB,+CAAiC;AA4D/B,sBAAK"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAuC;AAmErC,qFAnEO,WAAI,OAmEP;AACJ,wFApEa,cAAO,OAoEb;AAnET,mCAQiB;AA4Df,wFAnEA,eAAO,OAmEA;AACP,2FAnEA,kBAAU,OAmEA;AAkDV,sFApHA,aAAK,OAoHA;AAEL,iGArHA,wBAAgB,OAqHA;AALhB,oGA/GA,2BAAmB,OA+GA;AADnB,6FA7GA,oBAAY,OA6GA;AA7CZ,0GA/DA,iCAAyB,OA+DA;AA5D3B,uDAAyC;AAmHvC,8BAAS;AAhHX,+DAAiD;AAqG/C,sCAAa;AApGf,sDAAwC;AAiHtC,0BAAO;AAhHT,uDAAyC;AAsHvC,8BAAS;AArHX,mDAAqC;AAsHnC,0BAAO;AArHT,+CAAiC;AAqG/B,sBAAK;AApGP,yEAA2D;AA+GzD,gCAAU;AA9GZ,6EAA+D;AAgH7D,oCAAY;AA9Gd,mCAuCiB;AAYf,yFAlDA,gBAAQ,OAkDA;AACR,+FAlDA,sBAAc,OAkDA;AACd,sGAlDA,6BAAqB,OAkDA;AAErB,wFAnDA,eAAO,OAmDA;AACP,oGAnDA,2BAAmB,OAmDA;AACnB,8FAnDA,qBAAa,OAmDA;AACb,gGAnDA,uBAAe,OAmDA;AACf,yFAnDA,gBAAQ,OAmDA;AACR,gGAnDA,uBAAe,OAmDA;AACf,iGAnDA,wBAAgB,OAmDA;AAChB,0GAnDA,iCAAyB,OAmDA;AACzB,2GAnDA,kCAA0B,OAmDA;AAC1B,mGAnDA,0BAAkB,OAmDA;AAElB,2FApDA,kBAAU,OAoDA;AAIV,0FAvDA,iBAAS,OAuDA;AACT,iGAvDA,wBAAgB,OAuDA;AAChB,kGAvDA,yBAAiB,OAuDA;AACjB,8FAvDA,qBAAa,OAuDA;AACb,kGAvDA,yBAAiB,OAuDA;AACjB,sGAvDA,6BAAqB,OAuDA;AACrB,kGAvDA,yBAAiB,OAuDA;AATjB,+FA7CA,sBAAc,OA6CA;AACd,mGA7CA,0BAAkB,OA6CA;AAkBlB,sGA9DA,6BAAqB,OA8DA;AACrB,mGA9DA,0BAAkB,OA8DA;AAClB,mGA9DA,0BAAkB,OA8DA;AAClB,0GA9DA,iCAAyB,OA8DA;AACzB,kHA9DA,yCAAiC,OA8DA;AANjC,wGAvDA,+BAAuB,OAuDA;AAOvB,0FA7DA,iBAAS,OA6DA;AAdT,0FA9CA,iBAAS,OA8CA;AACT,8FA9CA,qBAAa,OA8CA;AACb,4FA9CA,mBAAW,OA8CA;AACX,iGA9CA,wBAAgB,OA8CA;AAChB,+FA9CA,sBAAc,OA8CA;AAed,8FA5DA,qBAAa,OA4DA;AAdb,iGA7CA,wBAAgB,OA6CA;AAbhB,gGA/BA,uBAAe,OA+BA;AA5BjB,+CAAiC;AA6D/B,sBAAK"}
@@ -41,7 +41,7 @@ function stackImageSyncCallback(synchronizerInstance, sourceViewport, targetView
41
41
  const frameOfReferenceUID1 = sViewport.getFrameOfReferenceUID();
42
42
  const frameOfReferenceUID2 = tViewport.getFrameOfReferenceUID();
43
43
  if (frameOfReferenceUID1 === frameOfReferenceUID2 &&
44
- options.useInitialPosition !== false) {
44
+ (options === null || options === void 0 ? void 0 : options.useInitialPosition) !== false) {
45
45
  registrationMatrixMat4 = gl_matrix_1.mat4.identity(gl_matrix_1.mat4.create());
46
46
  }
47
47
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ import { PublicToolProps, ToolProps, SVGDrawingHelper, Annotation } from '../types';
3
+ import AnnotationDisplayTool from './base/AnnotationDisplayTool';
4
+ export interface OverlayGridAnnotation extends Annotation {
5
+ data: {
6
+ viewportData: Map<string, object>;
7
+ pointSets: Array<object>;
8
+ };
9
+ }
10
+ declare class OverlayGridTool extends AnnotationDisplayTool {
11
+ static toolName: any;
12
+ touchDragCallback: any;
13
+ mouseDragCallback: any;
14
+ _throttledCalculateCachedStats: any;
15
+ isDrawing: boolean;
16
+ isHandleOutsideImage: boolean;
17
+ constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
18
+ onSetToolEnabled: () => void;
19
+ onSetToolActive: () => void;
20
+ _init: () => void;
21
+ calculateImageIdPointSets: (imageId: string) => {
22
+ pointSet1: Types.Point3[];
23
+ pointSet2: Types.Point3[];
24
+ };
25
+ renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean;
26
+ private initializeViewportData;
27
+ private isPerpendicular;
28
+ private isParallel;
29
+ private getImageIdNormal;
30
+ }
31
+ export default OverlayGridTool;
@@ -0,0 +1,170 @@
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 gl_matrix_1 = require("gl-matrix");
7
+ const core_1 = require("@cornerstonejs/core");
8
+ const annotationState_1 = require("../stateManagement/annotation/annotationState");
9
+ const ToolGroupManager_1 = require("../store/ToolGroupManager");
10
+ const drawingSvg_1 = require("../drawingSvg");
11
+ const triggerAnnotationRenderForViewportIds_1 = __importDefault(require("../utilities/triggerAnnotationRenderForViewportIds"));
12
+ const AnnotationDisplayTool_1 = __importDefault(require("./base/AnnotationDisplayTool"));
13
+ const { EPSILON } = core_1.CONSTANTS;
14
+ class OverlayGridTool extends AnnotationDisplayTool_1.default {
15
+ constructor(toolProps = {}, defaultToolProps = {
16
+ supportedInteractionTypes: ['Mouse', 'Touch'],
17
+ configuration: {
18
+ sourceImageIds: [],
19
+ },
20
+ }) {
21
+ super(toolProps, defaultToolProps);
22
+ this.onSetToolEnabled = () => {
23
+ this._init();
24
+ };
25
+ this.onSetToolActive = () => {
26
+ this._init();
27
+ };
28
+ this._init = () => {
29
+ const sourceImageIds = this.configuration.sourceImageIds;
30
+ if (!(sourceImageIds === null || sourceImageIds === void 0 ? void 0 : sourceImageIds.length)) {
31
+ console.warn('OverlayGridTool: No sourceImageIds provided in configuration');
32
+ return;
33
+ }
34
+ const imagePlaneModule = core_1.metaData.get('imagePlaneModule', sourceImageIds[0]);
35
+ if (!imagePlaneModule) {
36
+ console.warn('OverlayGridTool: No imagePlaneModule found for sourceImageIds');
37
+ return;
38
+ }
39
+ const { frameOfReferenceUID } = imagePlaneModule;
40
+ const viewportsInfo = (0, ToolGroupManager_1.getToolGroup)(this.toolGroupId).viewportsInfo;
41
+ if (!(viewportsInfo === null || viewportsInfo === void 0 ? void 0 : viewportsInfo.length)) {
42
+ console.warn('OverlayGridTool: No viewports found');
43
+ return;
44
+ }
45
+ const annotations = (0, annotationState_1.getAnnotations)(this.getToolName(), frameOfReferenceUID);
46
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
47
+ const pointSets = sourceImageIds.map((id) => {
48
+ return this.calculateImageIdPointSets(id);
49
+ });
50
+ const newAnnotation = {
51
+ highlighted: true,
52
+ invalidated: true,
53
+ metadata: {
54
+ toolName: this.getToolName(),
55
+ FrameOfReferenceUID: frameOfReferenceUID,
56
+ referencedImageId: null,
57
+ },
58
+ data: {
59
+ viewportData: new Map(),
60
+ pointSets,
61
+ },
62
+ };
63
+ (0, annotationState_1.addAnnotation)(newAnnotation, frameOfReferenceUID);
64
+ }
65
+ (0, triggerAnnotationRenderForViewportIds_1.default)((0, core_1.getRenderingEngine)(viewportsInfo[0].renderingEngineId), viewportsInfo.map(({ viewportId }) => viewportId));
66
+ };
67
+ this.calculateImageIdPointSets = (imageId) => {
68
+ const { imagePositionPatient, rows, columns, rowCosines, columnCosines, rowPixelSpacing, columnPixelSpacing, } = core_1.metaData.get('imagePlaneModule', imageId);
69
+ const topLeft = [...imagePositionPatient];
70
+ const topRight = [...imagePositionPatient];
71
+ const bottomLeft = [...imagePositionPatient];
72
+ const bottomRight = [...imagePositionPatient];
73
+ gl_matrix_1.vec3.scaleAndAdd(topRight, imagePositionPatient, columnCosines, columns * columnPixelSpacing);
74
+ gl_matrix_1.vec3.scaleAndAdd(bottomLeft, imagePositionPatient, rowCosines, rows * rowPixelSpacing);
75
+ gl_matrix_1.vec3.scaleAndAdd(bottomRight, bottomLeft, columnCosines, columns * columnPixelSpacing);
76
+ const pointSet1 = [topLeft, bottomLeft, topRight, bottomRight];
77
+ const pointSet2 = [topLeft, topRight, bottomLeft, bottomRight];
78
+ return { pointSet1, pointSet2 };
79
+ };
80
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
81
+ const sourceImageIds = this.configuration.sourceImageIds;
82
+ let renderStatus = false;
83
+ if (!(sourceImageIds === null || sourceImageIds === void 0 ? void 0 : sourceImageIds.length)) {
84
+ return renderStatus;
85
+ }
86
+ const { viewport: targetViewport, FrameOfReferenceUID } = enabledElement;
87
+ const targetImageIds = targetViewport.getImageIds();
88
+ if (targetImageIds.length < 2) {
89
+ return renderStatus;
90
+ }
91
+ const annotations = (0, annotationState_1.getAnnotations)(this.getToolName(), FrameOfReferenceUID);
92
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
93
+ return renderStatus;
94
+ }
95
+ const annotation = annotations[0];
96
+ const { annotationUID } = annotation;
97
+ const { focalPoint, viewPlaneNormal } = targetViewport.getCamera();
98
+ const styleSpecifier = {
99
+ toolGroupId: this.toolGroupId,
100
+ toolName: this.getToolName(),
101
+ viewportId: enabledElement.viewport.id,
102
+ };
103
+ const imageIdNormal = (this.getImageIdNormal(sourceImageIds[0]));
104
+ if (this.isParallel(viewPlaneNormal, imageIdNormal)) {
105
+ return renderStatus;
106
+ }
107
+ const targetViewportPlane = core_1.utilities.planar.planeEquation(viewPlaneNormal, focalPoint);
108
+ const pointSets = annotation.data.pointSets;
109
+ const viewportData = annotation.data.viewportData;
110
+ for (let i = 0; i < sourceImageIds.length; i++) {
111
+ const { pointSet1, pointSet2 } = pointSets[i];
112
+ const targetData = viewportData.get(targetViewport.id) ||
113
+ this.initializeViewportData(viewportData, targetViewport.id);
114
+ if (!targetData.pointSetsToUse[i]) {
115
+ let pointSetToUse = pointSet1;
116
+ let topBottomVec = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), pointSet1[0], pointSet1[1]);
117
+ topBottomVec = gl_matrix_1.vec3.normalize(gl_matrix_1.vec3.create(), topBottomVec);
118
+ if (this.isPerpendicular(topBottomVec, viewPlaneNormal)) {
119
+ pointSetToUse = pointSet2;
120
+ }
121
+ targetData.pointSetsToUse[i] = pointSetToUse;
122
+ targetData.lineStartsWorld[i] = core_1.utilities.planar.linePlaneIntersection(pointSetToUse[0], pointSetToUse[1], targetViewportPlane);
123
+ targetData.lineEndsWorld[i] = core_1.utilities.planar.linePlaneIntersection(pointSetToUse[2], pointSetToUse[3], targetViewportPlane);
124
+ }
125
+ const lineStartWorld = targetData.lineStartsWorld[i];
126
+ const lineEndWorld = targetData.lineEndsWorld[i];
127
+ styleSpecifier.annotationUID = annotationUID;
128
+ const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
129
+ const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
130
+ const color = this.getStyle('color', styleSpecifier, annotation);
131
+ const shadow = this.getStyle('shadow', styleSpecifier, annotation);
132
+ const canvasCoordinates = [lineStartWorld, lineEndWorld].map((world) => targetViewport.worldToCanvas(world));
133
+ const dataId = `${annotationUID}-line`;
134
+ const lineUID = `${i}`;
135
+ (0, drawingSvg_1.drawLine)(svgDrawingHelper, annotationUID, lineUID, canvasCoordinates[0], canvasCoordinates[1], {
136
+ color,
137
+ width: lineWidth,
138
+ lineDash,
139
+ shadow,
140
+ }, dataId);
141
+ }
142
+ renderStatus = true;
143
+ return renderStatus;
144
+ };
145
+ this.initializeViewportData = (viewportData, id) => {
146
+ viewportData.set(id, {
147
+ pointSetsToUse: [],
148
+ lineStartsWorld: [],
149
+ lineEndsWorld: [],
150
+ });
151
+ return viewportData.get(id);
152
+ };
153
+ this.isPerpendicular = (vec1, vec2) => {
154
+ const dot = gl_matrix_1.vec3.dot(vec1, vec2);
155
+ return Math.abs(dot) < EPSILON;
156
+ };
157
+ }
158
+ isParallel(vec1, vec2) {
159
+ return Math.abs(gl_matrix_1.vec3.dot(vec1, vec2)) > 1 - EPSILON;
160
+ }
161
+ getImageIdNormal(imageId) {
162
+ const { imageOrientationPatient } = core_1.metaData.get('imagePlaneModule', imageId);
163
+ const rowCosineVec = gl_matrix_1.vec3.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
164
+ const colCosineVec = gl_matrix_1.vec3.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
165
+ return gl_matrix_1.vec3.cross(gl_matrix_1.vec3.create(), rowCosineVec, colCosineVec);
166
+ }
167
+ }
168
+ OverlayGridTool.toolName = 'OverlayGrid';
169
+ exports.default = OverlayGridTool;
170
+ //# sourceMappingURL=OverlayGridTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayGridTool.js","sourceRoot":"","sources":["../../../src/tools/OverlayGridTool.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import MIPJumpToClickTool from './MIPJumpToClickTool';
11
11
  import CrosshairsTool from './CrosshairsTool';
12
12
  import MagnifyTool from './MagnifyTool';
13
13
  import ReferenceLinesTool from './ReferenceLinesTool';
14
+ import OverlayGridTool from './OverlayGridTool';
14
15
  import BidirectionalTool from './annotation/BidirectionalTool';
15
16
  import LengthTool from './annotation/LengthTool';
16
17
  import ProbeTool from './annotation/ProbeTool';
@@ -33,4 +34,4 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
33
34
  import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
34
35
  import BrushTool from './segmentation/BrushTool';
35
36
  import PaintFillTool from './segmentation/PaintFillTool';
36
- export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
37
+ export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ReferenceCursors = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = void 0;
6
+ exports.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ReferenceCursors = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.OverlayGridTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = void 0;
7
7
  const base_1 = require("./base");
8
8
  Object.defineProperty(exports, "BaseTool", { enumerable: true, get: function () { return base_1.BaseTool; } });
9
9
  Object.defineProperty(exports, "AnnotationTool", { enumerable: true, get: function () { return base_1.AnnotationTool; } });
@@ -32,6 +32,8 @@ const MagnifyTool_1 = __importDefault(require("./MagnifyTool"));
32
32
  exports.MagnifyTool = MagnifyTool_1.default;
33
33
  const ReferenceLinesTool_1 = __importDefault(require("./ReferenceLinesTool"));
34
34
  exports.ReferenceLinesTool = ReferenceLinesTool_1.default;
35
+ const OverlayGridTool_1 = __importDefault(require("./OverlayGridTool"));
36
+ exports.OverlayGridTool = OverlayGridTool_1.default;
35
37
  const BidirectionalTool_1 = __importDefault(require("./annotation/BidirectionalTool"));
36
38
  exports.BidirectionalTool = BidirectionalTool_1.default;
37
39
  const LengthTool_1 = __importDefault(require("./annotation/LengthTool"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAyE;AA2CvE,yFA3CO,eAAQ,OA2CP;AACR,+FA5CiB,qBAAc,OA4CjB;AACd,sGA7CiC,4BAAqB,OA6CjC;AA5CvB,wDAAgC;AA8C9B,kBA9CK,iBAAO,CA8CL;AA7CT,gFAAwD;AA8CtD,8BA9CK,6BAAmB,CA8CL;AA7CrB,wEAAgD;AA+C9C,0BA/CK,yBAAe,CA+CL;AA9CjB,wEAAgD;AA+C9C,0BA/CK,yBAAe,CA+CL;AA9CjB,0EAAkD;AA+ChD,2BA/CK,0BAAgB,CA+CL;AA9ClB,oGAAwE;AA+CtE,oCA/CK,uCAAyB,CA+CL;AA9C3B,0DAAkC;AA+ChC,mBA/CK,kBAAQ,CA+CL;AA9CV,8FAAsE;AA+CpE,qCA/CK,oCAA0B,CA+CL;AA9C5B,8EAAsD;AA+CpD,6BA/CK,4BAAkB,CA+CL;AA9CpB,sEAA8C;AAgD5C,yBAhDK,wBAAc,CAgDL;AA/ChB,gEAAwC;AAqEtC,sBArEK,qBAAW,CAqEL;AApEb,8EAAsD;AA+CpD,6BA/CK,4BAAkB,CA+CL;AA7CpB,uFAA+D;AA8C7D,4BA9CK,2BAAiB,CA8CL;AA7CnB,yEAAiD;AA8C/C,qBA9CK,oBAAU,CA8CL;AA7CZ,uEAA+C;AA8C7C,oBA9CK,mBAAS,CA8CL;AA7CX,+EAAuD;AAgCrD,wBAhCK,uBAAa,CAgCL;AA/Bf,qFAA6D;AA6C3D,2BA7CK,0BAAgB,CA6CL;AA5ClB,uFAA+D;AA6C7D,4BA7CK,2BAAiB,CA6CL;AA5CnB,+EAAuD;AA6CrD,wBA7CK,uBAAa,CA6CL;AA5Cf,+FAAuE;AA6CrE,gCA7CK,+BAAqB,CA6CL;AA5CvB,uFAA+D;AA6C7D,4BA7CK,2BAAiB,CA6CL;AA5CnB,uEAA+C;AA6C7C,oBA7CK,mBAAS,CA6CL;AA5CX,+EAAuD;AA6CrD,wBA7CK,uBAAa,CA6CL;AA5Cf,0EAAkD;AA6ChD,2BA7CK,0BAAgB,CA6CL;AA5ClB,8EAAkD;AAuDhD,yBAvDK,4BAAc,CAuDL;AAtDhB,0EAAkD;AAwDhD,2BAxDK,0BAAgB,CAwDL;AArDlB,qGAA6E;AA0C3E,kCA1CK,iCAAuB,CA0CL;AAvCzB,iGAAyE;AAyCvE,gCAzCK,+BAAqB,CAyCL;AAxCvB,2FAAmE;AAyCjE,6BAzCK,4BAAkB,CAyCL;AAxCpB,2FAAmE;AAyCjE,6BAzCK,4BAAkB,CAyCL;AAxCpB,yGAAiF;AAyC/E,oCAzCK,mCAAyB,CAyCL;AAxC3B,yHAAiG;AAyC/F,4CAzCK,2CAAiC,CAyCL;AAxCnC,yEAAiD;AAyC/C,oBAzCK,mBAAS,CAyCL;AAxCX,iFAAyD;AA2CvD,wBA3CK,uBAAa,CA2CL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAyE;AA4CvE,yFA5CO,eAAQ,OA4CP;AACR,+FA7CiB,qBAAc,OA6CjB;AACd,sGA9CiC,4BAAqB,OA8CjC;AA7CvB,wDAAgC;AA+C9B,kBA/CK,iBAAO,CA+CL;AA9CT,gFAAwD;AA+CtD,8BA/CK,6BAAmB,CA+CL;AA9CrB,wEAAgD;AAgD9C,0BAhDK,yBAAe,CAgDL;AA/CjB,wEAAgD;AAgD9C,0BAhDK,yBAAe,CAgDL;AA/CjB,0EAAkD;AAgDhD,2BAhDK,0BAAgB,CAgDL;AA/ClB,oGAAwE;AAgDtE,oCAhDK,uCAAyB,CAgDL;AA/C3B,0DAAkC;AAgDhC,mBAhDK,kBAAQ,CAgDL;AA/CV,8FAAsE;AAgDpE,qCAhDK,oCAA0B,CAgDL;AA/C5B,8EAAsD;AAgDpD,6BAhDK,4BAAkB,CAgDL;AA/CpB,sEAA8C;AAiD5C,yBAjDK,wBAAc,CAiDL;AAhDhB,gEAAwC;AAuEtC,sBAvEK,qBAAW,CAuEL;AAtEb,8EAAsD;AAgDpD,6BAhDK,4BAAkB,CAgDL;AA/CpB,wEAAgD;AAgD9C,0BAhDK,yBAAe,CAgDL;AA9CjB,uFAA+D;AA+C7D,4BA/CK,2BAAiB,CA+CL;AA9CnB,yEAAiD;AA+C/C,qBA/CK,oBAAU,CA+CL;AA9CZ,uEAA+C;AA+C7C,oBA/CK,mBAAS,CA+CL;AA9CX,+EAAuD;AAgCrD,wBAhCK,uBAAa,CAgCL;AA/Bf,qFAA6D;AA8C3D,2BA9CK,0BAAgB,CA8CL;AA7ClB,uFAA+D;AA8C7D,4BA9CK,2BAAiB,CA8CL;AA7CnB,+EAAuD;AA8CrD,wBA9CK,uBAAa,CA8CL;AA7Cf,+FAAuE;AA8CrE,gCA9CK,+BAAqB,CA8CL;AA7CvB,uFAA+D;AA8C7D,4BA9CK,2BAAiB,CA8CL;AA7CnB,uEAA+C;AA8C7C,oBA9CK,mBAAS,CA8CL;AA7CX,+EAAuD;AA8CrD,wBA9CK,uBAAa,CA8CL;AA7Cf,0EAAkD;AA8ChD,2BA9CK,0BAAgB,CA8CL;AA7ClB,8EAAkD;AAwDhD,yBAxDK,4BAAc,CAwDL;AAvDhB,0EAAkD;AAyDhD,2BAzDK,0BAAgB,CAyDL;AAtDlB,qGAA6E;AA2C3E,kCA3CK,iCAAuB,CA2CL;AAxCzB,iGAAyE;AA0CvE,gCA1CK,+BAAqB,CA0CL;AAzCvB,2FAAmE;AA0CjE,6BA1CK,4BAAkB,CA0CL;AAzCpB,2FAAmE;AA0CjE,6BA1CK,4BAAkB,CA0CL;AAzCpB,yGAAiF;AA0C/E,oCA1CK,mCAAyB,CA0CL;AAzC3B,yHAAiG;AA0C/F,4CA1CK,2CAAiC,CA0CL;AAzCnC,yEAAiD;AA0C/C,oBA1CK,mBAAS,CA0CL;AAzCX,iFAAyD;AA4CvD,wBA5CK,uBAAa,CA4CL"}
@@ -8,6 +8,6 @@ import * as cursors from './cursors';
8
8
  import * as Types from './types';
9
9
  import * as annotation from './stateManagement/annotation';
10
10
  import * as segmentation from './stateManagement/segmentation';
11
- import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
11
+ import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, OverlayGridTool } from './tools';
12
12
  import * as Enums from './enums';
13
- export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
13
+ export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
package/dist/esm/index.js CHANGED
@@ -8,7 +8,7 @@ import * as cursors from './cursors';
8
8
  import * as Types from './types';
9
9
  import * as annotation from './stateManagement/annotation';
10
10
  import * as segmentation from './stateManagement/segmentation';
11
- import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, } from './tools';
11
+ import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, OverlayGridTool, } from './tools';
12
12
  import * as Enums from './enums';
13
- export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
13
+ export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAEL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,EACV,yBAAyB,EAEzB,QAAQ,EACR,cAAc,EACd,qBAAqB,EAErB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAElB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EAET,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,KAAK,EAEL,gBAAgB,EAEhB,KAAK,EAEL,SAAS,EAET,OAAO,EAEP,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,OAAO,GACR,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAEL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,EACV,yBAAyB,EAEzB,QAAQ,EACR,cAAc,EACd,qBAAqB,EAErB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAElB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EAET,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,KAAK,EAEL,gBAAgB,EAEhB,KAAK,EAEL,SAAS,EAET,OAAO,EAEP,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,OAAO,GACR,CAAC"}
@@ -26,7 +26,7 @@ export default async function stackImageSyncCallback(synchronizerInstance, sourc
26
26
  const frameOfReferenceUID1 = sViewport.getFrameOfReferenceUID();
27
27
  const frameOfReferenceUID2 = tViewport.getFrameOfReferenceUID();
28
28
  if (frameOfReferenceUID1 === frameOfReferenceUID2 &&
29
- options.useInitialPosition !== false) {
29
+ options?.useInitialPosition !== false) {
30
30
  registrationMatrixMat4 = mat4.identity(mat4.create());
31
31
  }
32
32
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,kBAAkB,EAElB,QAAQ,EACR,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAE3D,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACpD,SAAS,CAAC,mCAAmC,CAAC,GAAG,CAC/C,2BAA2B,EAC3B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;AAuBJ,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,sBAAsB,CAClD,oBAAkC,EAClC,cAAiC,EACjC,cAAiC;IAEjC,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7E,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,8BAA8B,cAAc,CAAC,iBAAiB,EAAE,CACjE,CAAC;KACH;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAC3C,cAAc,CAAC,UAAU,CACF,CAAC;IAE1B,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAE3E,IAAI,OAAO,EAAE,QAAQ,EAAE;QACrB,OAAO;KACR;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAC3C,cAAc,CAAC,UAAU,CACF,CAAC;IAE1B,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IAE1E,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE/C,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;QAC/C,OAAO;KACR;IAKD,IAAI,sBAAsB,GAAG,sBAAsB,CACjD,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,UAAU,CAC1B,CAAC;IAEF,IAAI,CAAC,sBAAsB,EAAE;QAC3B,MAAM,oBAAoB,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;QAChE,MAAM,oBAAoB,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;QAChE,IACE,oBAAoB,KAAK,oBAAoB;YAC7C,OAAO,CAAC,kBAAkB,KAAK,KAAK,EACpC;YACA,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACvD;aAAM;YACL,SAAS,CAAC,qCAAqC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtE,sBAAsB,GAAG,sBAAsB,CAC7C,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,UAAU,CAC1B,CAAC;SACH;QACD,IAAI,CAAC,sBAAsB,EAAE;YAC3B,OAAO;SACR;KACF;IAID,MAAM,gDAAgD,GAAG,IAAI,CAAC,aAAa,CACzE,IAAI,CAAC,MAAM,EAAE,EACb,0BAA0B,EAC1B,sBAAsB,CACvB,CAAC;IAIF,MAAM,oBAAoB,GAAG,uBAAuB,CAClD,gDAAgD,EAChD,cAAc,CACf,CAAC;IAEF,IACE,oBAAoB,CAAC,KAAK,KAAK,CAAC,CAAC;QACjC,SAAS,CAAC,sBAAsB,EAAE,KAAK,oBAAoB,CAAC,KAAK,EACjE;QACA,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE;YACnC,UAAU,EAAE,oBAAoB,CAAC,KAAK;SACvC,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAW,EAAE,QAAQ;IAGpD,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC,GAAG,CAC3C,kBAAkB,EAClB,OAAO,CACR,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAElE,IAAI,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE;YAC3C,OAAO;gBACL,QAAQ;gBACR,KAAK;aACN,CAAC;SACH;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC,EACD;QACE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,CAAC,CAAC;KACV,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ import { PublicToolProps, ToolProps, SVGDrawingHelper, Annotation } from '../types';
3
+ import AnnotationDisplayTool from './base/AnnotationDisplayTool';
4
+ export interface OverlayGridAnnotation extends Annotation {
5
+ data: {
6
+ viewportData: Map<string, object>;
7
+ pointSets: Array<object>;
8
+ };
9
+ }
10
+ declare class OverlayGridTool extends AnnotationDisplayTool {
11
+ static toolName: any;
12
+ touchDragCallback: any;
13
+ mouseDragCallback: any;
14
+ _throttledCalculateCachedStats: any;
15
+ isDrawing: boolean;
16
+ isHandleOutsideImage: boolean;
17
+ constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
18
+ onSetToolEnabled: () => void;
19
+ onSetToolActive: () => void;
20
+ _init: () => void;
21
+ calculateImageIdPointSets: (imageId: string) => {
22
+ pointSet1: Types.Point3[];
23
+ pointSet2: Types.Point3[];
24
+ };
25
+ renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean;
26
+ private initializeViewportData;
27
+ private isPerpendicular;
28
+ private isParallel;
29
+ private getImageIdNormal;
30
+ }
31
+ export default OverlayGridTool;
@@ -0,0 +1,165 @@
1
+ import { vec3 } from 'gl-matrix';
2
+ import { metaData, CONSTANTS, getRenderingEngine, utilities as csUtils, } from '@cornerstonejs/core';
3
+ import { addAnnotation, getAnnotations, } from '../stateManagement/annotation/annotationState';
4
+ import { getToolGroup } from '../store/ToolGroupManager';
5
+ import { drawLine as drawLineSvg } from '../drawingSvg';
6
+ import triggerAnnotationRenderForViewportIds from '../utilities/triggerAnnotationRenderForViewportIds';
7
+ import AnnotationDisplayTool from './base/AnnotationDisplayTool';
8
+ const { EPSILON } = CONSTANTS;
9
+ class OverlayGridTool extends AnnotationDisplayTool {
10
+ constructor(toolProps = {}, defaultToolProps = {
11
+ supportedInteractionTypes: ['Mouse', 'Touch'],
12
+ configuration: {
13
+ sourceImageIds: [],
14
+ },
15
+ }) {
16
+ super(toolProps, defaultToolProps);
17
+ this.onSetToolEnabled = () => {
18
+ this._init();
19
+ };
20
+ this.onSetToolActive = () => {
21
+ this._init();
22
+ };
23
+ this._init = () => {
24
+ const sourceImageIds = this.configuration.sourceImageIds;
25
+ if (!sourceImageIds?.length) {
26
+ console.warn('OverlayGridTool: No sourceImageIds provided in configuration');
27
+ return;
28
+ }
29
+ const imagePlaneModule = metaData.get('imagePlaneModule', sourceImageIds[0]);
30
+ if (!imagePlaneModule) {
31
+ console.warn('OverlayGridTool: No imagePlaneModule found for sourceImageIds');
32
+ return;
33
+ }
34
+ const { frameOfReferenceUID } = imagePlaneModule;
35
+ const viewportsInfo = getToolGroup(this.toolGroupId).viewportsInfo;
36
+ if (!viewportsInfo?.length) {
37
+ console.warn('OverlayGridTool: No viewports found');
38
+ return;
39
+ }
40
+ const annotations = getAnnotations(this.getToolName(), frameOfReferenceUID);
41
+ if (!annotations?.length) {
42
+ const pointSets = sourceImageIds.map((id) => {
43
+ return this.calculateImageIdPointSets(id);
44
+ });
45
+ const newAnnotation = {
46
+ highlighted: true,
47
+ invalidated: true,
48
+ metadata: {
49
+ toolName: this.getToolName(),
50
+ FrameOfReferenceUID: frameOfReferenceUID,
51
+ referencedImageId: null,
52
+ },
53
+ data: {
54
+ viewportData: new Map(),
55
+ pointSets,
56
+ },
57
+ };
58
+ addAnnotation(newAnnotation, frameOfReferenceUID);
59
+ }
60
+ triggerAnnotationRenderForViewportIds(getRenderingEngine(viewportsInfo[0].renderingEngineId), viewportsInfo.map(({ viewportId }) => viewportId));
61
+ };
62
+ this.calculateImageIdPointSets = (imageId) => {
63
+ const { imagePositionPatient, rows, columns, rowCosines, columnCosines, rowPixelSpacing, columnPixelSpacing, } = metaData.get('imagePlaneModule', imageId);
64
+ const topLeft = [...imagePositionPatient];
65
+ const topRight = [...imagePositionPatient];
66
+ const bottomLeft = [...imagePositionPatient];
67
+ const bottomRight = [...imagePositionPatient];
68
+ vec3.scaleAndAdd(topRight, imagePositionPatient, columnCosines, columns * columnPixelSpacing);
69
+ vec3.scaleAndAdd(bottomLeft, imagePositionPatient, rowCosines, rows * rowPixelSpacing);
70
+ vec3.scaleAndAdd(bottomRight, bottomLeft, columnCosines, columns * columnPixelSpacing);
71
+ const pointSet1 = [topLeft, bottomLeft, topRight, bottomRight];
72
+ const pointSet2 = [topLeft, topRight, bottomLeft, bottomRight];
73
+ return { pointSet1, pointSet2 };
74
+ };
75
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
76
+ const sourceImageIds = this.configuration.sourceImageIds;
77
+ let renderStatus = false;
78
+ if (!sourceImageIds?.length) {
79
+ return renderStatus;
80
+ }
81
+ const { viewport: targetViewport, FrameOfReferenceUID } = enabledElement;
82
+ const targetImageIds = targetViewport.getImageIds();
83
+ if (targetImageIds.length < 2) {
84
+ return renderStatus;
85
+ }
86
+ const annotations = getAnnotations(this.getToolName(), FrameOfReferenceUID);
87
+ if (!annotations?.length) {
88
+ return renderStatus;
89
+ }
90
+ const annotation = annotations[0];
91
+ const { annotationUID } = annotation;
92
+ const { focalPoint, viewPlaneNormal } = targetViewport.getCamera();
93
+ const styleSpecifier = {
94
+ toolGroupId: this.toolGroupId,
95
+ toolName: this.getToolName(),
96
+ viewportId: enabledElement.viewport.id,
97
+ };
98
+ const imageIdNormal = (this.getImageIdNormal(sourceImageIds[0]));
99
+ if (this.isParallel(viewPlaneNormal, imageIdNormal)) {
100
+ return renderStatus;
101
+ }
102
+ const targetViewportPlane = csUtils.planar.planeEquation(viewPlaneNormal, focalPoint);
103
+ const pointSets = annotation.data.pointSets;
104
+ const viewportData = annotation.data.viewportData;
105
+ for (let i = 0; i < sourceImageIds.length; i++) {
106
+ const { pointSet1, pointSet2 } = pointSets[i];
107
+ const targetData = viewportData.get(targetViewport.id) ||
108
+ this.initializeViewportData(viewportData, targetViewport.id);
109
+ if (!targetData.pointSetsToUse[i]) {
110
+ let pointSetToUse = pointSet1;
111
+ let topBottomVec = vec3.subtract(vec3.create(), pointSet1[0], pointSet1[1]);
112
+ topBottomVec = vec3.normalize(vec3.create(), topBottomVec);
113
+ if (this.isPerpendicular(topBottomVec, viewPlaneNormal)) {
114
+ pointSetToUse = pointSet2;
115
+ }
116
+ targetData.pointSetsToUse[i] = pointSetToUse;
117
+ targetData.lineStartsWorld[i] = csUtils.planar.linePlaneIntersection(pointSetToUse[0], pointSetToUse[1], targetViewportPlane);
118
+ targetData.lineEndsWorld[i] = csUtils.planar.linePlaneIntersection(pointSetToUse[2], pointSetToUse[3], targetViewportPlane);
119
+ }
120
+ const lineStartWorld = targetData.lineStartsWorld[i];
121
+ const lineEndWorld = targetData.lineEndsWorld[i];
122
+ styleSpecifier.annotationUID = annotationUID;
123
+ const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
124
+ const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
125
+ const color = this.getStyle('color', styleSpecifier, annotation);
126
+ const shadow = this.getStyle('shadow', styleSpecifier, annotation);
127
+ const canvasCoordinates = [lineStartWorld, lineEndWorld].map((world) => targetViewport.worldToCanvas(world));
128
+ const dataId = `${annotationUID}-line`;
129
+ const lineUID = `${i}`;
130
+ drawLineSvg(svgDrawingHelper, annotationUID, lineUID, canvasCoordinates[0], canvasCoordinates[1], {
131
+ color,
132
+ width: lineWidth,
133
+ lineDash,
134
+ shadow,
135
+ }, dataId);
136
+ }
137
+ renderStatus = true;
138
+ return renderStatus;
139
+ };
140
+ this.initializeViewportData = (viewportData, id) => {
141
+ viewportData.set(id, {
142
+ pointSetsToUse: [],
143
+ lineStartsWorld: [],
144
+ lineEndsWorld: [],
145
+ });
146
+ return viewportData.get(id);
147
+ };
148
+ this.isPerpendicular = (vec1, vec2) => {
149
+ const dot = vec3.dot(vec1, vec2);
150
+ return Math.abs(dot) < EPSILON;
151
+ };
152
+ }
153
+ isParallel(vec1, vec2) {
154
+ return Math.abs(vec3.dot(vec1, vec2)) > 1 - EPSILON;
155
+ }
156
+ getImageIdNormal(imageId) {
157
+ const { imageOrientationPatient } = metaData.get('imagePlaneModule', imageId);
158
+ const rowCosineVec = vec3.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
159
+ const colCosineVec = vec3.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
160
+ return vec3.cross(vec3.create(), rowCosineVec, colCosineVec);
161
+ }
162
+ }
163
+ OverlayGridTool.toolName = 'OverlayGrid';
164
+ export default OverlayGridTool;
165
+ //# sourceMappingURL=OverlayGridTool.js.map