@cornerstonejs/tools 2.1.0 → 2.1.2
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.
|
@@ -44,6 +44,7 @@ declare class OrientationMarkerTool extends BaseTool {
|
|
|
44
44
|
static AXIS: number;
|
|
45
45
|
static VTPFILE: number;
|
|
46
46
|
orientationMarkers: any;
|
|
47
|
+
updatingOrientationMarker: any;
|
|
47
48
|
polyDataURL: any;
|
|
48
49
|
_resizeObservers: Map<any, any>;
|
|
49
50
|
static OVERLAY_MARKER_TYPES: typeof OverlayMarkerType;
|
|
@@ -91,6 +91,7 @@ class OrientationMarkerTool extends BaseTool {
|
|
|
91
91
|
orientationWidget.updateViewport();
|
|
92
92
|
};
|
|
93
93
|
this.orientationMarkers = {};
|
|
94
|
+
this.updatingOrientationMarker = {};
|
|
94
95
|
}
|
|
95
96
|
_unsubscribeToViewportNewVolumeSet() {
|
|
96
97
|
const unsubscribe = () => {
|
|
@@ -173,53 +174,58 @@ class OrientationMarkerTool extends BaseTool {
|
|
|
173
174
|
let viewports = renderingEngine.getViewports();
|
|
174
175
|
viewports = filterViewportsWithToolEnabled(viewports, this.getToolName());
|
|
175
176
|
viewports.forEach((viewport) => {
|
|
176
|
-
|
|
177
|
+
const widget = viewport.getWidget(this.getToolName());
|
|
178
|
+
if (!widget || widget.isDeleted()) {
|
|
177
179
|
this.addAxisActorInViewport(viewport);
|
|
178
180
|
}
|
|
179
181
|
});
|
|
180
182
|
}
|
|
181
183
|
async addAxisActorInViewport(viewport) {
|
|
182
184
|
const viewportId = viewport.id;
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
actor
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
185
|
+
if (!this.updatingOrientationMarker[viewportId]) {
|
|
186
|
+
this.updatingOrientationMarker[viewportId] = true;
|
|
187
|
+
const type = this.configuration.overlayMarkerType;
|
|
188
|
+
const overlayConfiguration = this.configuration.overlayConfiguration[type];
|
|
189
|
+
if (this.orientationMarkers[viewportId]) {
|
|
190
|
+
const { actor, orientationWidget } = this.orientationMarkers[viewportId];
|
|
191
|
+
viewport.getRenderer().removeActor(actor);
|
|
192
|
+
orientationWidget.setEnabled(false);
|
|
193
|
+
}
|
|
194
|
+
let actor;
|
|
195
|
+
if (type === 1) {
|
|
196
|
+
actor = this.createAnnotationCube(overlayConfiguration);
|
|
197
|
+
}
|
|
198
|
+
else if (type === 2) {
|
|
199
|
+
actor = vtkAxesActor.newInstance();
|
|
200
|
+
}
|
|
201
|
+
else if (type === 3) {
|
|
202
|
+
actor = await this.createCustomActor();
|
|
203
|
+
}
|
|
204
|
+
const renderer = viewport.getRenderer();
|
|
205
|
+
const renderWindow = viewport
|
|
206
|
+
.getRenderingEngine()
|
|
207
|
+
.offscreenMultiRenderWindow.getRenderWindow();
|
|
208
|
+
const { enabled, viewportCorner, viewportSize, minPixelSize, maxPixelSize, } = this.configuration.orientationWidget;
|
|
209
|
+
const orientationWidget = vtkOrientationMarkerWidget.newInstance({
|
|
210
|
+
actor,
|
|
211
|
+
interactor: renderWindow.getInteractor(),
|
|
212
|
+
parentRenderer: renderer,
|
|
213
|
+
});
|
|
214
|
+
orientationWidget.setEnabled(enabled);
|
|
215
|
+
orientationWidget.setViewportCorner(viewportCorner);
|
|
216
|
+
orientationWidget.setViewportSize(viewportSize);
|
|
217
|
+
orientationWidget.setMinPixelSize(minPixelSize);
|
|
218
|
+
orientationWidget.setMaxPixelSize(maxPixelSize);
|
|
219
|
+
orientationWidget.updateMarkerOrientation();
|
|
220
|
+
this.orientationMarkers[viewportId] = {
|
|
221
|
+
orientationWidget,
|
|
222
|
+
actor,
|
|
223
|
+
};
|
|
224
|
+
viewport.addWidget(this.getToolName(), orientationWidget);
|
|
225
|
+
renderWindow.render();
|
|
226
|
+
viewport.getRenderingEngine().render();
|
|
227
|
+
this.updatingOrientationMarker[viewportId] = false;
|
|
199
228
|
}
|
|
200
|
-
const renderer = viewport.getRenderer();
|
|
201
|
-
const renderWindow = viewport
|
|
202
|
-
.getRenderingEngine()
|
|
203
|
-
.offscreenMultiRenderWindow.getRenderWindow();
|
|
204
|
-
const { enabled, viewportCorner, viewportSize, minPixelSize, maxPixelSize, } = this.configuration.orientationWidget;
|
|
205
|
-
const orientationWidget = vtkOrientationMarkerWidget.newInstance({
|
|
206
|
-
actor,
|
|
207
|
-
interactor: renderWindow.getInteractor(),
|
|
208
|
-
parentRenderer: renderer,
|
|
209
|
-
});
|
|
210
|
-
orientationWidget.setEnabled(enabled);
|
|
211
|
-
orientationWidget.setViewportCorner(viewportCorner);
|
|
212
|
-
orientationWidget.setViewportSize(viewportSize);
|
|
213
|
-
orientationWidget.setMinPixelSize(minPixelSize);
|
|
214
|
-
orientationWidget.setMaxPixelSize(maxPixelSize);
|
|
215
|
-
orientationWidget.updateMarkerOrientation();
|
|
216
|
-
this.orientationMarkers[viewportId] = {
|
|
217
|
-
orientationWidget,
|
|
218
|
-
actor,
|
|
219
|
-
};
|
|
220
|
-
viewport.addWidget(this.getToolName(), orientationWidget);
|
|
221
|
-
renderWindow.render();
|
|
222
|
-
viewport.getRenderingEngine().render();
|
|
223
229
|
}
|
|
224
230
|
async createCustomActor() {
|
|
225
231
|
const url = this.configuration.overlayConfiguration[OverlayMarkerType.CUSTOM]
|
|
@@ -17,7 +17,6 @@ import { getCalibratedLengthUnitsAndScale, getCalibratedAspect, } from '../../ut
|
|
|
17
17
|
import { isViewportPreScaled } from '../../utilities/viewport/isViewportPreScaled';
|
|
18
18
|
import { pointInEllipse } from '../../utilities/math/ellipse';
|
|
19
19
|
import { BasicStatsCalculator } from '../../utilities/math/basic';
|
|
20
|
-
import cloneDeep from 'lodash.clonedeep';
|
|
21
20
|
import { filterAnnotationsWithinSamePlane } from '../../utilities/planar';
|
|
22
21
|
import { getPixelValueUnits } from '../../utilities/getPixelValueUnits';
|
|
23
22
|
const { transformWorldToIndex } = csUtils;
|
|
@@ -295,7 +294,7 @@ class CircleROIStartEndThresholdTool extends CircleROITool {
|
|
|
295
294
|
const { points } = data.handles;
|
|
296
295
|
const startIJK = transformWorldToIndex(imageData, points[0]);
|
|
297
296
|
const endIJK = transformWorldToIndex(imageData, points[0]);
|
|
298
|
-
const handlesToStart =
|
|
297
|
+
const handlesToStart = csUtils.deepClone(points);
|
|
299
298
|
const startWorld = vec3.create();
|
|
300
299
|
imageData.indexToWorldVec3(startIJK, startWorld);
|
|
301
300
|
const endWorld = vec3.create();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cornerstonejs/tools",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "Cornerstone3D Tools",
|
|
5
5
|
"main": "./dist/esm/index.js",
|
|
6
6
|
"types": "./dist/esm/index.d.ts",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"canvas": "^2.11.2"
|
|
106
106
|
},
|
|
107
107
|
"peerDependencies": {
|
|
108
|
-
"@cornerstonejs/core": "^2.1.
|
|
108
|
+
"@cornerstonejs/core": "^2.1.2",
|
|
109
109
|
"@kitware/vtk.js": "32.1.0",
|
|
110
110
|
"@types/d3-array": "^3.0.4",
|
|
111
111
|
"@types/d3-interpolate": "^3.0.1",
|
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
"type": "individual",
|
|
125
125
|
"url": "https://ohif.org/donate"
|
|
126
126
|
},
|
|
127
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "b7246ebfa82367e338a6cf7d09fa0be14be00822"
|
|
128
128
|
}
|