我正在尝试创建一个可编程的过滤器来提取等值面。我知道我可以手动输入多个Isosurfaces,然后通过一个过滤器将它们全部提取出来。问题是,我必须手动输入它们。在我的用例中,我有一堆要使用的isovalues,因此手工输入它们有点乏味。
我试过使用可编程过滤器,但我有点困在我得到的数据格式上。
到目前为止,我得到的是:
pdi = self.GetPolyDataInput()
pdo = self.GetPolyDataOutput()
c = vtk.vtkContourFilter()
c.SetInputConnection(pdo)
c.SetValue(0, 0.01)
c.Update()
self.GetOutput().ShallowCopy(c.GetOutput())
问题是,pdo是“无”的。当我使用pdo=self.GetOutput()然后我得到一个vtkImageData对象。它不能作为轮廓滤波器的输入连接。
我的理想解决方案是一段代码,我只需复制一个值列表,其中包含这些值的已渲染isosurfaces,最好是作为不同的对象,这样我就可以为它们上色并在当前RenderView中添加/删除它们。
我使用原始数据作为输入
您可以使用pythonshell来实现这一点。在管道浏览器中单击轮廓对象。然后,打开pythonshell(工具->pythonshell)。在shell中执行以下几行Python代码:
相关问题 更多 >
编程相关推荐