1#!/usr/bin/env python 2 3import os 4import vtk 5from vtk.util.misc import vtkGetDataRoot 6from vtk.util.misc import vtkGetTempDir 7 8VTK_DATA_ROOT = vtkGetDataRoot() 9VTK_TEMP_DIR = vtkGetTempDir() 10 11file0 = VTK_TEMP_DIR + '/idFile0.vtp' 12file1 = VTK_TEMP_DIR + '/idFile1.vtp' 13file2 = VTK_TEMP_DIR + '/idFile2.vtp' 14 15# read in some poly data 16pdReader = vtk.vtkPolyDataReader() 17pdReader.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk") 18pdReader.Update() 19 20extract = vtk.vtkExtractPolyDataPiece() 21extract.SetInputConnection(pdReader.GetOutputPort()) 22 23# write various versions 24pdWriter = vtk.vtkXMLPolyDataWriter() 25pdWriter.SetFileName(file0) 26pdWriter.SetDataModeToAscii() 27pdWriter.SetInputConnection(pdReader.GetOutputPort()) 28pdWriter.Write() 29 30pdWriter.SetFileName(file1) 31pdWriter.SetInputConnection(extract.GetOutputPort()) 32pdWriter.SetDataModeToAppended() 33pdWriter.SetNumberOfPieces(2) 34pdWriter.Write() 35 36pdWriter.SetFileName(file2) 37pdWriter.SetDataModeToBinary() 38pdWriter.SetGhostLevel(3) 39pdWriter.Write() 40 41 42# read the ASCII version 43reader = vtk.vtkXMLPolyDataReader() 44reader.SetFileName(file0) 45reader.Update() 46 47pd0 = vtk.vtkPolyData() 48pd0.DeepCopy(reader.GetOutput()) 49mapper0 = vtk.vtkPolyDataMapper() 50mapper0.SetInputData(pd0) 51 52actor0 = vtk.vtkActor() 53actor0.SetMapper(mapper0) 54actor0.SetPosition(0, .15, 0) 55 56 57# read appended piece 0 58reader.SetFileName(file1) 59 60mapper1 = vtk.vtkPolyDataMapper() 61mapper1.SetInputConnection(reader.GetOutputPort()) 62mapper1.SetPiece(0) 63mapper1.SetNumberOfPieces(2) 64 65actor1 = vtk.vtkActor() 66actor1.SetMapper(mapper1) 67 68 69# read binary piece 0 (with ghost level) 70reader2 = vtk.vtkXMLPolyDataReader() 71reader2.SetFileName(file2) 72 73mapper2 = vtk.vtkPolyDataMapper() 74mapper2.SetInputConnection(reader2.GetOutputPort()) 75mapper2.SetPiece(0) 76mapper2.SetNumberOfPieces(2) 77 78actor2 = vtk.vtkActor() 79actor2.SetMapper(mapper2) 80actor2.SetPosition(0, 0, 0.1) 81 82# Create the RenderWindow, Renderer and both Actors 83# 84ren = vtk.vtkRenderer() 85renWin = vtk.vtkRenderWindow() 86renWin.AddRenderer(ren) 87iren = vtk.vtkRenderWindowInteractor() 88iren.SetRenderWindow(renWin) 89 90# Add the actors to the renderer, set the background and size 91# 92ren.AddActor(actor0) 93ren.AddActor(actor1) 94ren.AddActor(actor2) 95 96ren.GetActiveCamera().SetPosition(0.514096, -0.14323, -0.441177) 97ren.GetActiveCamera().SetFocalPoint(0.0528, -0.0780001, -0.0379661) 98renWin.SetSize(300, 300) 99renWin.Render() 100 101os.remove(file0) 102os.remove(file1) 103os.remove(file2) 104