Files
ThirdParty-6/ParaView-5.0.1/VTK/IO/Parallel/Testing/Python/TestPDataSetReaderGrid.py

149 lines
5.2 KiB
Python
Executable File

#!/usr/bin/env python
# Create the RenderWindow, Renderer and both Actors
#
ren1 = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
#
# If the current directory is writable, then test the witers
#
if (catch.catch(globals(),"""channel = open("test.tmp", "w")""") == 0):
channel.close()
file.delete("-force", "test.tmp")
# ====== Structured Grid ======
# First save out a grid in parallel form.
reader = vtk.vtkMultiBlockPLOT3DReader()
reader.SetXYZFileName("" + str(VTK_DATA_ROOT) + "/Data/combxyz.bin")
reader.SetQFileName("" + str(VTK_DATA_ROOT) + "/Data/combq.bin")
reader.Update()
contr = vtk.vtkDummyController()
extract = vtk.vtkTransmitStructuredDataPiece()
extract.SetController(contr)
extract.SetInputData(reader.GetOutput().GetBlock(0))
writer = vtk.vtkPDataSetWriter()
writer.SetFileName("comb.pvtk")
writer.SetInputConnection(extract.GetOutputPort())
writer.SetNumberOfPieces(4)
writer.Write()
pReader = vtk.vtkPDataSetReader()
pReader.SetFileName("comb.pvtk")
surface = vtk.vtkDataSetSurfaceFilter()
surface.SetInputConnection(pReader.GetOutputPort())
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(surface.GetOutputPort())
mapper.SetNumberOfPieces(2)
mapper.SetPiece(0)
mapper.SetGhostLevel(1)
mapper.Update()
w = vtk.vtkDataSetWriter()
# w.SetInputData(mapper.GetInput())
w.SetInputData(surface.GetInput())
w.SetFileName("foo.vtk")
w.SetFileTypeToASCII()
w.Write()
file.delete("-force", "comb.pvtk")
file.delete("-force", "comb.0.vtk")
file.delete("-force", "comb.1.vtk")
file.delete("-force", "comb.2.vtk")
file.delete("-force", "comb.3.vtk")
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.SetPosition(-5,0,-29)
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(actor)
# ====== ImageData ======
# First save out a grid in parallel form.
fractal = vtk.vtkImageMandelbrotSource()
fractal.SetWholeExtent(0,9,0,9,0,9)
fractal.SetSampleCX(0.1,0.1,0.1,0.1)
fractal.SetMaximumNumberOfIterations(10)
extract2 = vtk.vtkTransmitStructuredDataPiece()
extract2.SetController(contr)
extract2.SetInputConnection(fractal.GetOutputPort())
writer2 = vtk.vtkPDataSetWriter()
writer.SetFileName("fractal.pvtk")
writer.SetInputConnection(extract2.GetOutputPort())
writer.SetNumberOfPieces(4)
writer.Write()
pReader2 = vtk.vtkPDataSetReader()
pReader2.SetFileName("fractal.pvtk")
iso = vtk.vtkContourFilter()
iso.SetInputConnection(pReader2.GetOutputPort())
iso.SetValue(0,4)
mapper2 = vtk.vtkPolyDataMapper()
mapper2.SetInputConnection(iso.GetOutputPort())
mapper2.SetNumberOfPieces(3)
mapper2.SetPiece(0)
mapper2.SetGhostLevel(0)
mapper2.Update()
# Strip the ghost cells requested by the contour filter
mapper2.GetInput().RemoveGhostCells()
file.delete("-force", "fractal.pvtk")
file.delete("-force", "fractal.0.vtk")
file.delete("-force", "fractal.1.vtk")
file.delete("-force", "fractal.2.vtk")
file.delete("-force", "fractal.3.vtk")
actor2 = vtk.vtkActor()
actor2.SetMapper(mapper2)
actor2.SetScale(5,5,5)
actor2.SetPosition(6,6,6)
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(actor2)
# ====== PolyData ======
# First save out a grid in parallel form.
sphere = vtk.vtkSphereSource()
sphere.SetRadius(2)
writer3 = vtk.vtkPDataSetWriter()
writer3.SetFileName("sphere.pvtk")
writer3.SetInputConnection(sphere.GetOutputPort())
writer3.SetNumberOfPieces(4)
writer3.Write()
pReader3 = vtk.vtkPDataSetReader()
pReader3.SetFileName("sphere.pvtk")
mapper3 = vtk.vtkPolyDataMapper()
mapper3.SetInputConnection(pReader3.GetOutputPort())
mapper3.SetNumberOfPieces(2)
mapper3.SetPiece(0)
mapper3.SetGhostLevel(1)
mapper3.Update()
file.delete("-force", "sphere.pvtk")
file.delete("-force", "sphere.0.vtk")
file.delete("-force", "sphere.1.vtk")
file.delete("-force", "sphere.2.vtk")
file.delete("-force", "sphere.3.vtk")
actor3 = vtk.vtkActor()
actor3.SetMapper(mapper3)
actor3.SetPosition(6,6,6)
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(actor3)
# do some extra checking to make sure we have the proper number of cells
if surface.GetOutput().GetNumberOfCells() != 4016:
print "surface output should have 4016 cells but has ", surface.GetOutput().GetNumberOfCells()
sys.exit(1)
if iso.GetOutput().GetNumberOfCells() != 89:
print "iso output should have 89 cells but has ", iso.GetOutput().GetNumberOfCells()
sys.exit(1)
if pReader3.GetOutput().GetNumberOfCells() != 48:
print "pReader3 output should have 48 cells but has ", pReader3.GetOutput().GetNumberOfCells()
sys.exit(1)
pass
ren1.SetBackground(0.1,0.2,0.4)
renWin.SetSize(300,300)
# render the image
#
cam1 = ren1.GetActiveCamera()
cam1.Azimuth(20)
cam1.Elevation(40)
ren1.ResetCamera()
cam1.Zoom(1.2)
iren.Initialize()
# prevent the tk window from showing up then start the event loop
# --- end of script --