@cornerstonejs/tools 3.29.2 → 3.29.4
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.
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +5 -1
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +11 -0
- package/dist/esm/tools/CrosshairsTool.js +9 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +3 -3
|
@@ -65,6 +65,7 @@ function _imageChangeEventListener(evt) {
|
|
|
65
65
|
if (!derivedImageIds) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
+
let shouldTriggerSegmentationRender = false;
|
|
68
69
|
const updateSegmentationActor = (derivedImageId) => {
|
|
69
70
|
const derivedImage = cache.getImage(derivedImageId);
|
|
70
71
|
if (!derivedImage) {
|
|
@@ -103,7 +104,7 @@ function _imageChangeEventListener(evt) {
|
|
|
103
104
|
},
|
|
104
105
|
},
|
|
105
106
|
]);
|
|
106
|
-
|
|
107
|
+
shouldTriggerSegmentationRender = true;
|
|
107
108
|
return;
|
|
108
109
|
}
|
|
109
110
|
else {
|
|
@@ -119,6 +120,9 @@ function _imageChangeEventListener(evt) {
|
|
|
119
120
|
}
|
|
120
121
|
};
|
|
121
122
|
derivedImageIds.forEach(updateSegmentationActor);
|
|
123
|
+
if (shouldTriggerSegmentationRender) {
|
|
124
|
+
triggerSegmentationRender(viewportId);
|
|
125
|
+
}
|
|
122
126
|
viewport.render();
|
|
123
127
|
if (evt.type === Enums.Events.IMAGE_RENDERED) {
|
|
124
128
|
viewport.element.removeEventListener(Enums.Events.IMAGE_RENDERED, _imageChangeEventListener);
|
|
@@ -18,6 +18,7 @@ const planarContourToolName = PlanarFreehandContourSegmentationTool.toolName;
|
|
|
18
18
|
class SegmentationRenderingEngine {
|
|
19
19
|
constructor() {
|
|
20
20
|
this._needsRender = new Set();
|
|
21
|
+
this._pendingRenderQueue = [];
|
|
21
22
|
this._animationFrameSet = false;
|
|
22
23
|
this._animationFrameHandle = null;
|
|
23
24
|
this._getAllViewports = () => {
|
|
@@ -33,6 +34,12 @@ class SegmentationRenderingEngine {
|
|
|
33
34
|
this._needsRender.clear();
|
|
34
35
|
this._animationFrameSet = false;
|
|
35
36
|
this._animationFrameHandle = null;
|
|
37
|
+
if (this._pendingRenderQueue.length > 0) {
|
|
38
|
+
const nextViewportIds = this._pendingRenderQueue.shift();
|
|
39
|
+
if (nextViewportIds && nextViewportIds.length > 0) {
|
|
40
|
+
this._setViewportsToBeRenderedNextFrame(nextViewportIds);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
36
43
|
};
|
|
37
44
|
}
|
|
38
45
|
renderSegmentationsForViewport(viewportId) {
|
|
@@ -71,6 +78,10 @@ class SegmentationRenderingEngine {
|
|
|
71
78
|
}
|
|
72
79
|
}
|
|
73
80
|
_setViewportsToBeRenderedNextFrame(viewportIds) {
|
|
81
|
+
if (this._animationFrameSet) {
|
|
82
|
+
this._pendingRenderQueue.push(viewportIds);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
74
85
|
viewportIds.forEach((viewportId) => {
|
|
75
86
|
this._needsRender.add(viewportId);
|
|
76
87
|
});
|
|
@@ -51,12 +51,14 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
51
51
|
handleRadius: 3,
|
|
52
52
|
enableHDPIHandles: false,
|
|
53
53
|
referenceLinesCenterGapRadius: 20,
|
|
54
|
+
referenceLinesCenterGapRatio: null,
|
|
54
55
|
filterActorUIDsToSetSlabThickness: [],
|
|
55
56
|
slabThicknessBlendMode: Enums.BlendModes.MAXIMUM_INTENSITY_BLEND,
|
|
56
57
|
mobile: {
|
|
57
58
|
enabled: false,
|
|
58
59
|
opacity: 0.8,
|
|
59
60
|
handleRadius: 9,
|
|
61
|
+
referenceLinesCenterGapRatio: 0.05,
|
|
60
62
|
},
|
|
61
63
|
},
|
|
62
64
|
}) {
|
|
@@ -384,7 +386,13 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
384
386
|
const canvasVectorFromCenterShort = vec2.create();
|
|
385
387
|
vec2.scale(canvasVectorFromCenterShort, canvasUnitVectorFromCenter, canvasMinDimensionLength * 0.2);
|
|
386
388
|
const canvasVectorFromCenterStart = vec2.create();
|
|
387
|
-
const
|
|
389
|
+
const mobileConfig = this.configuration.mobile;
|
|
390
|
+
const { referenceLinesCenterGapRatio } = mobileConfig?.enabled
|
|
391
|
+
? mobileConfig
|
|
392
|
+
: this.configuration;
|
|
393
|
+
const centerGap = referenceLinesCenterGapRatio > 0
|
|
394
|
+
? canvasMinDimensionLength * referenceLinesCenterGapRatio
|
|
395
|
+
: this.configuration.referenceLinesCenterGapRadius;
|
|
388
396
|
vec2.scale(canvasVectorFromCenterStart, canvasUnitVectorFromCenter, otherViewportAnnotations.length === 2 ? centerGap : 0);
|
|
389
397
|
const refLinePointOne = vec2.create();
|
|
390
398
|
const refLinePointTwo = vec2.create();
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "3.29.
|
|
1
|
+
export declare const version = "3.29.4";
|
package/dist/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '3.29.
|
|
1
|
+
export const version = '3.29.4';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cornerstonejs/tools",
|
|
3
|
-
"version": "3.29.
|
|
3
|
+
"version": "3.29.4",
|
|
4
4
|
"description": "Cornerstone3D Tools",
|
|
5
5
|
"types": "./dist/esm/index.d.ts",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"canvas": "^3.1.0"
|
|
109
109
|
},
|
|
110
110
|
"peerDependencies": {
|
|
111
|
-
"@cornerstonejs/core": "^3.29.
|
|
111
|
+
"@cornerstonejs/core": "^3.29.4",
|
|
112
112
|
"@kitware/vtk.js": "32.12.1",
|
|
113
113
|
"@types/d3-array": "^3.0.4",
|
|
114
114
|
"@types/d3-interpolate": "^3.0.1",
|
|
@@ -127,5 +127,5 @@
|
|
|
127
127
|
"type": "individual",
|
|
128
128
|
"url": "https://ohif.org/donate"
|
|
129
129
|
},
|
|
130
|
-
"gitHead": "
|
|
130
|
+
"gitHead": "64e6d79c48a562bef369da783441c5152730f8b4"
|
|
131
131
|
}
|