Slicer.001 在Slicer的3D窗口中渲染VTK对象

Slicer.001 在Slicer的3D窗口中渲染VTK对象,第1张

项目场景:

在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'这些sliceWidgetthreeDWidget



之后就是和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()

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/634477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存