core/renderer.py
VTK GPU volume rendering pipeline. No UI or Qt dependencies.
VolumeRenderer
from mlenz.core.renderer import VolumeRenderer
renderer = VolumeRenderer()
renderer.set_volume(vol.data, spacing=vol.spacing)
renderer.set_preset("mri_default")
Methods
| Method |
Description |
set_volume(data, spacing) |
Load float32 (Z,Y,X) array into VTK pipeline |
set_preset(name) |
Apply named transfer function preset |
preset_names() |
["mri_default", "bone", "angio", "pet"] |
reset_camera() |
Fit camera to full volume |
show_standalone() |
Launch blocking VTK window (for testing) |
Transfer function presets
| Name |
Best for |
mri_default |
General MRI, soft tissue |
bone |
CT, bony structures |
angio |
MRA/CTA, vessels |
pet |
PET, hot-metal colormap |
Embedding in Qt
from vtkmodules.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
import vtk
vtk_widget = QVTKRenderWindowInteractor(parent_widget)
vtk_widget.GetRenderWindow().AddRenderer(renderer.vtk_renderer)
style = vtk.vtkInteractorStyleTrackballCamera()
vtk_widget.GetRenderWindow().GetInteractor().SetInteractorStyle(style)