1package require vtk 2package require vtkinteraction 3 4set file0 sgFile0.vts 5set file1 sgFile1.vts 6set file2 sgFile2.vts 7 8# Create a reader and write out the field 9vtkMultiBlockPLOT3DReader combReader 10 combReader SetXYZFileName "$VTK_DATA_ROOT/Data/combxyz.bin" 11 combReader SetQFileName "$VTK_DATA_ROOT/Data/combq.bin" 12 combReader SetScalarFunctionNumber 100 13 combReader Update 14 set output [[combReader GetOutput] GetBlock 0] 15 16# extract to reduce extents of grid 17vtkExtractGrid extract 18 extract SetInputData $output 19 extract SetVOI 0 28 0 32 0 24 20 extract Update 21 22# write just a piece (extracted piece) as well as the whole thing 23vtkXMLStructuredGridWriter gridWriter 24 gridWriter SetFileName $file0 25 gridWriter SetInputConnection [extract GetOutputPort] 26 gridWriter SetDataModeToAscii 27 gridWriter Write 28 29 gridWriter SetInputData $output 30 gridWriter SetFileName $file1 31 gridWriter SetDataModeToAppended 32 gridWriter SetNumberOfPieces 2 33 gridWriter Write 34 35 gridWriter SetFileName $file2 36 gridWriter SetDataModeToBinary 37 gridWriter SetWriteExtent 8 56 4 16 1 24 38 gridWriter Write 39 40# read the extracted grid 41vtkXMLStructuredGridReader reader 42 reader SetFileName $file0 43 reader WholeSlicesOff 44 reader Update 45 46vtkStructuredGrid sg 47 sg DeepCopy [reader GetOutput] 48 49vtkContourFilter cF0 50 cF0 SetInputData sg 51 cF0 SetValue 0 0.38 52 53vtkPolyDataMapper mapper0 54 mapper0 SetInputConnection [cF0 GetOutputPort] 55 mapper0 ScalarVisibilityOff 56 57vtkActor actor0 58 actor0 SetMapper mapper0 59 60 61# read the whole image 62reader SetFileName $file1 63reader WholeSlicesOn 64reader Update 65 66vtkStructuredGrid sg1 67 sg1 DeepCopy [reader GetOutput] 68 69vtkContourFilter cF1 70 cF1 SetInputData sg1 71 cF1 SetValue 0 0.38 72 73vtkPolyDataMapper mapper1 74 mapper1 SetInputConnection [cF1 GetOutputPort] 75 mapper1 ScalarVisibilityOff 76 77vtkActor actor1 78 actor1 SetMapper mapper1 79 actor1 SetPosition 0 -10 0 80 81 82# read the partially written grid 83reader SetFileName $file2 84reader Update 85 86vtkContourFilter cF2 87 cF2 SetInputConnection [reader GetOutputPort] 88 cF2 SetValue 0 0.38 89 90vtkPolyDataMapper mapper2 91 mapper2 SetInputConnection [cF2 GetOutputPort] 92 mapper2 ScalarVisibilityOff 93 94vtkActor actor2 95 actor2 SetMapper mapper2 96 actor2 SetPosition 0 10 0 97 98# Create the RenderWindow, Renderer and both Actors 99# 100vtkRenderer ren1 101vtkRenderWindow renWin 102 renWin AddRenderer ren1 103vtkRenderWindowInteractor iren 104 iren SetRenderWindow renWin 105 106# Add the actors to the renderer, set the background and size 107# 108ren1 AddActor actor0 109ren1 AddActor actor1 110ren1 AddActor actor2 111 112renWin SetSize 300 300 113iren Initialize 114renWin Render 115 116iren AddObserver UserEvent {wm deiconify .vtkInteract} 117 118# prevent the tk window from showing up then start the event loop 119wm withdraw . 120 121 122file delete -force $file0 123file delete -force $file1 124file delete -force $file2 125