在C++中,可以通过qMRMLThreeDWidget->qMRMLThreeDView->vtkRendWindow->vtkRenderer
这样的Pipeline来获取vtkRenderer
,那么应该如何在Slicer的Python Interactor中实现这一点?
Slicer官方的doc
中有提到这个:Access VTK views, renderers, and cameras
通过slicer.app.layoutManger
接口访问Slicer自带的Four-up Layout
的管理类,然后可以访问到诸如'Red','Yellow','Green'
这些sliceWidget
和threeDWidget
。
之后就是和C++一样的管线获取到vtkRenderer
并添加你想渲染的vtkActor
吧
layoutManager = slicer.app.layoutManager()
layoutManager.threeDViewCount
1
threeDView = layoutManager.threeDWidget(0).threeDView()
renderWindow = threeDView.renderWindow()
renderer = renderWindow.Render()
renderer = renderWindow.GetRenderers().GetFirstRenderer()
PolyDataActor = vtk.vtkActor()
PolyDataMapper = vtk.vtkPolyDataMapper()
PolyDataMapper.SetInputData(polydata)
PolyDataActor.SetMapper(PolyDataMapper)
renderer.AddActor(PolyDataActor)
renderWindow.AddRenderer(renderer)
renderWindow.Render()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)