1#!/usr/bin/env python
2import vtk
3from vtk.util.misc import vtkGetDataRoot
4VTK_DATA_ROOT = vtkGetDataRoot()
5
6ren1 = vtk.vtkRenderer()
7renWin = vtk.vtkRenderWindow()
8renWin.AddRenderer(ren1)
9iren = vtk.vtkRenderWindowInteractor()
10iren.SetRenderWindow(renWin)
11# read data
12#
13reader = vtk.vtkGenericEnSightReader()
14# Make sure all algorithms use the composite data pipeline
15cdp = vtk.vtkCompositeDataPipeline()
16reader.SetDefaultExecutivePrototype(cdp)
17del cdp
18reader.SetCaseFileName("" + str(VTK_DATA_ROOT) + "/Data/EnSight/office6_bin.case")
19reader.Update()
20
21outline = vtk.vtkStructuredGridOutlineFilter()
22outline.SetInputConnection(reader.GetOutputPort())
23mapOutline = vtk.vtkHierarchicalPolyDataMapper()
24mapOutline.SetInputConnection(outline.GetOutputPort())
25outlineActor = vtk.vtkActor()
26outlineActor.SetMapper(mapOutline)
27outlineActor.GetProperty().SetColor(0,0,0)
28# Create source for streamtubes
29streamer = vtk.vtkStreamTracer()
30streamer.SetInputConnection(reader.GetOutputPort())
31streamer.SetStartPosition(0.1,2.1,0.5)
32streamer.SetMaximumPropagation(500)
33streamer.SetInitialIntegrationStep(0.1)
34streamer.SetIntegrationDirectionToForward()
35cone = vtk.vtkConeSource()
36cone.SetResolution(8)
37cones = vtk.vtkGlyph3D()
38cones.SetInputConnection(streamer.GetOutputPort())
39cones.SetSourceConnection(cone.GetOutputPort())
40cones.SetScaleFactor(3)
41cones.SetInputArrayToProcess(1, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_POINTS, "vectors")
42cones.SetScaleModeToScaleByVector()
43mapCones = vtk.vtkHierarchicalPolyDataMapper()
44mapCones.SetInputConnection(cones.GetOutputPort())
45mapCones.SetScalarRange(reader.GetOutput().GetBlock(0).GetScalarRange())
46conesActor = vtk.vtkActor()
47conesActor.SetMapper(mapCones)
48ren1.AddActor(outlineActor)
49ren1.AddActor(conesActor)
50ren1.SetBackground(0.4,0.4,0.5)
51renWin.SetSize(300,300)
52iren.Initialize()
53# interact with data
54reader.SetDefaultExecutivePrototype(None)
55# --- end of script --
56