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);
 | |
| }
 |