Toggle visibility for multiple labelmaps (overlapping)
This commit is contained in:
parent
00fddc1550
commit
437c01511e
@ -393,8 +393,16 @@ const SegmentationPanel = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onSegmentVisibilityChangeHandler = (isVisible, segmentNumber) => {
|
const onSegmentVisibilityChangeHandler = (isVisible, segmentNumber) => {
|
||||||
const labelmap3D = getActiveLabelMaps3D();
|
/** Get all labelmaps with this segmentNumber (overlapping segments) */
|
||||||
|
const { labelmaps3D } = getBrushStackState();
|
||||||
|
const possibleLabelMaps3D = labelmaps3D.filter(({ labelmaps2D }) => {
|
||||||
|
return labelmaps2D.some(({ segmentsOnLabelmap }) =>
|
||||||
|
segmentsOnLabelmap.includes(segmentNumber)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
let segmentsHidden = [];
|
||||||
|
possibleLabelMaps3D.forEach(labelmap3D => {
|
||||||
if (isCornerstone()) {
|
if (isCornerstone()) {
|
||||||
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
||||||
}
|
}
|
||||||
@ -403,10 +411,12 @@ const SegmentationPanel = ({
|
|||||||
onSegmentVisibilityChange(segmentNumber, isVisible);
|
onSegmentVisibilityChange(segmentNumber, isVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
setState(state => ({
|
segmentsHidden = [
|
||||||
...state,
|
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
|
||||||
segmentsHidden: labelmap3D.segmentsHidden,
|
];
|
||||||
}));
|
});
|
||||||
|
|
||||||
|
setState(state => ({ ...state, segmentsHidden }));
|
||||||
|
|
||||||
refreshSegmentations();
|
refreshSegmentations();
|
||||||
refreshViewports();
|
refreshViewports();
|
||||||
@ -553,9 +563,17 @@ const SegmentationPanel = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onVisibilityChangeHandler = isVisible => {
|
const onVisibilityChangeHandler = isVisible => {
|
||||||
const labelmap3D = getActiveLabelMaps3D();
|
let segmentsHidden = [];
|
||||||
|
|
||||||
state.segmentNumbers.forEach(segmentNumber => {
|
state.segmentNumbers.forEach(segmentNumber => {
|
||||||
|
/** Get all labelmaps with this segmentNumber (overlapping segments) */
|
||||||
|
const { labelmaps3D } = getBrushStackState();
|
||||||
|
const possibleLabelMaps3D = labelmaps3D.filter(({ labelmaps2D }) => {
|
||||||
|
return labelmaps2D.some(({ segmentsOnLabelmap }) =>
|
||||||
|
segmentsOnLabelmap.includes(segmentNumber)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
possibleLabelMaps3D.forEach(labelmap3D => {
|
||||||
if (isCornerstone()) {
|
if (isCornerstone()) {
|
||||||
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
||||||
}
|
}
|
||||||
@ -563,12 +581,14 @@ const SegmentationPanel = ({
|
|||||||
if (isVTK()) {
|
if (isVTK()) {
|
||||||
onSegmentVisibilityChange(segmentNumber, isVisible);
|
onSegmentVisibilityChange(segmentNumber, isVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
segmentsHidden = [
|
||||||
|
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
|
||||||
|
];
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
setState(state => ({
|
setState(state => ({ ...state, segmentsHidden }));
|
||||||
...state,
|
|
||||||
segmentsHidden: labelmap3D.segmentsHidden,
|
|
||||||
}));
|
|
||||||
|
|
||||||
refreshSegmentations();
|
refreshSegmentations();
|
||||||
refreshViewports();
|
refreshViewports();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user