27 lines
		
	
	
		
			987 B
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			987 B
		
	
	
	
		
			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';
 | 
						|
 | 
						|
export default function setPetColorMapTransferFunctionForVolumeActor(
 | 
						|
  volumeInfo
 | 
						|
) {
 | 
						|
  const { volumeActor, preset } = volumeInfo;
 | 
						|
  const mapper = volumeActor.getMapper();
 | 
						|
  mapper.setSampleDistance(1.0);
 | 
						|
 | 
						|
  const cfun = vtkColorTransferFunction.newInstance();
 | 
						|
  let presetToUse = preset ? preset : vtkColorMaps.getPresetByName('hsv');
 | 
						|
  cfun.applyColorMap(presetToUse);
 | 
						|
  cfun.setMappingRange(0, 5);
 | 
						|
 | 
						|
  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);
 | 
						|
}
 |