44 lines
1.5 KiB
Plaintext
44 lines
1.5 KiB
Plaintext
import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps'
|
|
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction'
|
|
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction'
|
|
var currentPreset = 'hsv'
|
|
var upper = 6
|
|
function setPetColorMapTransferFunctionForVolumeActor(
|
|
volumeInfo
|
|
) {
|
|
const { volumeActor, preset } = volumeInfo
|
|
const mapper = volumeActor.getMapper()
|
|
mapper.setSampleDistance(1.0)
|
|
// const range = volumeActor
|
|
// .getProperty()
|
|
// .getRGBTransferFunction(0)
|
|
// .getRange()
|
|
// console.log(range)
|
|
const cfun = vtkColorTransferFunction.newInstance()
|
|
const presetToUse = preset || vtkColorMaps.getPresetByName(currentPreset)
|
|
cfun.applyColorMap(presetToUse)
|
|
console.log(upper)
|
|
cfun.setMappingRange(0, upper)
|
|
// const range1 = volumeActor
|
|
// .getProperty()
|
|
// .getRGBTransferFunction(0)
|
|
// .getRange()
|
|
// console.log(range1)
|
|
volumeActor.getProperty().setRGBTransferFunction(0, cfun)
|
|
|
|
// Create scalar opacity function
|
|
const ofun = vtkPiecewiseFunction.newInstance()
|
|
ofun.addPoint(0, 0.0)
|
|
ofun.addPoint(0.1, 0.9)
|
|
ofun.addPoint(5, 1.0)
|
|
|
|
volumeActor.getProperty().setScalarOpacity(0, ofun)
|
|
}
|
|
function setColorPreset(preset) {
|
|
currentPreset = preset
|
|
}
|
|
function setRangeUper(v) {
|
|
upper = v
|
|
}
|
|
export { setPetColorMapTransferFunctionForVolumeActor, setColorPreset, setRangeUper }
|