You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.2 KiB
67 lines
2.2 KiB
#!/usr/bin/env python
|
|
|
|
# This example demonstrates the subsampling of a structured grid.
|
|
|
|
import vtk
|
|
from vtk.util.misc import vtkGetDataRoot
|
|
VTK_DATA_ROOT = vtkGetDataRoot()
|
|
|
|
# Read some structured data.
|
|
pl3d = vtk.vtkPLOT3DReader()
|
|
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
|
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
|
pl3d.SetScalarFunctionNumber(100)
|
|
pl3d.SetVectorFunctionNumber(202)
|
|
pl3d.Update()
|
|
|
|
# Here we subsample the grid. The SetVOI method requires six values
|
|
# specifying (imin,imax, jmin,jmax, kmin,kmax) extents. In this
|
|
# example we extracting a plane. Note that the VOI is clamped to zero
|
|
# (min) and the maximum i-j-k value; that way we can use the
|
|
# -1000,1000 specification and be sure the values are clamped. The
|
|
# SampleRate specifies that we take every point in the i-direction;
|
|
# every other point in the j-direction; and every third point in the
|
|
# k-direction. IncludeBoundaryOn makes sure that we get the boundary
|
|
# points even if the SampleRate does not coincident with the boundary.
|
|
extract = vtk.vtkExtractGrid()
|
|
extract.SetInputConnection(pl3d.GetOutputPort())
|
|
extract.SetVOI(30, 30, -1000, 1000, -1000, 1000)
|
|
extract.SetSampleRate(1, 2, 3)
|
|
extract.IncludeBoundaryOn()
|
|
mapper = vtk.vtkDataSetMapper()
|
|
mapper.SetInputConnection(extract.GetOutputPort())
|
|
mapper.SetScalarRange(.18, .7)
|
|
actor = vtk.vtkActor()
|
|
actor.SetMapper(mapper)
|
|
|
|
outline = vtk.vtkStructuredGridOutlineFilter()
|
|
outline.SetInputConnection(pl3d.GetOutputPort())
|
|
outlineMapper = vtk.vtkPolyDataMapper()
|
|
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
|
outlineActor = vtk.vtkActor()
|
|
outlineActor.SetMapper(outlineMapper)
|
|
outlineActor.GetProperty().SetColor(0, 0, 0)
|
|
|
|
# Add the usual rendering stuff.
|
|
ren = vtk.vtkRenderer()
|
|
renWin = vtk.vtkRenderWindow()
|
|
renWin.AddRenderer(ren)
|
|
iren = vtk.vtkRenderWindowInteractor()
|
|
iren.SetRenderWindow(renWin)
|
|
|
|
# Add the actors to the renderer, set the background and size
|
|
ren.AddActor(outlineActor)
|
|
ren.AddActor(actor)
|
|
|
|
ren.SetBackground(1, 1, 1)
|
|
renWin.SetSize(300, 180)
|
|
|
|
cam1 = ren.GetActiveCamera()
|
|
cam1.SetClippingRange(2.64586, 47.905)
|
|
cam1.SetFocalPoint(8.931, 0.358127, 31.3526)
|
|
cam1.SetPosition(29.7111, -0.688615, 37.1495)
|
|
cam1.SetViewUp(-0.268328, 0.00801595, 0.963294)
|
|
|
|
iren.Initialize()
|
|
renWin.Render()
|
|
iren.Start()
|
|
|