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 + '/ugFile0.vtu' 12file1 = VTK_TEMP_DIR + '/ugFile1.vtu' 13file2 = VTK_TEMP_DIR + '/ugFile2.vtu' 14 15# read in some unstructured grid data 16ugReader = vtk.vtkUnstructuredGridReader() 17ugReader.SetFileName(VTK_DATA_ROOT + "/Data/blow.vtk") 18ugReader.SetScalarsName("thickness9") 19ugReader.SetVectorsName("displacement9") 20 21extract = vtk.vtkExtractUnstructuredGridPiece() 22extract.SetInputConnection(ugReader.GetOutputPort()) 23 24# write various versions 25ugWriter = vtk.vtkXMLUnstructuredGridWriter() 26ugWriter.SetFileName(file0) 27ugWriter.SetDataModeToAscii() 28ugWriter.SetInputConnection(ugReader.GetOutputPort()) 29ugWriter.Write() 30 31ugWriter.SetFileName(file1) 32ugWriter.SetInputConnection(extract.GetOutputPort()) 33ugWriter.SetDataModeToAppended() 34ugWriter.SetNumberOfPieces(2) 35ugWriter.Write() 36 37ugWriter.SetFileName(file2) 38ugWriter.SetDataModeToBinary() 39ugWriter.SetGhostLevel(2) 40ugWriter.Write() 41 42 43# read the ASCII version 44reader = vtk.vtkXMLUnstructuredGridReader() 45reader.SetFileName(file0) 46reader.Update() 47 48ug0 = vtk.vtkUnstructuredGrid() 49ug0.DeepCopy(reader.GetOutput()) 50sF = vtk.vtkDataSetSurfaceFilter() 51sF.SetInputData(ug0) 52 53mapper0 = vtk.vtkPolyDataMapper() 54mapper0.SetInputConnection(sF.GetOutputPort()) 55 56actor0 = vtk.vtkActor() 57actor0.SetMapper(mapper0) 58actor0.SetPosition(0, 40, 20) 59 60 61# read appended piece 0 62reader.SetFileName(file1) 63 64sF1 = vtk.vtkDataSetSurfaceFilter() 65sF1.SetInputConnection(reader.GetOutputPort()) 66 67mapper1 = vtk.vtkPolyDataMapper() 68mapper1.SetInputConnection(sF1.GetOutputPort()) 69mapper1.SetPiece(1) 70mapper1.SetNumberOfPieces(2) 71 72actor1 = vtk.vtkActor() 73actor1.SetMapper(mapper1) 74 75 76# read binary piece 0 (with ghost level) 77reader2 = vtk.vtkXMLUnstructuredGridReader() 78reader2.SetFileName(file2) 79 80sF2 = vtk.vtkDataSetSurfaceFilter() 81sF2.SetInputConnection(reader2.GetOutputPort()) 82 83mapper2 = vtk.vtkPolyDataMapper() 84mapper2.SetInputConnection(sF2.GetOutputPort()) 85mapper2.SetPiece(1) 86mapper2.SetNumberOfPieces(2) 87mapper2.SetGhostLevel(2) 88 89actor2 = vtk.vtkActor() 90actor2.SetMapper(mapper2) 91actor2.SetPosition(0, 0, 30) 92 93# Create the RenderWindow, Renderer and both Actors 94# 95ren = vtk.vtkRenderer() 96renWin = vtk.vtkRenderWindow() 97renWin.AddRenderer(ren) 98iren = vtk.vtkRenderWindowInteractor() 99iren.SetRenderWindow(renWin) 100 101# Add the actors to the renderer, set the background and size 102# 103ren.AddActor(actor0) 104ren.AddActor(actor1) 105ren.AddActor(actor2) 106 107ren.ResetCamera() 108ren.GetActiveCamera().SetPosition(180, 55, 65) 109ren.GetActiveCamera().SetFocalPoint(3.5, 32, 15) 110renWin.SetSize(300, 300) 111renWin.Render() 112 113#os.remove(file0) 114#os.remove(file1) 115#os.remove(file2) 116