@cornerstonejs/core
Version:
Cornerstone3D Core
19 lines (18 loc) • 904 B
JavaScript
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction.js';
import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray.js';
import * as windowLevelUtil from './windowLevel.js';
import { logit } from './logit.js';
export default function createSigmoidRGBTransferFunction(voiRange, approximationNodes = 1024) {
const { windowWidth, windowCenter } = windowLevelUtil.toWindowLevel(voiRange.lower, voiRange.upper);
const range = Array.from({ length: approximationNodes }, (_, i) => (i + 1) / (approximationNodes + 2));
const table = range.flatMap((y) => {
const x = logit(y, windowCenter, windowWidth);
return [x, y, y, y, 0.5, 0.0];
});
const cfun = vtkColorTransferFunction.newInstance();
cfun.buildFunctionFromArray(vtkDataArray.newInstance({
values: table,
numberOfComponents: 6,
}));
return cfun;
}