@cornerstonejs/core
Version:
Cornerstone3D Core
37 lines (36 loc) • 1.29 kB
JavaScript
export const inPlaneDecimationModifier = {
name: 'InPlaneDecimationModifier',
apply(volumeProps, context) {
const [iDecimation = 1, jDecimation = iDecimation] = context.options.ijkDecimation ?? [];
const columnFactor = Math.max(1, Math.floor(iDecimation));
const rowFactor = Math.max(1, Math.floor(jDecimation));
if (columnFactor === 1 && rowFactor === 1) {
return volumeProps;
}
const [columns, rows] = volumeProps.dimensions;
const newColumns = Math.max(1, Math.floor(columns / columnFactor));
const newRows = Math.max(1, Math.floor(rows / rowFactor));
const newDimensions = [
newColumns,
newRows,
volumeProps.dimensions[2],
];
const newSpacing = [
volumeProps.spacing[0] * columnFactor,
volumeProps.spacing[1] * rowFactor,
volumeProps.spacing[2],
];
const metadata = {
...volumeProps.metadata,
Columns: newColumns,
Rows: newRows,
PixelSpacing: [newSpacing[1], newSpacing[0]],
};
return {
...volumeProps,
dimensions: newDimensions,
spacing: newSpacing,
metadata,
};
},
};