@cornerstonejs/tools 2.0.0-beta.28 → 2.0.0-beta.29
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/constants/COLOR_LUT.d.ts +2 -1
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +0 -1
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedListener.d.ts +3 -0
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedListener.js +6 -0
- package/dist/esm/init.js +4 -0
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +22 -12
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +63 -25
- package/dist/esm/stateManagement/segmentation/SegmentationStyle.d.ts +22 -25
- package/dist/esm/stateManagement/segmentation/SegmentationStyle.js +138 -77
- package/dist/esm/stateManagement/segmentation/activeSegmentation.js +0 -4
- package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +5 -5
- package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +12 -8
- package/dist/esm/stateManagement/segmentation/config/styleHelpers.d.ts +17 -31
- package/dist/esm/stateManagement/segmentation/config/styleHelpers.js +14 -37
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.js +4 -14
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +10 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +10 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.js +3 -1
- package/dist/esm/stateManagement/segmentation/getGlobalStyle.js +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.js +0 -1
- package/dist/esm/stateManagement/segmentation/helpers/internalGetHiddenSegmentIndices.d.ts +5 -0
- package/dist/esm/stateManagement/segmentation/helpers/internalGetHiddenSegmentIndices.js +14 -0
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +13 -6
- package/dist/esm/stateManagement/segmentation/index.d.ts +3 -1
- package/dist/esm/stateManagement/segmentation/index.js +3 -1
- package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.js +9 -8
- package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +0 -1
- package/dist/esm/stateManagement/segmentation/removeSegment.d.ts +3 -0
- package/dist/esm/stateManagement/segmentation/removeSegment.js +50 -0
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +10 -12
- package/dist/esm/stateManagement/segmentation/segmentIndex.js +18 -2
- package/dist/esm/stateManagement/segmentation/segmentLocking.js +7 -11
- package/dist/esm/stateManagement/segmentation/setGlobalStyle.js +3 -3
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +3 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +3 -1
- package/dist/esm/stateManagement/segmentation/updateSegmentations.d.ts +5 -0
- package/dist/esm/stateManagement/segmentation/updateSegmentations.js +11 -0
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js +11 -10
- package/dist/esm/tools/displayTools/Contour/contourConfig.js +2 -2
- package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +1 -5
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +3 -3
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +38 -29
- package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +2 -2
- package/dist/esm/tools/segmentation/BrushTool.js +4 -1
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +1 -1
- package/dist/esm/types/ContourTypes.d.ts +15 -8
- package/dist/esm/types/EventTypes.d.ts +6 -0
- package/dist/esm/types/LabelmapTypes.d.ts +9 -6
- package/dist/esm/types/SegmentationStateTypes.d.ts +31 -21
- package/dist/esm/types/SurfaceTypes.d.ts +1 -0
- package/dist/esm/types/index.d.ts +6 -4
- package/dist/esm/utilities/dynamicVolume/generateImageFromTimeData.d.ts +8 -2
- package/dist/esm/utilities/dynamicVolume/generateImageFromTimeData.js +51 -24
- package/dist/esm/utilities/dynamicVolume/index.d.ts +2 -2
- package/dist/esm/utilities/dynamicVolume/index.js +2 -2
- package/package.json +3 -3
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import { Enums } from '@cornerstonejs/core';
|
|
2
2
|
const operationFunctions = {
|
|
3
|
-
[Enums.GenerateImageType.SUM]: (voxelManager, frames,
|
|
4
|
-
const
|
|
5
|
-
for (
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
[Enums.GenerateImageType.SUM]: (voxelManager, frames, callback) => {
|
|
4
|
+
const arrayLength = voxelManager.getScalarDataLength();
|
|
5
|
+
for (let j = 0; j < arrayLength; j++) {
|
|
6
|
+
let sum = 0;
|
|
7
|
+
for (const timepoint of frames) {
|
|
8
|
+
sum += voxelManager.getAtIndexAndTimePoint(j, timepoint);
|
|
8
9
|
}
|
|
10
|
+
callback(j, sum);
|
|
9
11
|
}
|
|
10
|
-
return finalArray;
|
|
11
12
|
},
|
|
12
|
-
[Enums.GenerateImageType.SUBTRACT]: (voxelManager, frames,
|
|
13
|
+
[Enums.GenerateImageType.SUBTRACT]: (voxelManager, frames, callback) => {
|
|
13
14
|
if (frames.length !== 2) {
|
|
14
15
|
throw new Error('Please provide only 2 time points for subtraction.');
|
|
15
16
|
}
|
|
16
|
-
const
|
|
17
|
+
const arrayLength = voxelManager.getScalarDataLength();
|
|
17
18
|
for (let j = 0; j < arrayLength; j++) {
|
|
18
|
-
|
|
19
|
-
voxelManager.getAtIndexAndTimePoint(j, frames[
|
|
20
|
-
|
|
19
|
+
const difference = voxelManager.getAtIndexAndTimePoint(j, frames[0]) -
|
|
20
|
+
voxelManager.getAtIndexAndTimePoint(j, frames[1]);
|
|
21
|
+
callback(j, difference);
|
|
21
22
|
}
|
|
22
|
-
return finalArray;
|
|
23
23
|
},
|
|
24
|
-
[Enums.GenerateImageType.AVERAGE]: (voxelManager, frames,
|
|
25
|
-
const
|
|
26
|
-
for (
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
[Enums.GenerateImageType.AVERAGE]: (voxelManager, frames, callback) => {
|
|
25
|
+
const arrayLength = voxelManager.getScalarDataLength();
|
|
26
|
+
for (let j = 0; j < arrayLength; j++) {
|
|
27
|
+
let sum = 0;
|
|
28
|
+
for (const timepoint of frames) {
|
|
29
|
+
sum += voxelManager.getAtIndexAndTimePoint(j, timepoint);
|
|
29
30
|
}
|
|
31
|
+
const average = sum / frames.length;
|
|
32
|
+
callback(j, average);
|
|
30
33
|
}
|
|
31
|
-
for (let k = 0; k < arrayLength; k++) {
|
|
32
|
-
finalArray[k] /= frames.length;
|
|
33
|
-
}
|
|
34
|
-
return finalArray;
|
|
35
34
|
},
|
|
36
35
|
};
|
|
37
|
-
function generateImageFromTimeData(dynamicVolume, operation,
|
|
36
|
+
function generateImageFromTimeData(dynamicVolume, operation, options) {
|
|
37
|
+
const { frameNumbers } = options;
|
|
38
38
|
const frames = frameNumbers || [...Array(dynamicVolume.numTimePoints).keys()];
|
|
39
39
|
if (frames.length <= 1) {
|
|
40
40
|
throw new Error('Please provide two or more time points');
|
|
@@ -45,6 +45,33 @@ function generateImageFromTimeData(dynamicVolume, operation, frameNumbers) {
|
|
|
45
45
|
if (!operationFunction) {
|
|
46
46
|
throw new Error(`Unsupported operation: ${operation}`);
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
const resultArray = new Float32Array(arrayLength);
|
|
49
|
+
operationFunction(voxelManager, frames, (index, value) => {
|
|
50
|
+
resultArray[index] = value;
|
|
51
|
+
});
|
|
52
|
+
return resultArray;
|
|
53
|
+
}
|
|
54
|
+
function updateVolumeFromTimeData(dynamicVolume, operation, options) {
|
|
55
|
+
const { frameNumbers, targetVolume } = options;
|
|
56
|
+
if (!targetVolume) {
|
|
57
|
+
throw new Error('A target volume must be provided');
|
|
58
|
+
}
|
|
59
|
+
const frames = frameNumbers || [...Array(dynamicVolume.numTimePoints).keys()];
|
|
60
|
+
if (frames.length <= 1) {
|
|
61
|
+
throw new Error('Please provide two or more time points');
|
|
62
|
+
}
|
|
63
|
+
const voxelManager = dynamicVolume.voxelManager;
|
|
64
|
+
const targetVoxelManager = targetVolume.voxelManager;
|
|
65
|
+
const operationFunction = operationFunctions[operation];
|
|
66
|
+
if (!operationFunction) {
|
|
67
|
+
throw new Error(`Unsupported operation: ${operation}`);
|
|
68
|
+
}
|
|
69
|
+
operationFunction(voxelManager, frames, (index, value) => {
|
|
70
|
+
targetVoxelManager.setAtIndex(index, value);
|
|
71
|
+
});
|
|
72
|
+
targetVoxelManager.resetModifiedSlices();
|
|
73
|
+
for (let k = 0; k < targetVolume.dimensions[2]; k++) {
|
|
74
|
+
targetVoxelManager.modifiedSlices.add(k);
|
|
75
|
+
}
|
|
49
76
|
}
|
|
50
|
-
export
|
|
77
|
+
export { generateImageFromTimeData, updateVolumeFromTimeData };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import getDataInTime from './getDataInTime';
|
|
2
|
-
import generateImageFromTimeData from './generateImageFromTimeData';
|
|
2
|
+
import { generateImageFromTimeData, updateVolumeFromTimeData } from './generateImageFromTimeData';
|
|
3
3
|
export { getDataInTime };
|
|
4
|
-
export { generateImageFromTimeData };
|
|
4
|
+
export { generateImageFromTimeData, updateVolumeFromTimeData };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import getDataInTime from './getDataInTime';
|
|
2
|
-
import generateImageFromTimeData from './generateImageFromTimeData';
|
|
2
|
+
import { generateImageFromTimeData, updateVolumeFromTimeData, } from './generateImageFromTimeData';
|
|
3
3
|
export { getDataInTime };
|
|
4
|
-
export { generateImageFromTimeData };
|
|
4
|
+
export { generateImageFromTimeData, updateVolumeFromTimeData };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cornerstonejs/tools",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.29",
|
|
4
4
|
"description": "Cornerstone3D Tools",
|
|
5
5
|
"main": "dist/umd/index.js",
|
|
6
6
|
"types": "dist/esm/index.d.ts",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"@cornerstonejs/core": "^2.0.0-beta.
|
|
100
|
+
"@cornerstonejs/core": "^2.0.0-beta.29",
|
|
101
101
|
"@types/offscreencanvas": "2019.7.3",
|
|
102
102
|
"comlink": "^4.4.1",
|
|
103
103
|
"lodash.get": "^4.4.2"
|
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
"type": "individual",
|
|
125
125
|
"url": "https://ohif.org/donate"
|
|
126
126
|
},
|
|
127
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "fd9316cac241522bc5c43d267e41c7a4e36bec96"
|
|
128
128
|
}
|