1#!/usr/bin/env python 2 3# This shows how to probe a dataset with a plane. The probed data is 4# then contoured. 5 6import vtk 7from vtk.util.misc import vtkGetDataRoot 8VTK_DATA_ROOT = vtkGetDataRoot() 9 10# Read data. 11pl3d = vtk.vtkMultiBlockPLOT3DReader() 12pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin") 13pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin") 14pl3d.SetScalarFunctionNumber(100) 15pl3d.SetVectorFunctionNumber(202) 16pl3d.Update() 17pl3d_output = pl3d.GetOutput().GetBlock(0) 18 19# We create three planes and position them in the correct position 20# using transform filters. They are then appended together and used as 21# a probe. 22plane = vtk.vtkPlaneSource() 23plane.SetResolution(50, 50) 24transP1 = vtk.vtkTransform() 25transP1.Translate(3.7, 0.0, 28.37) 26transP1.Scale(5, 5, 5) 27transP1.RotateY(90) 28tpd1 = vtk.vtkTransformPolyDataFilter() 29tpd1.SetInputConnection(plane.GetOutputPort()) 30tpd1.SetTransform(transP1) 31outTpd1 = vtk.vtkOutlineFilter() 32outTpd1.SetInputConnection(tpd1.GetOutputPort()) 33mapTpd1 = vtk.vtkPolyDataMapper() 34mapTpd1.SetInputConnection(outTpd1.GetOutputPort()) 35tpd1Actor = vtk.vtkActor() 36tpd1Actor.SetMapper(mapTpd1) 37tpd1Actor.GetProperty().SetColor(0, 0, 0) 38 39transP2 = vtk.vtkTransform() 40transP2.Translate(9.2, 0.0, 31.20) 41transP2.Scale(5, 5, 5) 42transP2.RotateY(90) 43tpd2 = vtk.vtkTransformPolyDataFilter() 44tpd2.SetInputConnection(plane.GetOutputPort()) 45tpd2.SetTransform(transP2) 46outTpd2 = vtk.vtkOutlineFilter() 47outTpd2.SetInputConnection(tpd2.GetOutputPort()) 48mapTpd2 = vtk.vtkPolyDataMapper() 49mapTpd2.SetInputConnection(outTpd2.GetOutputPort()) 50tpd2Actor = vtk.vtkActor() 51tpd2Actor.SetMapper(mapTpd2) 52tpd2Actor.GetProperty().SetColor(0, 0, 0) 53 54transP3 = vtk.vtkTransform() 55transP3.Translate(13.27, 0.0, 33.30) 56transP3.Scale(5, 5, 5) 57transP3.RotateY(90) 58tpd3 = vtk.vtkTransformPolyDataFilter() 59tpd3.SetInputConnection(plane.GetOutputPort()) 60tpd3.SetTransform(transP3) 61outTpd3 = vtk.vtkOutlineFilter() 62outTpd3.SetInputConnection(tpd3.GetOutputPort()) 63mapTpd3 = vtk.vtkPolyDataMapper() 64mapTpd3.SetInputConnection(outTpd3.GetOutputPort()) 65tpd3Actor = vtk.vtkActor() 66tpd3Actor.SetMapper(mapTpd3) 67tpd3Actor.GetProperty().SetColor(0, 0, 0) 68 69appendF = vtk.vtkAppendPolyData() 70appendF.AddInputConnection(tpd1.GetOutputPort()) 71appendF.AddInputConnection(tpd2.GetOutputPort()) 72appendF.AddInputConnection(tpd3.GetOutputPort()) 73 74# The vtkProbeFilter takes two inputs. One is a dataset to use as the 75# probe geometry (SetInput); the other is the data to probe 76# (SetSource). The output dataset structure (geometry and topology) of 77# the probe is the same as the structure of the input. The probing 78# process generates new data values resampled from the source. 79probe = vtk.vtkProbeFilter() 80probe.SetInputConnection(appendF.GetOutputPort()) 81probe.SetSourceData(pl3d_output) 82 83contour = vtk.vtkContourFilter() 84contour.SetInputConnection(probe.GetOutputPort()) 85contour.GenerateValues(50, pl3d_output.GetScalarRange()) 86contourMapper = vtk.vtkPolyDataMapper() 87contourMapper.SetInputConnection(contour.GetOutputPort()) 88contourMapper.SetScalarRange(pl3d_output.GetScalarRange()) 89planeActor = vtk.vtkActor() 90planeActor.SetMapper(contourMapper) 91 92outline = vtk.vtkStructuredGridOutlineFilter() 93outline.SetInputData(pl3d_output) 94outlineMapper = vtk.vtkPolyDataMapper() 95outlineMapper.SetInputConnection(outline.GetOutputPort()) 96outlineActor = vtk.vtkActor() 97outlineActor.SetMapper(outlineMapper) 98outlineActor.GetProperty().SetColor(0, 0, 0) 99 100# Create the RenderWindow, Renderer and both Actors 101ren = vtk.vtkRenderer() 102renWin = vtk.vtkRenderWindow() 103renWin.AddRenderer(ren) 104iren = vtk.vtkRenderWindowInteractor() 105iren.SetRenderWindow(renWin) 106 107ren.AddActor(outlineActor) 108ren.AddActor(planeActor) 109ren.AddActor(tpd1Actor) 110ren.AddActor(tpd2Actor) 111ren.AddActor(tpd3Actor) 112ren.SetBackground(1, 1, 1) 113renWin.SetSize(400, 400) 114 115ren.ResetCamera() 116cam1 = ren.GetActiveCamera() 117cam1.SetClippingRange(3.95297, 50) 118cam1.SetFocalPoint(8.88908, 0.595038, 29.3342) 119cam1.SetPosition(-12.3332, 31.7479, 41.2387) 120cam1.SetViewUp(0.060772, -0.319905, 0.945498) 121 122iren.Initialize() 123renWin.Render() 124iren.Start() 125