@cornerstonejs/tools 1.17.1 → 1.19.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.
Files changed (36) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.js +3 -2
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/tools/OrientationMarkerTool.d.ts +88 -0
  5. package/dist/cjs/tools/OrientationMarkerTool.js +193 -0
  6. package/dist/cjs/tools/OrientationMarkerTool.js.map +1 -0
  7. package/dist/cjs/tools/ReferenceLinesTool.d.ts +3 -0
  8. package/dist/cjs/tools/ReferenceLinesTool.js +71 -2
  9. package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
  10. package/dist/cjs/tools/base/AnnotationDisplayTool.js +4 -0
  11. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  12. package/dist/cjs/tools/index.d.ts +2 -1
  13. package/dist/cjs/tools/index.js +3 -1
  14. package/dist/cjs/tools/index.js.map +1 -1
  15. package/dist/esm/index.d.ts +2 -2
  16. package/dist/esm/index.js +2 -2
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/tools/OrientationMarkerTool.d.ts +88 -0
  19. package/dist/esm/tools/OrientationMarkerTool.js +185 -0
  20. package/dist/esm/tools/OrientationMarkerTool.js.map +1 -0
  21. package/dist/esm/tools/ReferenceLinesTool.d.ts +3 -0
  22. package/dist/esm/tools/ReferenceLinesTool.js +71 -2
  23. package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
  24. package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -0
  25. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  26. package/dist/esm/tools/index.d.ts +2 -1
  27. package/dist/esm/tools/index.js +2 -1
  28. package/dist/esm/tools/index.js.map +1 -1
  29. package/dist/umd/index.js +1 -1
  30. package/dist/umd/index.js.map +1 -1
  31. package/package.json +3 -3
  32. package/src/index.ts +2 -0
  33. package/src/tools/OrientationMarkerTool.ts +235 -0
  34. package/src/tools/ReferenceLinesTool.ts +131 -3
  35. package/src/tools/base/AnnotationDisplayTool.ts +4 -0
  36. package/src/tools/index.ts +2 -0
@@ -0,0 +1,88 @@
1
+ import vtkAnnotatedCubeActor from '@kitware/vtk.js/Rendering/Core/AnnotatedCubeActor';
2
+ import { BaseTool } from './base';
3
+ declare class OrientationMarkerTool extends BaseTool {
4
+ static toolName: any;
5
+ static CUBE: number;
6
+ static AXIS: number;
7
+ static VTPFILE: number;
8
+ orientationMarkers: any;
9
+ polyDataURL: any;
10
+ static OVERLAY_MARKER_TYPES: {
11
+ ANNOTATED_CUBE: number;
12
+ AXES: number;
13
+ CUSTOM: number;
14
+ };
15
+ configuration_invalidated: boolean;
16
+ constructor(toolProps?: {}, defaultToolProps?: {
17
+ configuration: {
18
+ orientationWidget: {
19
+ enabled: boolean;
20
+ viewportCorner: import("@kitware/vtk.js/Interaction/Widgets/OrientationMarkerWidget/Constants").Corners;
21
+ viewportSize: number;
22
+ minPixelSize: number;
23
+ maxPixelSize: number;
24
+ };
25
+ overlayMarkerType: number;
26
+ overlayConfiguration: {
27
+ [x: number]: {
28
+ faceProperties: {
29
+ xPlus: {
30
+ text: string;
31
+ faceColor: string;
32
+ faceRotation: number;
33
+ };
34
+ xMinus: {
35
+ text: string;
36
+ faceColor: string;
37
+ faceRotation: number;
38
+ };
39
+ yPlus: {
40
+ text: string;
41
+ faceColor: string;
42
+ fontColor: string;
43
+ faceRotation: number;
44
+ };
45
+ yMinus: {
46
+ text: string;
47
+ faceColor: string;
48
+ fontColor: string;
49
+ };
50
+ zPlus: {
51
+ text: string;
52
+ };
53
+ zMinus: {
54
+ text: string;
55
+ };
56
+ };
57
+ defaultStyle: {
58
+ fontStyle: string;
59
+ fontFamily: string;
60
+ fontColor: string;
61
+ fontSizeScale: (res: any) => number;
62
+ faceColor: string;
63
+ edgeThickness: number;
64
+ edgeColor: string;
65
+ resolution: number;
66
+ };
67
+ polyDataURL?: undefined;
68
+ } | {
69
+ faceProperties?: undefined;
70
+ defaultStyle?: undefined;
71
+ polyDataURL?: undefined;
72
+ } | {
73
+ polyDataURL: string;
74
+ faceProperties?: undefined;
75
+ defaultStyle?: undefined;
76
+ };
77
+ };
78
+ };
79
+ });
80
+ onSetToolEnabled: () => void;
81
+ onSetToolActive: () => void;
82
+ private initViewports;
83
+ addAxisActorInViewport(viewport: any): Promise<void>;
84
+ private createCustomActor;
85
+ private createAnnotationCube;
86
+ createAnnotatedCubeActor(): Promise<vtkAnnotatedCubeActor>;
87
+ }
88
+ export default OrientationMarkerTool;
@@ -0,0 +1,185 @@
1
+ import vtkOrientationMarkerWidget from '@kitware/vtk.js/Interaction/Widgets/OrientationMarkerWidget';
2
+ import vtkAnnotatedCubeActor from '@kitware/vtk.js/Rendering/Core/AnnotatedCubeActor';
3
+ import vtkAxesActor from '@kitware/vtk.js/Rendering/Core/AxesActor';
4
+ import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
5
+ import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
6
+ import vtkXMLPolyDataReader from '@kitware/vtk.js/IO/XML/XMLPolyDataReader';
7
+ import vtkPolyData from '@kitware/vtk.js/Common/DataModel/PolyData';
8
+ import { BaseTool } from './base';
9
+ import { getRenderingEngines } from '@cornerstonejs/core';
10
+ import { filterViewportsWithToolEnabled } from '../utilities/viewportFilters';
11
+ const OverlayMarkerType = {
12
+ ANNOTATED_CUBE: 1,
13
+ AXES: 2,
14
+ CUSTOM: 3,
15
+ };
16
+ class OrientationMarkerTool extends BaseTool {
17
+ constructor(toolProps = {}, defaultToolProps = {
18
+ configuration: {
19
+ orientationWidget: {
20
+ enabled: true,
21
+ viewportCorner: vtkOrientationMarkerWidget.Corners.BOTTOM_RIGHT,
22
+ viewportSize: 0.15,
23
+ minPixelSize: 100,
24
+ maxPixelSize: 300,
25
+ },
26
+ overlayMarkerType: OrientationMarkerTool.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE,
27
+ overlayConfiguration: {
28
+ [OrientationMarkerTool.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE]: {
29
+ faceProperties: {
30
+ xPlus: { text: 'R', faceColor: '#ffff00', faceRotation: 90 },
31
+ xMinus: { text: 'L', faceColor: '#ffff00', faceRotation: 270 },
32
+ yPlus: {
33
+ text: 'P',
34
+ faceColor: '#00ffff',
35
+ fontColor: 'white',
36
+ faceRotation: 180,
37
+ },
38
+ yMinus: { text: 'A', faceColor: '#00ffff', fontColor: 'white' },
39
+ zPlus: { text: 'S' },
40
+ zMinus: { text: 'I' },
41
+ },
42
+ defaultStyle: {
43
+ fontStyle: 'bold',
44
+ fontFamily: 'Arial',
45
+ fontColor: 'black',
46
+ fontSizeScale: (res) => res / 2,
47
+ faceColor: '#0000ff',
48
+ edgeThickness: 0.1,
49
+ edgeColor: 'black',
50
+ resolution: 400,
51
+ },
52
+ },
53
+ [OrientationMarkerTool.OVERLAY_MARKER_TYPES.AXES]: {},
54
+ [OrientationMarkerTool.OVERLAY_MARKER_TYPES.CUSTOM]: {
55
+ polyDataURL: 'https://raw.githubusercontent.com/Slicer/Slicer/80ad0a04dacf134754459557bf2638c63f3d1d1b/Base/Logic/Resources/OrientationMarkers/Human.vtp',
56
+ },
57
+ },
58
+ },
59
+ }) {
60
+ super(toolProps, defaultToolProps);
61
+ this.configuration_invalidated = true;
62
+ this.onSetToolEnabled = () => {
63
+ this.initViewports();
64
+ this.configuration_invalidated = true;
65
+ };
66
+ this.onSetToolActive = () => {
67
+ this.initViewports();
68
+ };
69
+ this.orientationMarkers = {};
70
+ this.configuration_invalidated = true;
71
+ }
72
+ static { this.CUBE = 1; }
73
+ static { this.AXIS = 2; }
74
+ static { this.VTPFILE = 3; }
75
+ static { this.OVERLAY_MARKER_TYPES = OverlayMarkerType; }
76
+ initViewports() {
77
+ const renderingEngines = getRenderingEngines();
78
+ const renderingEngine = renderingEngines[0];
79
+ if (!renderingEngine) {
80
+ return;
81
+ }
82
+ let viewports = renderingEngine.getViewports();
83
+ viewports = filterViewportsWithToolEnabled(viewports, this.getToolName());
84
+ viewports.forEach((viewport) => this.addAxisActorInViewport(viewport));
85
+ }
86
+ async addAxisActorInViewport(viewport) {
87
+ const viewportId = viewport.id;
88
+ const type = this.configuration.overlayMarkerType;
89
+ const overlayConfiguration = this.configuration.overlayConfiguration[type];
90
+ if (this.orientationMarkers[viewportId]) {
91
+ const { actor, orientationWidget } = this.orientationMarkers[viewportId];
92
+ viewport.getRenderer().removeActor(actor);
93
+ orientationWidget.setEnabled(false);
94
+ }
95
+ let actor;
96
+ if (type === 1) {
97
+ actor = this.createAnnotationCube(overlayConfiguration);
98
+ }
99
+ else if (type === 2) {
100
+ actor = vtkAxesActor.newInstance();
101
+ }
102
+ else if (type === 3) {
103
+ actor = await this.createCustomActor();
104
+ }
105
+ const renderer = viewport.getRenderer();
106
+ const renderWindow = viewport
107
+ .getRenderingEngine()
108
+ .offscreenMultiRenderWindow.getRenderWindow();
109
+ const { enabled, viewportCorner, viewportSize, minPixelSize, maxPixelSize, } = this.configuration.orientationWidget;
110
+ const orientationWidget = vtkOrientationMarkerWidget.newInstance({
111
+ actor,
112
+ interactor: renderWindow.getInteractor(),
113
+ parentRenderer: renderer,
114
+ });
115
+ orientationWidget.setEnabled(enabled);
116
+ orientationWidget.setViewportCorner(viewportCorner);
117
+ orientationWidget.setViewportSize(viewportSize);
118
+ orientationWidget.setMinPixelSize(minPixelSize);
119
+ orientationWidget.setMaxPixelSize(maxPixelSize);
120
+ orientationWidget.updateMarkerOrientation();
121
+ this.orientationMarkers[viewportId] = {
122
+ orientationWidget,
123
+ actor,
124
+ };
125
+ renderer.resetCamera();
126
+ renderWindow.render();
127
+ viewport.getRenderingEngine().render();
128
+ this.configuration_invalidated = false;
129
+ }
130
+ async createCustomActor() {
131
+ const url = this.configuration.overlayConfiguration[OverlayMarkerType.CUSTOM]
132
+ .polyDataURL;
133
+ const response = await fetch(url);
134
+ const arrayBuffer = await response.arrayBuffer();
135
+ const vtpReader = vtkXMLPolyDataReader.newInstance();
136
+ vtpReader.parseAsArrayBuffer(arrayBuffer);
137
+ vtpReader.update();
138
+ const polyData = vtkPolyData.newInstance();
139
+ polyData.shallowCopy(vtpReader.getOutputData());
140
+ polyData.getPointData().setActiveScalars('Color');
141
+ const mapper = vtkMapper.newInstance();
142
+ mapper.setInputData(polyData);
143
+ mapper.setColorModeToDirectScalars();
144
+ const actor = vtkActor.newInstance();
145
+ actor.setMapper(mapper);
146
+ actor.rotateZ(180);
147
+ return actor;
148
+ }
149
+ createAnnotationCube(overlayConfiguration) {
150
+ const actor = vtkAnnotatedCubeActor.newInstance();
151
+ actor.setDefaultStyle({ ...overlayConfiguration.defaultStyle });
152
+ actor.setXPlusFaceProperty({
153
+ ...overlayConfiguration.faceProperties.xPlus,
154
+ });
155
+ actor.setXMinusFaceProperty({
156
+ ...overlayConfiguration.faceProperties.xMinus,
157
+ });
158
+ actor.setYPlusFaceProperty({
159
+ ...overlayConfiguration.faceProperties.yPlus,
160
+ });
161
+ actor.setYMinusFaceProperty({
162
+ ...overlayConfiguration.faceProperties.yMinus,
163
+ });
164
+ actor.setZPlusFaceProperty({
165
+ ...overlayConfiguration.faceProperties.zPlus,
166
+ });
167
+ actor.setZMinusFaceProperty({
168
+ ...overlayConfiguration.faceProperties.zMinus,
169
+ });
170
+ return actor;
171
+ }
172
+ async createAnnotatedCubeActor() {
173
+ const axes = vtkAnnotatedCubeActor.newInstance();
174
+ const { faceProperties, defaultStyle } = this.configuration.annotatedCube;
175
+ axes.setDefaultStyle(defaultStyle);
176
+ Object.keys(faceProperties).forEach((key) => {
177
+ const methodName = `set${key.charAt(0).toUpperCase() + key.slice(1)}FaceProperty`;
178
+ axes[methodName](faceProperties[key]);
179
+ });
180
+ return axes;
181
+ }
182
+ }
183
+ OrientationMarkerTool.toolName = 'OrientationMarker';
184
+ export default OrientationMarkerTool;
185
+ //# sourceMappingURL=OrientationMarkerTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrientationMarkerTool.js","sourceRoot":"","sources":["../../../src/tools/OrientationMarkerTool.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ declare class ReferenceLines extends AnnotationDisplayTool {
20
20
  onCameraModified: (evt: Types.EventTypes.CameraModifiedEvent) => void;
21
21
  renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean;
22
22
  isPerpendicular: (vec1: Types.Point3, vec2: Types.Point3) => boolean;
23
+ private handleFullDimension;
24
+ intersectInfiniteLines(line1Start: Types.Point2, line1End: Types.Point2, line2Start: Types.Point2, line2End: Types.Point2): number[];
23
25
  isParallel(vec1: Types.Point3, vec2: Types.Point3): boolean;
26
+ isInBound(point: number[], dimensions: Types.Point3): boolean;
24
27
  }
25
28
  export default ReferenceLines;
@@ -11,6 +11,7 @@ class ReferenceLines extends AnnotationDisplayTool {
11
11
  supportedInteractionTypes: ['Mouse', 'Touch'],
12
12
  configuration: {
13
13
  sourceViewportId: '',
14
+ showFullDimension: false,
14
15
  },
15
16
  }) {
16
17
  super(toolProps, defaultToolProps);
@@ -93,7 +94,7 @@ class ReferenceLines extends AnnotationDisplayTool {
93
94
  const topRight = annotation.data.handles.points[1];
94
95
  const bottomLeft = annotation.data.handles.points[2];
95
96
  const bottomRight = annotation.data.handles.points[3];
96
- const { focalPoint, viewPlaneNormal } = targetViewport.getCamera();
97
+ const { focalPoint, viewPlaneNormal, viewUp } = targetViewport.getCamera();
97
98
  const { viewPlaneNormal: sourceViewPlaneNormal } = sourceViewport.getCamera();
98
99
  if (this.isParallel(viewPlaneNormal, sourceViewPlaneNormal)) {
99
100
  return renderStatus;
@@ -121,7 +122,10 @@ class ReferenceLines extends AnnotationDisplayTool {
121
122
  const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
122
123
  const color = this.getStyle('color', styleSpecifier, annotation);
123
124
  const shadow = this.getStyle('shadow', styleSpecifier, annotation);
124
- const canvasCoordinates = [lineStartWorld, lineEndWorld].map((world) => targetViewport.worldToCanvas(world));
125
+ let canvasCoordinates = [lineStartWorld, lineEndWorld].map((world) => targetViewport.worldToCanvas(world));
126
+ if (this.configuration.showFullDimension) {
127
+ canvasCoordinates = this.handleFullDimension(targetViewport, lineStartWorld, viewPlaneNormal, viewUp, lineEndWorld, canvasCoordinates);
128
+ }
125
129
  const dataId = `${annotationUID}-line`;
126
130
  const lineUID = '1';
127
131
  drawLineSvg(svgDrawingHelper, annotationUID, lineUID, canvasCoordinates[0], canvasCoordinates[1], {
@@ -138,9 +142,74 @@ class ReferenceLines extends AnnotationDisplayTool {
138
142
  return Math.abs(dot) < EPSILON;
139
143
  };
140
144
  }
145
+ handleFullDimension(targetViewport, lineStartWorld, viewPlaneNormal, viewUp, lineEndWorld, canvasCoordinates) {
146
+ const renderingEngine = targetViewport.getRenderingEngine();
147
+ const targetId = this.getTargetId(targetViewport);
148
+ const targetImage = this.getTargetIdImage(targetId, renderingEngine);
149
+ const referencedImageId = this.getReferencedImageId(targetViewport, lineStartWorld, viewPlaneNormal, viewUp);
150
+ if (referencedImageId && targetImage) {
151
+ try {
152
+ const { imageData, dimensions } = targetImage;
153
+ const [topLeftImageCoord, topRightImageCoord, bottomRightImageCoord, bottomLeftImageCoord,] = [
154
+ imageData.indexToWorld([0, 0, 0]),
155
+ imageData.indexToWorld([dimensions[0] - 1, 0, 0]),
156
+ imageData.indexToWorld([
157
+ dimensions[0] - 1,
158
+ dimensions[1] - 1,
159
+ 0,
160
+ ]),
161
+ imageData.indexToWorld([0, dimensions[1] - 1, 0]),
162
+ ].map((world) => csUtils.worldToImageCoords(referencedImageId, world));
163
+ const [lineStartImageCoord, lineEndImageCoord] = [
164
+ lineStartWorld,
165
+ lineEndWorld,
166
+ ].map((world) => csUtils.worldToImageCoords(referencedImageId, world));
167
+ canvasCoordinates = [
168
+ [topLeftImageCoord, topRightImageCoord],
169
+ [topRightImageCoord, bottomRightImageCoord],
170
+ [bottomLeftImageCoord, bottomRightImageCoord],
171
+ [topLeftImageCoord, bottomLeftImageCoord],
172
+ ]
173
+ .map(([start, end]) => this.intersectInfiniteLines(start, end, lineStartImageCoord, lineEndImageCoord))
174
+ .filter((point) => point && this.isInBound(point, dimensions))
175
+ .map((point) => {
176
+ const world = csUtils.imageToWorldCoords(referencedImageId, point);
177
+ return targetViewport.worldToCanvas(world);
178
+ });
179
+ }
180
+ catch (err) {
181
+ console.log(err);
182
+ }
183
+ }
184
+ return canvasCoordinates;
185
+ }
186
+ intersectInfiniteLines(line1Start, line1End, line2Start, line2End) {
187
+ const [x1, y1] = line1Start;
188
+ const [x2, y2] = line1End;
189
+ const [x3, y3] = line2Start;
190
+ const [x4, y4] = line2End;
191
+ const a1 = y2 - y1;
192
+ const b1 = x1 - x2;
193
+ const c1 = x2 * y1 - x1 * y2;
194
+ const a2 = y4 - y3;
195
+ const b2 = x3 - x4;
196
+ const c2 = x4 * y3 - x3 * y4;
197
+ if (Math.abs(a1 * b2 - a2 * b1) < EPSILON) {
198
+ return;
199
+ }
200
+ const x = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1);
201
+ const y = (a2 * c1 - a1 * c2) / (a1 * b2 - a2 * b1);
202
+ return [x, y];
203
+ }
141
204
  isParallel(vec1, vec2) {
142
205
  return Math.abs(vec3.dot(vec1, vec2)) > 1 - EPSILON;
143
206
  }
207
+ isInBound(point, dimensions) {
208
+ return (point[0] >= 0 &&
209
+ point[0] <= dimensions[0] &&
210
+ point[1] >= 0 &&
211
+ point[1] <= dimensions[1]);
212
+ }
144
213
  }
145
214
  ReferenceLines.toolName = 'ReferenceLines';
146
215
  export default ReferenceLines;
@@ -1 +1 @@
1
- {"version":3,"file":"ReferenceLinesTool.js","sourceRoot":"","sources":["../../../src/tools/ReferenceLinesTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReferenceLinesTool.js","sourceRoot":"","sources":["../../../src/tools/ReferenceLinesTool.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ class AnnotationDisplayTool extends BaseTool {
20
20
  return;
21
21
  }
22
22
  toolSpecificAnnotations.forEach((annotation) => {
23
+ if (!annotation.metadata?.referencedImageId) {
24
+ return;
25
+ }
23
26
  const referencedImageURI = utilities.imageIdToURI(annotation.metadata.referencedImageId);
24
27
  if (referencedImageURI === imageURI) {
25
28
  annotation.invalidated = true;
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/base/AnnotationDisplayTool.ts"],"names":[],"mappings":"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"}
@@ -34,4 +34,5 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
34
34
  import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
35
35
  import BrushTool from './segmentation/BrushTool';
36
36
  import PaintFillTool from './segmentation/PaintFillTool';
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, };
37
+ import OrientationMarkerTool from './OrientationMarkerTool';
38
+ 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, OrientationMarkerTool, };
@@ -34,5 +34,6 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
34
34
  import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
35
35
  import BrushTool from './segmentation/BrushTool';
36
36
  import PaintFillTool from './segmentation/PaintFillTool';
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, };
37
+ import OrientationMarkerTool from './OrientationMarkerTool';
38
+ 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, OrientationMarkerTool, };
38
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AACxE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAG7E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,iCAAiC,MAAM,kDAAkD,CAAC;AACjG,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,qBAAqB,EAErB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAElB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AACxE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAG7E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,iCAAiC,MAAM,kDAAkD,CAAC;AACjG,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,qBAAqB,EAErB,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAElB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,CAAC"}