1 #!/usr/bin/env python 2 3import os 4import vtk 5 6# 7# If the current directory is writable, then test the witers 8# 9try: 10 channel = open("test.tmp", "w") 11 channel.close() 12 os.remove("test.tmp") 13 14 s = vtk.vtkRTAnalyticSource() 15 s.SetWholeExtent(5, 10, 5, 10, 5, 10) 16 s.Update() 17 18 d = s.GetOutput() 19 20 w = vtk.vtkStructuredPointsWriter() 21 w.SetInputData(d) 22 w.SetFileName("test-dim.vtk") 23 w.Write() 24 25 r = vtk.vtkStructuredPointsReader() 26 r.SetFileName("test-dim.vtk") 27 r.Update() 28 29 os.remove("test-dim.vtk") 30 31 assert(r.GetOutput().GetExtent() == (0,5,0,5,0,5)) 32 assert(r.GetOutput().GetOrigin() == (5, 5, 5)) 33 34 w.SetInputData(d) 35 w.SetFileName("test-dim.vtk") 36 w.SetWriteExtent(True) 37 w.Write() 38 39 r.Modified() 40 r.Update() 41 42 os.remove("test-dim.vtk") 43 44 assert(r.GetOutput().GetExtent() == (5,10,5,10,5,10)) 45 assert(r.GetOutput().GetOrigin() == (0, 0, 0)) 46 47 rg = vtk.vtkRectilinearGrid() 48 extents = (1, 3, 1, 3, 1, 3) 49 rg.SetExtent(extents) 50 pts = vtk.vtkFloatArray() 51 pts.InsertNextTuple1(0) 52 pts.InsertNextTuple1(1) 53 pts.InsertNextTuple1(2) 54 rg.SetXCoordinates(pts) 55 rg.SetYCoordinates(pts) 56 rg.SetZCoordinates(pts) 57 58 w = vtk.vtkRectilinearGridWriter() 59 w.SetInputData(rg) 60 w.SetFileName("test-dim.vtk") 61 w.Write() 62 63 r = vtk.vtkRectilinearGridReader() 64 r.SetFileName("test-dim.vtk") 65 r.Update() 66 67 os.remove("test-dim.vtk") 68 69 assert(r.GetOutput().GetExtent() == (0,2,0,2,0,2)) 70 71 w.SetInputData(rg) 72 w.SetFileName("test-dim.vtk") 73 w.SetWriteExtent(True) 74 w.Write() 75 76 r.Modified() 77 r.Update() 78 79 assert(r.GetOutput().GetExtent() == (1,3,1,3,1,3)) 80 81 sg = vtk.vtkStructuredGrid() 82 extents = (1, 3, 1, 3, 1, 3) 83 sg.SetExtent(extents) 84 ptsa = vtk.vtkFloatArray() 85 ptsa.SetNumberOfComponents(3) 86 ptsa.SetNumberOfTuples(27) 87 # We don't really care about point coordinates being correct 88 for i in range(27): 89 ptsa.InsertNextTuple3(0, 0, 0) 90 pts = vtk.vtkPoints() 91 pts.SetData(ptsa) 92 sg.SetPoints(pts) 93 94 w = vtk.vtkStructuredGridWriter() 95 w.SetInputData(sg) 96 w.SetFileName("test-dim.vtk") 97 w.Write() 98 99 # comment out reader part of this test as it has been failing 100 # for over 6 months and no one is willing to fix it 101 # 102 # r = vtk.vtkStructuredGridReader() 103 # r.SetFileName("test-dim.vtk") 104 # r.Update() 105 106 os.remove("test-dim.vtk") 107 108 # assert(r.GetOutput().GetExtent() == (0,2,0,2,0,2)) 109 110 w.SetInputData(sg) 111 w.SetFileName("test-dim.vtk") 112 w.SetWriteExtent(True) 113 w.Write() 114 115 # r.Modified() 116 # r.Update() 117 118 # assert(r.GetOutput().GetExtent() == (1,3,1,3,1,3)) 119 120 121except IOError: 122 pass 123