mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
149
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/BandContourTerrain.py
Executable file
149
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/BandContourTerrain.py
Executable file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# In this example we show the use of the
|
||||
# vtkBandedPolyDataContourFilter. This filter creates separate,
|
||||
# constant colored bands for a range of scalar values. Each band is
|
||||
# bounded by two scalar values, and the cell data laying within the
|
||||
# value has the same cell scalar value.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
|
||||
# The lookup table is similar to that used by maps. Two hues are used:
|
||||
# a brown for land, and a blue for water. The value of the hue is
|
||||
# changed to give the effect of elevation.
|
||||
Scale = 5
|
||||
lutWater = vtk.vtkLookupTable()
|
||||
lutWater.SetNumberOfColors(10)
|
||||
lutWater.SetHueRange(0.58, 0.58)
|
||||
lutWater.SetSaturationRange(0.5, 0.1)
|
||||
lutWater.SetValueRange(0.5, 1.0)
|
||||
lutWater.Build()
|
||||
lutLand = vtk.vtkLookupTable()
|
||||
lutLand.SetNumberOfColors(10)
|
||||
lutLand.SetHueRange(0.1, 0.1)
|
||||
lutLand.SetSaturationRange(0.4, 0.1)
|
||||
lutLand.SetValueRange(0.55, 0.9)
|
||||
lutLand.Build()
|
||||
|
||||
|
||||
# The DEM reader reads data and creates an output image.
|
||||
demModel = vtk.vtkDEMReader()
|
||||
demModel.SetFileName(VTK_DATA_ROOT + "/Data/SainteHelens.dem")
|
||||
demModel.Update()
|
||||
|
||||
# We shrink the terrain data down a bit to yield better performance for
|
||||
# this example.
|
||||
shrinkFactor = 4
|
||||
shrink = vtk.vtkImageShrink3D()
|
||||
shrink.SetShrinkFactors(shrinkFactor, shrinkFactor, 1)
|
||||
shrink.SetInputConnection(demModel.GetOutputPort())
|
||||
shrink.AveragingOn()
|
||||
|
||||
# Convert the image into polygons.
|
||||
geom = vtk.vtkImageDataGeometryFilter()
|
||||
geom.SetInputConnection(shrink.GetOutputPort())
|
||||
|
||||
# Warp the polygons based on elevation.
|
||||
warp = vtk.vtkWarpScalar()
|
||||
warp.SetInputConnection(geom.GetOutputPort())
|
||||
warp.SetNormal(0, 0, 1)
|
||||
warp.UseNormalOn()
|
||||
warp.SetScaleFactor(Scale)
|
||||
|
||||
# Create the contour bands.
|
||||
bcf = vtk.vtkBandedPolyDataContourFilter()
|
||||
bcf.SetInputConnection(warp.GetOutputPort())
|
||||
bcf.GenerateValues(15, demModel.GetOutput().GetScalarRange())
|
||||
bcf.SetScalarModeToIndex()
|
||||
bcf.GenerateContourEdgesOn()
|
||||
|
||||
# Compute normals to give a better look.
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(bcf.GetOutputPort())
|
||||
normals.SetFeatureAngle(60)
|
||||
normals.ConsistencyOff()
|
||||
normals.SplittingOff()
|
||||
|
||||
demMapper = vtk.vtkPolyDataMapper()
|
||||
demMapper.SetInputConnection(normals.GetOutputPort())
|
||||
demMapper.SetScalarRange(0, 10)
|
||||
demMapper.SetLookupTable(lutLand)
|
||||
demMapper.SetScalarModeToUseCellData()
|
||||
|
||||
demActor = vtk.vtkLODActor()
|
||||
demActor.SetMapper(demMapper)
|
||||
|
||||
## Create contour edges
|
||||
edgeMapper = vtk.vtkPolyDataMapper()
|
||||
edgeMapper.SetInputConnection(bcf.GetOutputPort())
|
||||
edgeMapper.SetResolveCoincidentTopologyToPolygonOffset()
|
||||
edgeActor = vtk.vtkActor()
|
||||
edgeActor.SetMapper(edgeMapper)
|
||||
edgeActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
## Test clipping
|
||||
# Create the contour bands.
|
||||
bcf2 = vtk.vtkBandedPolyDataContourFilter()
|
||||
bcf2.SetInputConnection(warp.GetOutputPort())
|
||||
bcf2.ClippingOn()
|
||||
bcf2.GenerateValues(10, 1000, 2000)
|
||||
bcf2.SetScalarModeToValue()
|
||||
|
||||
# Compute normals to give a better look.
|
||||
normals2 = vtk.vtkPolyDataNormals()
|
||||
normals2.SetInputConnection(bcf2.GetOutputPort())
|
||||
normals2.SetFeatureAngle(60)
|
||||
normals2.ConsistencyOff()
|
||||
normals2.SplittingOff()
|
||||
|
||||
lut = vtk.vtkLookupTable()
|
||||
lut.SetNumberOfColors(10)
|
||||
demMapper2 = vtk.vtkPolyDataMapper()
|
||||
demMapper2.SetInputConnection(normals2.GetOutputPort())
|
||||
demMapper2.SetScalarRange(demModel.GetOutput().GetScalarRange())
|
||||
demMapper2.SetLookupTable(lut)
|
||||
demMapper2.SetScalarModeToUseCellData()
|
||||
|
||||
demActor2 = vtk.vtkLODActor()
|
||||
demActor2.SetMapper(demMapper2)
|
||||
demActor2.AddPosition(0, 15000, 0)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(demActor)
|
||||
ren.AddActor(demActor2)
|
||||
ren.AddActor(edgeActor)
|
||||
|
||||
ren.SetBackground(.4, .4, .4)
|
||||
renWin.SetSize(375, 200)
|
||||
|
||||
cam = vtk.vtkCamera()
|
||||
cam.SetPosition(-17438.8, 2410.62, 25470.8)
|
||||
cam.SetFocalPoint(3985.35, 11930.6, 5922.14)
|
||||
cam.SetViewUp(0, 0, 1)
|
||||
ren.SetActiveCamera(cam)
|
||||
ren.ResetCamera()
|
||||
cam.Zoom(2)
|
||||
|
||||
iren.Initialize()
|
||||
iren.SetDesiredUpdateRate(1)
|
||||
|
||||
def CheckAbort(obj, event):
|
||||
foo = renWin.GetEventPending()
|
||||
if foo != 0:
|
||||
renWin.SetAbortRender(1)
|
||||
|
||||
renWin.AddObserver("AbortCheckEvent", CheckAbort)
|
||||
renWin.Render()
|
||||
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
120
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/ClipCow.py
Executable file
120
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/ClipCow.py
Executable file
@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# In this example vtkClipPolyData is used to cut a polygonal model
|
||||
# of a cow in half. In addition, the open clip is closed by triangulating
|
||||
# the resulting complex polygons.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
from vtk.util.colors import peacock, tomato
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# First start by reading a cow model. We also generate surface normals for
|
||||
# prettier rendering.
|
||||
cow = vtk.vtkBYUReader()
|
||||
cow.SetGeometryFileName(VTK_DATA_ROOT + "/Data/Viewpoint/cow.g")
|
||||
cowNormals = vtk.vtkPolyDataNormals()
|
||||
cowNormals.SetInputConnection(cow.GetOutputPort())
|
||||
|
||||
# We clip with an implicit function. Here we use a plane positioned near
|
||||
# the center of the cow model and oriented at an arbitrary angle.
|
||||
plane = vtk.vtkPlane()
|
||||
plane.SetOrigin(0.25, 0, 0)
|
||||
plane.SetNormal(-1, -1, 0)
|
||||
|
||||
# vtkClipPolyData requires an implicit function to define what it is to
|
||||
# clip with. Any implicit function, including complex boolean combinations
|
||||
# can be used. Notice that we can specify the value of the implicit function
|
||||
# with the SetValue method.
|
||||
clipper = vtk.vtkClipPolyData()
|
||||
clipper.SetInputConnection(cowNormals.GetOutputPort())
|
||||
clipper.SetClipFunction(plane)
|
||||
clipper.GenerateClipScalarsOn()
|
||||
clipper.GenerateClippedOutputOn()
|
||||
clipper.SetValue(0.5)
|
||||
clipMapper = vtk.vtkPolyDataMapper()
|
||||
clipMapper.SetInputConnection(clipper.GetOutputPort())
|
||||
clipMapper.ScalarVisibilityOff()
|
||||
backProp = vtk.vtkProperty()
|
||||
backProp.SetDiffuseColor(tomato)
|
||||
clipActor = vtk.vtkActor()
|
||||
clipActor.SetMapper(clipMapper)
|
||||
clipActor.GetProperty().SetColor(peacock)
|
||||
clipActor.SetBackfaceProperty(backProp)
|
||||
|
||||
# Here we are cutting the cow. Cutting creates lines where the cut
|
||||
# function intersects the model. (Clipping removes a portion of the
|
||||
# model but the dimension of the data does not change.)
|
||||
#
|
||||
# The reason we are cutting is to generate a closed polygon at the
|
||||
# boundary of the clipping process. The cutter generates line
|
||||
# segments, the stripper then puts them together into polylines. We
|
||||
# then pull a trick and define polygons using the closed line
|
||||
# segements that the stripper created.
|
||||
cutEdges = vtk.vtkCutter()
|
||||
cutEdges.SetInputConnection(cowNormals.GetOutputPort())
|
||||
cutEdges.SetCutFunction(plane)
|
||||
cutEdges.GenerateCutScalarsOn()
|
||||
cutEdges.SetValue(0, 0.5)
|
||||
cutStrips = vtk.vtkStripper()
|
||||
cutStrips.SetInputConnection(cutEdges.GetOutputPort())
|
||||
cutStrips.Update()
|
||||
cutPoly = vtk.vtkPolyData()
|
||||
cutPoly.SetPoints(cutStrips.GetOutput().GetPoints())
|
||||
cutPoly.SetPolys(cutStrips.GetOutput().GetLines())
|
||||
|
||||
# Triangle filter is robust enough to ignore the duplicate point at
|
||||
# the beginning and end of the polygons and triangulate them.
|
||||
cutTriangles = vtk.vtkTriangleFilter()
|
||||
cutTriangles.SetInputData(cutPoly)
|
||||
cutMapper = vtk.vtkPolyDataMapper()
|
||||
cutMapper.SetInputData(cutPoly)
|
||||
cutMapper.SetInputConnection(cutTriangles.GetOutputPort())
|
||||
cutActor = vtk.vtkActor()
|
||||
cutActor.SetMapper(cutMapper)
|
||||
cutActor.GetProperty().SetColor(peacock)
|
||||
|
||||
# The clipped part of the cow is rendered wireframe.
|
||||
restMapper = vtk.vtkPolyDataMapper()
|
||||
restMapper.SetInputConnection(clipper.GetClippedOutputPort())
|
||||
restMapper.ScalarVisibilityOff()
|
||||
restActor = vtk.vtkActor()
|
||||
restActor.SetMapper(restMapper)
|
||||
restActor.GetProperty().SetRepresentationToWireframe()
|
||||
|
||||
# Create graphics 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(clipActor)
|
||||
ren.AddActor(cutActor)
|
||||
ren.AddActor(restActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
ren.ResetCamera()
|
||||
ren.GetActiveCamera().Azimuth(30)
|
||||
ren.GetActiveCamera().Elevation(30)
|
||||
ren.GetActiveCamera().Dolly(1.5)
|
||||
ren.ResetCameraClippingRange()
|
||||
|
||||
renWin.SetSize(300, 300)
|
||||
iren.Initialize()
|
||||
|
||||
# Lets you move the cut plane back and forth by invoking the function
|
||||
# Cut with the appropriate plane value (essentially a distance from
|
||||
# the original plane). This is not used in this code but should give
|
||||
# you an idea of how to define a function to do this.
|
||||
def Cut(v):
|
||||
clipper.SetValue(v)
|
||||
cutEdges.SetValue(0, v)
|
||||
cutStrips.Update()
|
||||
cutPoly.SetPoints(cutStrips.GetOutput().GetPoints())
|
||||
cutPoly.SetPolys(cutStrips.GetOutput().GetLines())
|
||||
cutMapper.Update()
|
||||
renWin.Render()
|
||||
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to color an isosurface with other
|
||||
# data. Basically an isosurface is generated, and a data array is
|
||||
# selected and used by the mapper to color the surface.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read some data. The important thing here is to read a function as a
|
||||
# data array as well as the scalar and vector. (here function 153 is
|
||||
# named "Velocity Magnitude").Later this data array will be used to
|
||||
# color the isosurface.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.AddFunction(153)
|
||||
pl3d.Update()
|
||||
pl3d.DebugOn()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# The contour filter uses the labeled scalar (function number 100
|
||||
# above to generate the contour surface; all other data is
|
||||
# interpolated during the contouring process.
|
||||
iso = vtk.vtkContourFilter()
|
||||
iso.SetInputData(pl3d_output)
|
||||
iso.SetValue(0, .24)
|
||||
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(iso.GetOutputPort())
|
||||
normals.SetFeatureAngle(45)
|
||||
|
||||
# We indicate to the mapper to use the velcoity magnitude, which is a
|
||||
# vtkDataArray that makes up part of the point attribute data.
|
||||
isoMapper = vtk.vtkPolyDataMapper()
|
||||
isoMapper.SetInputConnection(normals.GetOutputPort())
|
||||
isoMapper.ScalarVisibilityOn()
|
||||
isoMapper.SetScalarRange(0, 1500)
|
||||
isoMapper.SetScalarModeToUsePointFieldData()
|
||||
isoMapper.ColorByArrayComponent("VelocityMagnitude", 0)
|
||||
|
||||
isoActor = vtk.vtkLODActor()
|
||||
isoActor.SetMapper(isoMapper)
|
||||
isoActor.SetNumberOfCloudPoints(1000)
|
||||
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
|
||||
# Create 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(isoActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(500, 500)
|
||||
ren.SetBackground(0.1, 0.2, 0.4)
|
||||
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.SetClippingRange(3.95297, 50)
|
||||
cam1.SetFocalPoint(9.71821, 0.458166, 29.3999)
|
||||
cam1.SetPosition(2.7439, -37.3196, 38.7167)
|
||||
cam1.SetViewUp(-0.16123, 0.264271, 0.950876)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
80
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/CutCombustor.py
Executable file
80
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/CutCombustor.py
Executable file
@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to use cutting (vtkCutter) and how it
|
||||
# compares with extracting a plane from a computational grid.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read some data.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# The cutter uses an implicit function to perform the cutting.
|
||||
# Here we define a plane, specifying its center and normal.
|
||||
# Then we assign the plane to the cutter.
|
||||
plane = vtk.vtkPlane()
|
||||
plane.SetOrigin(pl3d_output.GetCenter())
|
||||
plane.SetNormal(-0.287, 0, 0.9579)
|
||||
planeCut = vtk.vtkCutter()
|
||||
planeCut.SetInputData(pl3d_output)
|
||||
planeCut.SetCutFunction(plane)
|
||||
cutMapper = vtk.vtkPolyDataMapper()
|
||||
cutMapper.SetInputConnection(planeCut.GetOutputPort())
|
||||
cutMapper.SetScalarRange(pl3d_output.GetPointData().GetScalars().GetRange())
|
||||
cutActor = vtk.vtkActor()
|
||||
cutActor.SetMapper(cutMapper)
|
||||
|
||||
# Here we extract a computational plane from the structured grid.
|
||||
# We render it as wireframe.
|
||||
compPlane = vtk.vtkStructuredGridGeometryFilter()
|
||||
compPlane.SetInputData(pl3d_output)
|
||||
compPlane.SetExtent(0, 100, 0, 100, 9, 9)
|
||||
planeMapper = vtk.vtkPolyDataMapper()
|
||||
planeMapper.SetInputConnection(compPlane.GetOutputPort())
|
||||
planeMapper.ScalarVisibilityOff()
|
||||
planeActor = vtk.vtkActor()
|
||||
planeActor.SetMapper(planeMapper)
|
||||
planeActor.GetProperty().SetRepresentationToWireframe()
|
||||
planeActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# The outline of the data puts the data in context.
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineProp = outlineActor.GetProperty()
|
||||
outlineProp.SetColor(0, 0, 0)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(planeActor)
|
||||
ren.AddActor(cutActor)
|
||||
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(400, 300)
|
||||
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.SetClippingRange(11.1034, 59.5328)
|
||||
cam1.SetFocalPoint(9.71821, 0.458166, 29.3999)
|
||||
cam1.SetPosition(-2.95748, -26.7271, 44.5309)
|
||||
cam1.SetViewUp(0.0184785, 0.479657, 0.877262)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
90
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/DepthSort.py
Executable file
90
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/DepthSort.py
Executable file
@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the use of vtkDepthSortPolyData. This is a
|
||||
# poor man's algorithm to sort polygons for proper transparent
|
||||
# blending. It sorts polygons based on a single point (i.e.,
|
||||
# centroid) so the sorting may not work for overlapping or
|
||||
# intersection polygons.
|
||||
|
||||
import vtk
|
||||
|
||||
# Create a bunch of spheres that overlap and cannot be easily arranged
|
||||
# so that the blending works without sorting. They are appended into a
|
||||
# single vtkPolyData because the filter only sorts within a single
|
||||
# vtkPolyData input.
|
||||
sphere = vtk.vtkSphereSource()
|
||||
sphere.SetThetaResolution(80)
|
||||
sphere.SetPhiResolution(40)
|
||||
sphere.SetRadius(1)
|
||||
sphere.SetCenter(0, 0, 0)
|
||||
sphere2 = vtk.vtkSphereSource()
|
||||
sphere2.SetThetaResolution(80)
|
||||
sphere2.SetPhiResolution(40)
|
||||
sphere2.SetRadius(0.5)
|
||||
sphere2.SetCenter(1, 0, 0)
|
||||
sphere3 = vtk.vtkSphereSource()
|
||||
sphere3.SetThetaResolution(80)
|
||||
sphere3.SetPhiResolution(40)
|
||||
sphere3.SetRadius(0.5)
|
||||
sphere3.SetCenter(-1, 0, 0)
|
||||
sphere4 = vtk.vtkSphereSource()
|
||||
sphere4.SetThetaResolution(80)
|
||||
sphere4.SetPhiResolution(40)
|
||||
sphere4.SetRadius(0.5)
|
||||
sphere4.SetCenter(0, 1, 0)
|
||||
sphere5 = vtk.vtkSphereSource()
|
||||
sphere5.SetThetaResolution(80)
|
||||
sphere5.SetPhiResolution(40)
|
||||
sphere5.SetRadius(0.5)
|
||||
sphere5.SetCenter(0, -1, 0)
|
||||
appendData = vtk.vtkAppendPolyData()
|
||||
appendData.AddInputConnection(sphere.GetOutputPort())
|
||||
appendData.AddInputConnection(sphere2.GetOutputPort())
|
||||
appendData.AddInputConnection(sphere3.GetOutputPort())
|
||||
appendData.AddInputConnection(sphere4.GetOutputPort())
|
||||
appendData.AddInputConnection(sphere5.GetOutputPort())
|
||||
|
||||
# The dephSort object is set up to generate scalars representing
|
||||
# the sort depth. A camera is assigned for the sorting. The camera
|
||||
# define the sort vector (position and focal point).
|
||||
camera = vtk.vtkCamera()
|
||||
depthSort = vtk.vtkDepthSortPolyData()
|
||||
depthSort.SetInputConnection(appendData.GetOutputPort())
|
||||
depthSort.SetDirectionToBackToFront()
|
||||
depthSort.SetVector(1, 1, 1)
|
||||
depthSort.SetCamera(camera)
|
||||
depthSort.SortScalarsOn()
|
||||
depthSort.Update()
|
||||
|
||||
mapper = vtk.vtkPolyDataMapper()
|
||||
mapper.SetInputConnection(depthSort.GetOutputPort())
|
||||
mapper.SetScalarRange(0, depthSort.GetOutput().GetNumberOfCells())
|
||||
actor = vtk.vtkActor()
|
||||
actor.SetMapper(mapper)
|
||||
actor.GetProperty().SetOpacity(0.5)
|
||||
actor.GetProperty().SetColor(1, 0, 0)
|
||||
actor.RotateX(-72)
|
||||
|
||||
# If an Prop3D is supplied, then its transformation matrix is taken
|
||||
# into account during sorting.
|
||||
depthSort.SetProp3D(actor)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
ren = vtk.vtkRenderer()
|
||||
ren.SetActiveCamera(camera)
|
||||
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(actor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(300, 200)
|
||||
|
||||
ren.ResetCamera()
|
||||
ren.GetActiveCamera().Zoom(2.2)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to extract a piece of a dataset using an
|
||||
# implicit function. In this case the implicit function is formed by
|
||||
# the boolean combination of two ellipsoids.
|
||||
|
||||
import vtk
|
||||
|
||||
# Here we create two ellipsoidal implicit functions and boolean them
|
||||
# together tto form a "cross" shaped implicit function.
|
||||
quadric = vtk.vtkQuadric()
|
||||
quadric.SetCoefficients(.5, 1, .2, 0, .1, 0, 0, .2, 0, 0)
|
||||
sample = vtk.vtkSampleFunction()
|
||||
sample.SetSampleDimensions(50, 50, 50)
|
||||
sample.SetImplicitFunction(quadric)
|
||||
sample.ComputeNormalsOff()
|
||||
trans = vtk.vtkTransform()
|
||||
trans.Scale(1, .5, .333)
|
||||
sphere = vtk.vtkSphere()
|
||||
sphere.SetRadius(0.25)
|
||||
sphere.SetTransform(trans)
|
||||
trans2 = vtk.vtkTransform()
|
||||
trans2.Scale(.25, .5, 1.0)
|
||||
sphere2 = vtk.vtkSphere()
|
||||
sphere2.SetRadius(0.25)
|
||||
sphere2.SetTransform(trans2)
|
||||
union = vtk.vtkImplicitBoolean()
|
||||
union.AddFunction(sphere)
|
||||
union.AddFunction(sphere2)
|
||||
union.SetOperationType(0) #union
|
||||
|
||||
# Here is where it gets interesting. The implicit function is used to
|
||||
# extract those cells completely inside the function. They are then
|
||||
# shrunk to help show what was extracted.
|
||||
extract = vtk.vtkExtractGeometry()
|
||||
extract.SetInputConnection(sample.GetOutputPort())
|
||||
extract.SetImplicitFunction(union)
|
||||
shrink = vtk.vtkShrinkFilter()
|
||||
shrink.SetInputConnection(extract.GetOutputPort())
|
||||
shrink.SetShrinkFactor(0.5)
|
||||
dataMapper = vtk.vtkDataSetMapper()
|
||||
dataMapper.SetInputConnection(shrink.GetOutputPort())
|
||||
dataActor = vtk.vtkActor()
|
||||
dataActor.SetMapper(dataMapper)
|
||||
|
||||
# The outline gives context to the original data.
|
||||
outline = vtk.vtkOutlineFilter()
|
||||
outline.SetInputConnection(sample.GetOutputPort())
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineProp = outlineActor.GetProperty()
|
||||
outlineProp.SetColor(0, 0, 0)
|
||||
|
||||
# The usual rendering stuff is created.
|
||||
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(dataActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(500, 500)
|
||||
ren.ResetCamera()
|
||||
ren.GetActiveCamera().Zoom(1.5)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
93
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/ExtractUGrid.py
Executable file
93
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/ExtractUGrid.py
Executable file
@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to extract portions of an unstructured grid
|
||||
# using vtkExtractUnstructuredGrid. vtkConnectivityFilter is also used
|
||||
# to extract connected components.
|
||||
#
|
||||
# The data found here represents a blow molding process. Blow molding
|
||||
# requires a mold and parison (hot, viscous plastic) which is shaped
|
||||
# by the mold into the final form. The data file contains several steps
|
||||
# in time for the analysis.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Create a reader to read the unstructured grid data. We use a
|
||||
# vtkDataSetReader which means the type of the output is unknown until
|
||||
# the data file is read. So we follow the reader with a
|
||||
# vtkCastToConcrete and cast the output to vtkUnstructuredGrid.
|
||||
reader = vtk.vtkDataSetReader()
|
||||
reader.SetFileName(VTK_DATA_ROOT + "/Data/blow.vtk")
|
||||
reader.SetScalarsName("thickness9")
|
||||
reader.SetVectorsName("displacement9")
|
||||
castToUnstructuredGrid = vtk.vtkCastToConcrete()
|
||||
castToUnstructuredGrid.SetInputConnection(reader.GetOutputPort())
|
||||
warp = vtk.vtkWarpVector()
|
||||
warp.SetInputConnection(castToUnstructuredGrid.GetOutputPort())
|
||||
|
||||
# The connectivity filter extracts the first two regions. These are
|
||||
# know to represent the mold.
|
||||
connect = vtk.vtkConnectivityFilter()
|
||||
|
||||
connect.SetInputConnection(warp.GetOutputPort())
|
||||
connect.SetExtractionModeToSpecifiedRegions()
|
||||
connect.AddSpecifiedRegion(0)
|
||||
connect.AddSpecifiedRegion(1)
|
||||
moldMapper = vtk.vtkDataSetMapper()
|
||||
moldMapper.SetInputConnection(reader.GetOutputPort())
|
||||
moldMapper.ScalarVisibilityOff()
|
||||
moldActor = vtk.vtkActor()
|
||||
moldActor.SetMapper(moldMapper)
|
||||
moldActor.GetProperty().SetColor(.2, .2, .2)
|
||||
moldActor.GetProperty().SetRepresentationToWireframe()
|
||||
|
||||
# Another connectivity filter is used to extract the parison.
|
||||
connect2 = vtk.vtkConnectivityFilter()
|
||||
connect2.SetInputConnection(warp.GetOutputPort())
|
||||
connect2.SetExtractionModeToSpecifiedRegions()
|
||||
connect2.AddSpecifiedRegion(2)
|
||||
|
||||
# We use vtkExtractUnstructuredGrid because we are interested in
|
||||
# looking at just a few cells. We use cell clipping via cell id to
|
||||
# extract the portion of the grid we are interested in.
|
||||
extractGrid = vtk.vtkExtractUnstructuredGrid()
|
||||
extractGrid.SetInputConnection(connect2.GetOutputPort())
|
||||
extractGrid.CellClippingOn()
|
||||
extractGrid.SetCellMinimum(0)
|
||||
extractGrid.SetCellMaximum(23)
|
||||
parison = vtk.vtkGeometryFilter()
|
||||
parison.SetInputConnection(extractGrid.GetOutputPort())
|
||||
normals2 = vtk.vtkPolyDataNormals()
|
||||
normals2.SetInputConnection(parison.GetOutputPort())
|
||||
normals2.SetFeatureAngle(60)
|
||||
lut = vtk.vtkLookupTable()
|
||||
lut.SetHueRange(0.0, 0.66667)
|
||||
parisonMapper = vtk.vtkPolyDataMapper()
|
||||
parisonMapper.SetInputConnection(normals2.GetOutputPort())
|
||||
parisonMapper.SetLookupTable(lut)
|
||||
parisonMapper.SetScalarRange(0.12, 1.0)
|
||||
parisonActor = vtk.vtkActor()
|
||||
parisonActor.SetMapper(parisonMapper)
|
||||
|
||||
# graphics 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(parisonActor)
|
||||
ren.AddActor(moldActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
ren.ResetCamera()
|
||||
ren.GetActiveCamera().Azimuth(60)
|
||||
ren.GetActiveCamera().Roll(-90)
|
||||
ren.GetActiveCamera().Dolly(2)
|
||||
ren.ResetCameraClippingRange()
|
||||
renWin.SetSize(500, 375)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to generate and manipulate texture coordinates.
|
||||
# A random cloud of points is generated and then triangulated with
|
||||
# vtkDelaunay3D. Since these points do not have texture coordinates,
|
||||
# we generate them with vtkTextureMapToCylinder.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Begin by generating 25 random points in the unit sphere.
|
||||
sphere = vtk.vtkPointSource()
|
||||
sphere.SetNumberOfPoints(25)
|
||||
|
||||
# Triangulate the points with vtkDelaunay3D. This generates a convex hull
|
||||
# of tetrahedron.
|
||||
delny = vtk.vtkDelaunay3D()
|
||||
delny.SetInputConnection(sphere.GetOutputPort())
|
||||
delny.SetTolerance(0.01)
|
||||
|
||||
# The triangulation has texture coordinates generated so we can map
|
||||
# a texture onto it.
|
||||
tmapper = vtk.vtkTextureMapToCylinder()
|
||||
tmapper.SetInputConnection(delny.GetOutputPort())
|
||||
tmapper.PreventSeamOn()
|
||||
|
||||
# We scale the texture coordinate to get some repeat patterns.
|
||||
xform = vtk.vtkTransformTextureCoords()
|
||||
xform.SetInputConnection(tmapper.GetOutputPort())
|
||||
xform.SetScale(4, 4, 1)
|
||||
|
||||
# vtkDataSetMapper internally uses a vtkGeometryFilter to extract the
|
||||
# surface from the triangulation. The output (which is vtkPolyData) is
|
||||
# then passed to an internal vtkPolyDataMapper which does the
|
||||
# rendering.
|
||||
mapper = vtk.vtkDataSetMapper()
|
||||
mapper.SetInputConnection(xform.GetOutputPort())
|
||||
|
||||
# A texture is loaded using an image reader. Textures are simply images.
|
||||
# The texture is eventually associated with an actor.
|
||||
bmpReader = vtk.vtkBMPReader()
|
||||
bmpReader.SetFileName(VTK_DATA_ROOT + "/Data/masonry.bmp")
|
||||
atext = vtk.vtkTexture()
|
||||
atext.SetInputConnection(bmpReader.GetOutputPort())
|
||||
atext.InterpolateOn()
|
||||
triangulation = vtk.vtkActor()
|
||||
triangulation.SetMapper(mapper)
|
||||
triangulation.SetTexture(atext)
|
||||
|
||||
# Create the standard 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(triangulation)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(300, 300)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
68
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/SubsampleGrid.py
Executable file
68
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/SubsampleGrid.py
Executable file
@ -0,0 +1,68 @@
|
||||
#!/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.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# 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.SetInputData(pl3d_output)
|
||||
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.SetInputData(pl3d_output)
|
||||
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()
|
||||
137
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/TextureThreshold.py
Executable file
137
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/TextureThreshold.py
Executable file
@ -0,0 +1,137 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to use a transparent texture map to perform
|
||||
# thresholding. The key is the vtkThresholdTextureCoords filter which
|
||||
# creates texture coordinates based on a threshold value. These
|
||||
# texture coordinates are used in conjuntion with a texture map with
|
||||
# varying opacity and intensity to create an inside, transition, and
|
||||
# outside region.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Begin by reading some structure grid data.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/bluntfinxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/bluntfinq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# Now extract surfaces from the grid corresponding to boundary
|
||||
# geometry. First the wall.
|
||||
wall = vtk.vtkStructuredGridGeometryFilter()
|
||||
wall.SetInputData(pl3d_output)
|
||||
wall.SetExtent(0, 100, 0, 0, 0, 100)
|
||||
wallMap = vtk.vtkPolyDataMapper()
|
||||
wallMap.SetInputConnection(wall.GetOutputPort())
|
||||
wallMap.ScalarVisibilityOff()
|
||||
wallActor = vtk.vtkActor()
|
||||
wallActor.SetMapper(wallMap)
|
||||
wallActor.GetProperty().SetColor(0.8, 0.8, 0.8)
|
||||
|
||||
# Now the fin.
|
||||
fin = vtk.vtkStructuredGridGeometryFilter()
|
||||
fin.SetInputData(pl3d_output)
|
||||
fin.SetExtent(0, 100, 0, 100, 0, 0)
|
||||
finMap = vtk.vtkPolyDataMapper()
|
||||
finMap.SetInputConnection(fin.GetOutputPort())
|
||||
finMap.ScalarVisibilityOff()
|
||||
finActor = vtk.vtkActor()
|
||||
finActor.SetMapper(finMap)
|
||||
finActor.GetProperty().SetColor(0.8, 0.8, 0.8)
|
||||
|
||||
# Extract planes to threshold. Start by reading the specially designed
|
||||
# texture map that has three regions: an inside, boundary, and outside
|
||||
# region. The opacity and intensity of this texture map are varied.
|
||||
tmap = vtk.vtkStructuredPointsReader()
|
||||
tmap.SetFileName(VTK_DATA_ROOT + "/Data/texThres2.vtk")
|
||||
texture = vtk.vtkTexture()
|
||||
texture.SetInputConnection(tmap.GetOutputPort())
|
||||
texture.InterpolateOff()
|
||||
texture.RepeatOff()
|
||||
|
||||
# Here are the three planes which will be texture thresholded.
|
||||
plane1 = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane1.SetInputData(pl3d_output)
|
||||
plane1.SetExtent(10, 10, 0, 100, 0, 100)
|
||||
thresh1 = vtk.vtkThresholdTextureCoords()
|
||||
thresh1.SetInputConnection(plane1.GetOutputPort())
|
||||
thresh1.ThresholdByUpper(1.5)
|
||||
plane1Map = vtk.vtkDataSetMapper()
|
||||
plane1Map.SetInputConnection(thresh1.GetOutputPort())
|
||||
plane1Map.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
plane1Actor = vtk.vtkActor()
|
||||
plane1Actor.SetMapper(plane1Map)
|
||||
plane1Actor.SetTexture(texture)
|
||||
plane1Actor.GetProperty().SetOpacity(0.999)
|
||||
|
||||
plane2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane2.SetInputData(pl3d_output)
|
||||
plane2.SetExtent(30, 30, 0, 100, 0, 100)
|
||||
thresh2 = vtk.vtkThresholdTextureCoords()
|
||||
thresh2.SetInputConnection(plane2.GetOutputPort())
|
||||
thresh2.ThresholdByUpper(1.5)
|
||||
plane2Map = vtk.vtkDataSetMapper()
|
||||
plane2Map.SetInputConnection(thresh2.GetOutputPort())
|
||||
plane2Map.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
plane2Actor = vtk.vtkActor()
|
||||
plane2Actor.SetMapper(plane2Map)
|
||||
plane2Actor.SetTexture(texture)
|
||||
plane2Actor.GetProperty().SetOpacity(0.999)
|
||||
|
||||
plane3 = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane3.SetInputData(pl3d_output)
|
||||
plane3.SetExtent(35, 35, 0, 100, 0, 100)
|
||||
thresh3 = vtk.vtkThresholdTextureCoords()
|
||||
thresh3.SetInputConnection(plane3.GetOutputPort())
|
||||
thresh3.ThresholdByUpper(1.5)
|
||||
plane3Map = vtk.vtkDataSetMapper()
|
||||
plane3Map.SetInputConnection(thresh3.GetOutputPort())
|
||||
plane3Map.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
plane3Actor = vtk.vtkActor()
|
||||
plane3Actor.SetMapper(plane3Map)
|
||||
plane3Actor.SetTexture(texture)
|
||||
plane3Actor.GetProperty().SetOpacity(0.999)
|
||||
|
||||
# For context create an outline around the data.
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineProp = outlineActor.GetProperty()
|
||||
outlineProp.SetColor(0, 0, 0)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(wallActor)
|
||||
ren.AddActor(finActor)
|
||||
ren.AddActor(plane1Actor)
|
||||
ren.AddActor(plane2Actor)
|
||||
ren.AddActor(plane3Actor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(500, 500)
|
||||
|
||||
# Set up a nice view.
|
||||
cam1 = vtk.vtkCamera()
|
||||
cam1.SetClippingRange(1.51176, 75.5879)
|
||||
cam1.SetFocalPoint(2.33749, 2.96739, 3.61023)
|
||||
cam1.SetPosition(10.8787, 5.27346, 15.8687)
|
||||
cam1.SetViewAngle(30)
|
||||
cam1.SetViewUp(-0.0610856, 0.987798, -0.143262)
|
||||
ren.SetActiveCamera(cam1)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
59
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/VisQuad.py
Executable file
59
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/VisQuad.py
Executable file
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the use of the contour filter, and the use of
|
||||
# the vtkSampleFunction to generate a volume of data samples from an
|
||||
# implicit function.
|
||||
|
||||
import vtk
|
||||
|
||||
# VTK supports implicit functions of the form f(x,y,z)=constant. These
|
||||
# functions can represent things spheres, cones, etc. Here we use a
|
||||
# general form for a quadric to create an elliptical data field.
|
||||
quadric = vtk.vtkQuadric()
|
||||
quadric.SetCoefficients(.5, 1, .2, 0, .1, 0, 0, .2, 0, 0)
|
||||
|
||||
# vtkSampleFunction samples an implicit function over the x-y-z range
|
||||
# specified (here it defaults to -1,1 in the x,y,z directions).
|
||||
sample = vtk.vtkSampleFunction()
|
||||
sample.SetSampleDimensions(30, 30, 30)
|
||||
sample.SetImplicitFunction(quadric)
|
||||
|
||||
# Create five surfaces F(x,y,z) = constant between range specified. The
|
||||
# GenerateValues() method creates n isocontour values between the range
|
||||
# specified.
|
||||
contours = vtk.vtkContourFilter()
|
||||
contours.SetInputConnection(sample.GetOutputPort())
|
||||
contours.GenerateValues(5, 0.0, 1.2)
|
||||
|
||||
contMapper = vtk.vtkPolyDataMapper()
|
||||
contMapper.SetInputConnection(contours.GetOutputPort())
|
||||
contMapper.SetScalarRange(0.0, 1.2)
|
||||
|
||||
contActor = vtk.vtkActor()
|
||||
contActor.SetMapper(contMapper)
|
||||
|
||||
# We'll put a simple outline around the data.
|
||||
outline = vtk.vtkOutlineFilter()
|
||||
outline.SetInputConnection(sample.GetOutputPort())
|
||||
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineActor.GetProperty().SetColor(0,0,0)
|
||||
|
||||
# The usual rendering stuff.
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.SetBackground(1, 1, 1)
|
||||
ren.AddActor(contActor)
|
||||
ren.AddActor(outlineActor)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
52
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/deciFran.py
Executable file
52
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/deciFran.py
Executable file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to use decimation to reduce a polygonal
|
||||
# mesh. We also use mesh smoothing and generate surface normals to
|
||||
# give a pleasing result.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# We start by reading some data that was originally captured from a
|
||||
# Cyberware laser digitizing system.
|
||||
fran = vtk.vtkPolyDataReader()
|
||||
fran.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk")
|
||||
|
||||
# We want to preserve topology (not let any cracks form). This may
|
||||
# limit the total reduction possible, which we have specified at 90%.
|
||||
deci = vtk.vtkDecimatePro()
|
||||
deci.SetInputConnection(fran.GetOutputPort())
|
||||
deci.SetTargetReduction(0.9)
|
||||
deci.PreserveTopologyOn()
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(fran.GetOutputPort())
|
||||
normals.FlipNormalsOn()
|
||||
franMapper = vtk.vtkPolyDataMapper()
|
||||
franMapper.SetInputConnection(normals.GetOutputPort())
|
||||
franActor = vtk.vtkActor()
|
||||
franActor.SetMapper(franMapper)
|
||||
franActor.GetProperty().SetColor(1.0, 0.49, 0.25)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(franActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(250, 250)
|
||||
|
||||
cam1 = vtk.vtkCamera()
|
||||
cam1.SetClippingRange(0.0475572, 2.37786)
|
||||
cam1.SetFocalPoint(0.052665, -0.129454, -0.0573973)
|
||||
cam1.SetPosition(0.327637, -0.116299, -0.256418)
|
||||
cam1.SetViewUp(-0.0225386, 0.999137, 0.034901)
|
||||
ren.SetActiveCamera(cam1)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
58
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/imageWarp.py
Executable file
58
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/imageWarp.py
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to combine data from both the imaging and
|
||||
# graphics pipelines. The vtkMergeFilter is used to merge the data
|
||||
# from each together.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read in an image and compute a luminance value. The image is
|
||||
# extracted as a set of polygons (vtkImageDataGeometryFilter). We then
|
||||
# will warp the plane using the scalar (luminance) values.
|
||||
reader = vtk.vtkBMPReader()
|
||||
reader.SetFileName(VTK_DATA_ROOT + "/Data/masonry.bmp")
|
||||
luminance = vtk.vtkImageLuminance()
|
||||
luminance.SetInputConnection(reader.GetOutputPort())
|
||||
geometry = vtk.vtkImageDataGeometryFilter()
|
||||
geometry.SetInputConnection(luminance.GetOutputPort())
|
||||
warp = vtk.vtkWarpScalar()
|
||||
warp.SetInputConnection(geometry.GetOutputPort())
|
||||
warp.SetScaleFactor(-0.1)
|
||||
|
||||
# Use vtkMergeFilter to combine the original image with the warped
|
||||
# geometry.
|
||||
merge = vtk.vtkMergeFilter()
|
||||
merge.SetGeometryConnection(warp.GetOutputPort())
|
||||
merge.SetScalarsConnection(reader.GetOutputPort())
|
||||
mapper = vtk.vtkDataSetMapper()
|
||||
mapper.SetInputConnection(merge.GetOutputPort())
|
||||
mapper.SetScalarRange(0, 255)
|
||||
mapper.ImmediateModeRenderingOff()
|
||||
actor = vtk.vtkActor()
|
||||
actor.SetMapper(mapper)
|
||||
|
||||
# Create renderer 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(actor)
|
||||
ren.ResetCamera()
|
||||
ren.GetActiveCamera().Azimuth(20)
|
||||
ren.GetActiveCamera().Elevation(30)
|
||||
ren.SetBackground(0.1, 0.2, 0.4)
|
||||
ren.ResetCameraClippingRange()
|
||||
|
||||
renWin.SetSize(250, 250)
|
||||
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.Zoom(1.4)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
303
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/officeTube.py
Executable file
303
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/officeTube.py
Executable file
@ -0,0 +1,303 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the use of a single streamline and the
|
||||
# tube filter to create a streamtube.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
from vtk.util.colors import *
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# We read a data file the is a CFD analysis of airflow in an office
|
||||
# (with ventilation and a burning cigarette). We force an update so
|
||||
# that we can query the output for its length, i.e., the length of the
|
||||
# diagonal of the bounding box. This is useful for normalizing the
|
||||
# data.
|
||||
reader = vtk.vtkStructuredGridReader()
|
||||
reader.SetFileName(VTK_DATA_ROOT + "/Data/office.binary.vtk")
|
||||
reader.Update()
|
||||
|
||||
length = reader.GetOutput().GetLength()
|
||||
|
||||
maxVelocity =reader.GetOutput().GetPointData().GetVectors().GetMaxNorm()
|
||||
maxTime = 35.0*length/maxVelocity
|
||||
|
||||
# Now we will generate a single streamline in the data. We select the
|
||||
# integration order to use (RungeKutta order 4) and associate it with
|
||||
# the streamer. The start position is the position in world space
|
||||
# where we want to begin streamline integration; and we integrate in
|
||||
# both directions. The step length is the length of the line segments
|
||||
# that make up the streamline (i.e., related to display). The
|
||||
# IntegrationStepLength specifies the integration step length as a
|
||||
# fraction of the cell size that the streamline is in.
|
||||
integ = vtk.vtkRungeKutta4()
|
||||
streamer = vtk.vtkStreamTracer()
|
||||
streamer.SetInputConnection(reader.GetOutputPort())
|
||||
streamer.SetStartPosition(0.1, 2.1, 0.5)
|
||||
streamer.SetMaximumPropagation(500)
|
||||
streamer.SetInitialIntegrationStep(0.05)
|
||||
streamer.SetIntegrationDirectionToBoth()
|
||||
streamer.SetIntegrator(integ)
|
||||
|
||||
# The tube is wrapped around the generated streamline. By varying the
|
||||
# radius by the inverse of vector magnitude, we are creating a tube
|
||||
# whose radius is proportional to mass flux (in incompressible flow).
|
||||
streamTube = vtk.vtkTubeFilter()
|
||||
streamTube.SetInputConnection(streamer.GetOutputPort())
|
||||
streamTube.SetInputArrayToProcess(1, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_POINTS, "vectors")
|
||||
streamTube.SetRadius(0.02)
|
||||
streamTube.SetNumberOfSides(12)
|
||||
streamTube.SetVaryRadiusToVaryRadiusByVector()
|
||||
mapStreamTube = vtk.vtkPolyDataMapper()
|
||||
mapStreamTube.SetInputConnection(streamTube.GetOutputPort())
|
||||
mapStreamTube.SetScalarRange(reader.GetOutput().GetPointData().GetScalars().GetRange())
|
||||
streamTubeActor = vtk.vtkActor()
|
||||
streamTubeActor.SetMapper(mapStreamTube)
|
||||
streamTubeActor.GetProperty().BackfaceCullingOn()
|
||||
|
||||
# From here on we generate a whole bunch of planes which correspond to
|
||||
# the geometry in the analysis; tables, bookshelves and so on.
|
||||
table1 = vtk.vtkStructuredGridGeometryFilter()
|
||||
table1.SetInputConnection(reader.GetOutputPort())
|
||||
table1.SetExtent(11, 15, 7, 9, 8, 8)
|
||||
mapTable1 = vtk.vtkPolyDataMapper()
|
||||
mapTable1.SetInputConnection(table1.GetOutputPort())
|
||||
mapTable1.ScalarVisibilityOff()
|
||||
table1Actor = vtk.vtkActor()
|
||||
table1Actor.SetMapper(mapTable1)
|
||||
table1Actor.GetProperty().SetColor(.59, .427, .392)
|
||||
|
||||
table2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
table2.SetInputConnection(reader.GetOutputPort())
|
||||
table2.SetExtent(11, 15, 10, 12, 8, 8)
|
||||
mapTable2 = vtk.vtkPolyDataMapper()
|
||||
mapTable2.SetInputConnection(table2.GetOutputPort())
|
||||
mapTable2.ScalarVisibilityOff()
|
||||
table2Actor = vtk.vtkActor()
|
||||
table2Actor.SetMapper(mapTable2)
|
||||
table2Actor.GetProperty().SetColor(.59, .427, .392)
|
||||
|
||||
FilingCabinet1 = vtk.vtkStructuredGridGeometryFilter()
|
||||
FilingCabinet1.SetInputConnection(reader.GetOutputPort())
|
||||
FilingCabinet1.SetExtent(15, 15, 7, 9, 0, 8)
|
||||
mapFilingCabinet1 = vtk.vtkPolyDataMapper()
|
||||
mapFilingCabinet1.SetInputConnection(FilingCabinet1.GetOutputPort())
|
||||
mapFilingCabinet1.ScalarVisibilityOff()
|
||||
FilingCabinet1Actor = vtk.vtkActor()
|
||||
FilingCabinet1Actor.SetMapper(mapFilingCabinet1)
|
||||
FilingCabinet1Actor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
FilingCabinet2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
FilingCabinet2.SetInputConnection(reader.GetOutputPort())
|
||||
FilingCabinet2.SetExtent(15, 15, 10, 12, 0, 8)
|
||||
mapFilingCabinet2 = vtk.vtkPolyDataMapper()
|
||||
mapFilingCabinet2.SetInputConnection(FilingCabinet2.GetOutputPort())
|
||||
mapFilingCabinet2.ScalarVisibilityOff()
|
||||
FilingCabinet2Actor = vtk.vtkActor()
|
||||
FilingCabinet2Actor.SetMapper(mapFilingCabinet2)
|
||||
FilingCabinet2Actor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Top = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Top.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Top.SetExtent(13, 13, 0, 4, 0, 11)
|
||||
mapBookshelf1Top = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Top.SetInputConnection(bookshelf1Top.GetOutputPort())
|
||||
mapBookshelf1Top.ScalarVisibilityOff()
|
||||
bookshelf1TopActor = vtk.vtkActor()
|
||||
bookshelf1TopActor.SetMapper(mapBookshelf1Top)
|
||||
bookshelf1TopActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Bottom = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Bottom.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Bottom.SetExtent(20, 20, 0, 4, 0, 11)
|
||||
mapBookshelf1Bottom = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Bottom.SetInputConnection(bookshelf1Bottom.GetOutputPort())
|
||||
mapBookshelf1Bottom.ScalarVisibilityOff()
|
||||
bookshelf1BottomActor = vtk.vtkActor()
|
||||
bookshelf1BottomActor.SetMapper(mapBookshelf1Bottom)
|
||||
bookshelf1BottomActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Front = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Front.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Front.SetExtent(13, 20, 0, 0, 0, 11)
|
||||
mapBookshelf1Front = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Front.SetInputConnection(bookshelf1Front.GetOutputPort())
|
||||
mapBookshelf1Front.ScalarVisibilityOff()
|
||||
bookshelf1FrontActor = vtk.vtkActor()
|
||||
bookshelf1FrontActor.SetMapper(mapBookshelf1Front)
|
||||
bookshelf1FrontActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Back = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Back.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Back.SetExtent(13, 20, 4, 4, 0, 11)
|
||||
mapBookshelf1Back = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Back.SetInputConnection(bookshelf1Back.GetOutputPort())
|
||||
mapBookshelf1Back.ScalarVisibilityOff()
|
||||
bookshelf1BackActor = vtk.vtkActor()
|
||||
bookshelf1BackActor.SetMapper(mapBookshelf1Back)
|
||||
bookshelf1BackActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1LHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1LHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1LHS.SetExtent(13, 20, 0, 4, 0, 0)
|
||||
mapBookshelf1LHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1LHS.SetInputConnection(bookshelf1LHS.GetOutputPort())
|
||||
mapBookshelf1LHS.ScalarVisibilityOff()
|
||||
bookshelf1LHSActor = vtk.vtkActor()
|
||||
bookshelf1LHSActor.SetMapper(mapBookshelf1LHS)
|
||||
bookshelf1LHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1RHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1RHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1RHS.SetExtent(13, 20, 0, 4, 11, 11)
|
||||
mapBookshelf1RHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1RHS.SetInputConnection(bookshelf1RHS.GetOutputPort())
|
||||
mapBookshelf1RHS.ScalarVisibilityOff()
|
||||
bookshelf1RHSActor = vtk.vtkActor()
|
||||
bookshelf1RHSActor.SetMapper(mapBookshelf1RHS)
|
||||
bookshelf1RHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Top = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Top.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Top.SetExtent(13, 13, 15, 19, 0, 11)
|
||||
mapBookshelf2Top = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Top.SetInputConnection(bookshelf2Top.GetOutputPort())
|
||||
mapBookshelf2Top.ScalarVisibilityOff()
|
||||
bookshelf2TopActor = vtk.vtkActor()
|
||||
bookshelf2TopActor.SetMapper(mapBookshelf2Top)
|
||||
bookshelf2TopActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Bottom = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Bottom.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Bottom.SetExtent(20, 20, 15, 19, 0, 11)
|
||||
mapBookshelf2Bottom = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Bottom.SetInputConnection(bookshelf2Bottom.GetOutputPort())
|
||||
mapBookshelf2Bottom.ScalarVisibilityOff()
|
||||
bookshelf2BottomActor = vtk.vtkActor()
|
||||
bookshelf2BottomActor.SetMapper(mapBookshelf2Bottom)
|
||||
bookshelf2BottomActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Front = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Front.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Front.SetExtent(13, 20, 15, 15, 0, 11)
|
||||
mapBookshelf2Front = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Front.SetInputConnection(bookshelf2Front.GetOutputPort())
|
||||
mapBookshelf2Front.ScalarVisibilityOff()
|
||||
bookshelf2FrontActor = vtk.vtkActor()
|
||||
bookshelf2FrontActor.SetMapper(mapBookshelf2Front)
|
||||
bookshelf2FrontActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Back = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Back.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Back.SetExtent(13, 20, 19, 19, 0, 11)
|
||||
mapBookshelf2Back = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Back.SetInputConnection(bookshelf2Back.GetOutputPort())
|
||||
mapBookshelf2Back.ScalarVisibilityOff()
|
||||
bookshelf2BackActor = vtk.vtkActor()
|
||||
bookshelf2BackActor.SetMapper(mapBookshelf2Back)
|
||||
bookshelf2BackActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2LHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2LHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2LHS.SetExtent(13, 20, 15, 19, 0, 0)
|
||||
mapBookshelf2LHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2LHS.SetInputConnection(bookshelf2LHS.GetOutputPort())
|
||||
mapBookshelf2LHS.ScalarVisibilityOff()
|
||||
bookshelf2LHSActor = vtk.vtkActor()
|
||||
bookshelf2LHSActor.SetMapper(mapBookshelf2LHS)
|
||||
bookshelf2LHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2RHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2RHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2RHS.SetExtent(13, 20, 15, 19, 11, 11)
|
||||
mapBookshelf2RHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2RHS.SetInputConnection(bookshelf2RHS.GetOutputPort())
|
||||
mapBookshelf2RHS.ScalarVisibilityOff()
|
||||
bookshelf2RHSActor = vtk.vtkActor()
|
||||
bookshelf2RHSActor.SetMapper(mapBookshelf2RHS)
|
||||
bookshelf2RHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
window = vtk.vtkStructuredGridGeometryFilter()
|
||||
window.SetInputConnection(reader.GetOutputPort())
|
||||
window.SetExtent(20, 20, 6, 13, 10, 13)
|
||||
mapWindow = vtk.vtkPolyDataMapper()
|
||||
mapWindow.SetInputConnection(window.GetOutputPort())
|
||||
mapWindow.ScalarVisibilityOff()
|
||||
windowActor = vtk.vtkActor()
|
||||
windowActor.SetMapper(mapWindow)
|
||||
windowActor.GetProperty().SetColor(.3, .3, .5)
|
||||
|
||||
outlet = vtk.vtkStructuredGridGeometryFilter()
|
||||
outlet.SetInputConnection(reader.GetOutputPort())
|
||||
outlet.SetExtent(0, 0, 9, 10, 14, 16)
|
||||
mapOutlet = vtk.vtkPolyDataMapper()
|
||||
mapOutlet.SetInputConnection(outlet.GetOutputPort())
|
||||
mapOutlet.ScalarVisibilityOff()
|
||||
outletActor = vtk.vtkActor()
|
||||
outletActor.SetMapper(mapOutlet)
|
||||
outletActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
inlet = vtk.vtkStructuredGridGeometryFilter()
|
||||
inlet.SetInputConnection(reader.GetOutputPort())
|
||||
inlet.SetExtent(0, 0, 9, 10, 0, 6)
|
||||
mapInlet = vtk.vtkPolyDataMapper()
|
||||
mapInlet.SetInputConnection(inlet.GetOutputPort())
|
||||
mapInlet.ScalarVisibilityOff()
|
||||
inletActor = vtk.vtkActor()
|
||||
inletActor.SetMapper(mapInlet)
|
||||
inletActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputConnection(reader.GetOutputPort())
|
||||
mapOutline = vtk.vtkPolyDataMapper()
|
||||
mapOutline.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(mapOutline)
|
||||
outlineActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# Now create the usual graphics stuff.
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.AddActor(table1Actor)
|
||||
ren.AddActor(table2Actor)
|
||||
ren.AddActor(FilingCabinet1Actor)
|
||||
ren.AddActor(FilingCabinet2Actor)
|
||||
ren.AddActor(bookshelf1TopActor)
|
||||
ren.AddActor(bookshelf1BottomActor)
|
||||
ren.AddActor(bookshelf1FrontActor)
|
||||
ren.AddActor(bookshelf1BackActor)
|
||||
ren.AddActor(bookshelf1LHSActor)
|
||||
ren.AddActor(bookshelf1RHSActor)
|
||||
ren.AddActor(bookshelf2TopActor)
|
||||
ren.AddActor(bookshelf2BottomActor)
|
||||
ren.AddActor(bookshelf2FrontActor)
|
||||
ren.AddActor(bookshelf2BackActor)
|
||||
ren.AddActor(bookshelf2LHSActor)
|
||||
ren.AddActor(bookshelf2RHSActor)
|
||||
ren.AddActor(windowActor)
|
||||
ren.AddActor(outletActor)
|
||||
ren.AddActor(inletActor)
|
||||
ren.AddActor(outlineActor)
|
||||
ren.AddActor(streamTubeActor)
|
||||
|
||||
ren.SetBackground(slate_grey)
|
||||
|
||||
# Here we specify a particular view.
|
||||
aCamera = vtk.vtkCamera()
|
||||
aCamera.SetClippingRange(0.726079, 36.3039)
|
||||
aCamera.SetFocalPoint(2.43584, 2.15046, 1.11104)
|
||||
aCamera.SetPosition(-4.76183, -10.4426, 3.17203)
|
||||
aCamera.SetViewUp(0.0511273, 0.132773, 0.989827)
|
||||
aCamera.SetViewAngle(18.604)
|
||||
aCamera.Zoom(1.2)
|
||||
|
||||
ren.SetActiveCamera(aCamera)
|
||||
renWin.SetSize(500, 300)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
311
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/officeTubes.py
Executable file
311
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/officeTubes.py
Executable file
@ -0,0 +1,311 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the use of streamlines generated from seeds,
|
||||
# combined with a tube filter to create several streamtubes.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
from vtk.util.colors import *
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# We read a data file the is a CFD analysis of airflow in an office
|
||||
# (with ventilation and a burning cigarette). We force an update so
|
||||
# that we can query the output for its length, i.e., the length of the
|
||||
# diagonal of the bounding box. This is useful for normalizing the
|
||||
# data.
|
||||
reader = vtk.vtkStructuredGridReader()
|
||||
reader.SetFileName(VTK_DATA_ROOT + "/Data/office.binary.vtk")
|
||||
reader.Update()
|
||||
|
||||
length = reader.GetOutput().GetLength()
|
||||
|
||||
maxVelocity =reader.GetOutput().GetPointData().GetVectors().GetMaxNorm()
|
||||
maxTime = 35.0*length/maxVelocity
|
||||
|
||||
# Now we will generate multiple streamlines in the data. We create a
|
||||
# random cloud of points and then use those as integration seeds. We
|
||||
# select the integration order to use (RungeKutta order 4) and
|
||||
# associate it with the streamer. The start position is the position
|
||||
# in world space where we want to begin streamline integration; and we
|
||||
# integrate in both directions. The step length is the length of the
|
||||
# line segments that make up the streamline (i.e., related to
|
||||
# display). The IntegrationStepLength specifies the integration step
|
||||
# length as a fraction of the cell size that the streamline is in.
|
||||
|
||||
# Create source for streamtubes
|
||||
seeds = vtk.vtkPointSource()
|
||||
seeds.SetRadius(0.15)
|
||||
seeds.SetCenter(0.1, 2.1, 0.5)
|
||||
seeds.SetNumberOfPoints(6)
|
||||
|
||||
integ = vtk.vtkRungeKutta4()
|
||||
streamer = vtk.vtkStreamTracer()
|
||||
streamer.SetInputConnection(reader.GetOutputPort())
|
||||
streamer.SetSourceConnection(seeds.GetOutputPort())
|
||||
streamer.SetMaximumPropagation(500)
|
||||
streamer.SetInitialIntegrationStep(0.05)
|
||||
streamer.SetIntegrationDirectionToBoth()
|
||||
streamer.SetIntegrator(integ)
|
||||
|
||||
# The tube is wrapped around the generated streamline. By varying the
|
||||
# radius by the inverse of vector magnitude, we are creating a tube
|
||||
# whose radius is proportional to mass flux (in incompressible flow).
|
||||
streamTube = vtk.vtkTubeFilter()
|
||||
streamTube.SetInputConnection(streamer.GetOutputPort())
|
||||
streamTube.SetInputArrayToProcess(1, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_POINTS, "vectors")
|
||||
streamTube.SetRadius(0.02)
|
||||
streamTube.SetNumberOfSides(12)
|
||||
streamTube.SetVaryRadiusToVaryRadiusByVector()
|
||||
mapStreamTube = vtk.vtkPolyDataMapper()
|
||||
mapStreamTube.SetInputConnection(streamTube.GetOutputPort())
|
||||
mapStreamTube.SetScalarRange(reader.GetOutput().GetPointData().GetScalars().GetRange())
|
||||
streamTubeActor = vtk.vtkActor()
|
||||
streamTubeActor.SetMapper(mapStreamTube)
|
||||
streamTubeActor.GetProperty().BackfaceCullingOn()
|
||||
|
||||
# From here on we generate a whole bunch of planes which correspond to
|
||||
# the geometry in the analysis; tables, bookshelves and so on.
|
||||
table1 = vtk.vtkStructuredGridGeometryFilter()
|
||||
table1.SetInputConnection(reader.GetOutputPort())
|
||||
table1.SetExtent(11, 15, 7, 9, 8, 8)
|
||||
mapTable1 = vtk.vtkPolyDataMapper()
|
||||
mapTable1.SetInputConnection(table1.GetOutputPort())
|
||||
mapTable1.ScalarVisibilityOff()
|
||||
table1Actor = vtk.vtkActor()
|
||||
table1Actor.SetMapper(mapTable1)
|
||||
table1Actor.GetProperty().SetColor(.59, .427, .392)
|
||||
|
||||
table2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
table2.SetInputConnection(reader.GetOutputPort())
|
||||
table2.SetExtent(11, 15, 10, 12, 8, 8)
|
||||
mapTable2 = vtk.vtkPolyDataMapper()
|
||||
mapTable2.SetInputConnection(table2.GetOutputPort())
|
||||
mapTable2.ScalarVisibilityOff()
|
||||
table2Actor = vtk.vtkActor()
|
||||
table2Actor.SetMapper(mapTable2)
|
||||
table2Actor.GetProperty().SetColor(.59, .427, .392)
|
||||
|
||||
FilingCabinet1 = vtk.vtkStructuredGridGeometryFilter()
|
||||
FilingCabinet1.SetInputConnection(reader.GetOutputPort())
|
||||
FilingCabinet1.SetExtent(15, 15, 7, 9, 0, 8)
|
||||
mapFilingCabinet1 = vtk.vtkPolyDataMapper()
|
||||
mapFilingCabinet1.SetInputConnection(FilingCabinet1.GetOutputPort())
|
||||
mapFilingCabinet1.ScalarVisibilityOff()
|
||||
FilingCabinet1Actor = vtk.vtkActor()
|
||||
FilingCabinet1Actor.SetMapper(mapFilingCabinet1)
|
||||
FilingCabinet1Actor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
FilingCabinet2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
FilingCabinet2.SetInputConnection(reader.GetOutputPort())
|
||||
FilingCabinet2.SetExtent(15, 15, 10, 12, 0, 8)
|
||||
mapFilingCabinet2 = vtk.vtkPolyDataMapper()
|
||||
mapFilingCabinet2.SetInputConnection(FilingCabinet2.GetOutputPort())
|
||||
mapFilingCabinet2.ScalarVisibilityOff()
|
||||
FilingCabinet2Actor = vtk.vtkActor()
|
||||
FilingCabinet2Actor.SetMapper(mapFilingCabinet2)
|
||||
FilingCabinet2Actor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Top = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Top.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Top.SetExtent(13, 13, 0, 4, 0, 11)
|
||||
mapBookshelf1Top = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Top.SetInputConnection(bookshelf1Top.GetOutputPort())
|
||||
mapBookshelf1Top.ScalarVisibilityOff()
|
||||
bookshelf1TopActor = vtk.vtkActor()
|
||||
bookshelf1TopActor.SetMapper(mapBookshelf1Top)
|
||||
bookshelf1TopActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Bottom = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Bottom.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Bottom.SetExtent(20, 20, 0, 4, 0, 11)
|
||||
mapBookshelf1Bottom = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Bottom.SetInputConnection(bookshelf1Bottom.GetOutputPort())
|
||||
mapBookshelf1Bottom.ScalarVisibilityOff()
|
||||
bookshelf1BottomActor = vtk.vtkActor()
|
||||
bookshelf1BottomActor.SetMapper(mapBookshelf1Bottom)
|
||||
bookshelf1BottomActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Front = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Front.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Front.SetExtent(13, 20, 0, 0, 0, 11)
|
||||
mapBookshelf1Front = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Front.SetInputConnection(bookshelf1Front.GetOutputPort())
|
||||
mapBookshelf1Front.ScalarVisibilityOff()
|
||||
bookshelf1FrontActor = vtk.vtkActor()
|
||||
bookshelf1FrontActor.SetMapper(mapBookshelf1Front)
|
||||
bookshelf1FrontActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1Back = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1Back.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1Back.SetExtent(13, 20, 4, 4, 0, 11)
|
||||
mapBookshelf1Back = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1Back.SetInputConnection(bookshelf1Back.GetOutputPort())
|
||||
mapBookshelf1Back.ScalarVisibilityOff()
|
||||
bookshelf1BackActor = vtk.vtkActor()
|
||||
bookshelf1BackActor.SetMapper(mapBookshelf1Back)
|
||||
bookshelf1BackActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1LHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1LHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1LHS.SetExtent(13, 20, 0, 4, 0, 0)
|
||||
mapBookshelf1LHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1LHS.SetInputConnection(bookshelf1LHS.GetOutputPort())
|
||||
mapBookshelf1LHS.ScalarVisibilityOff()
|
||||
bookshelf1LHSActor = vtk.vtkActor()
|
||||
bookshelf1LHSActor.SetMapper(mapBookshelf1LHS)
|
||||
bookshelf1LHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf1RHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf1RHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf1RHS.SetExtent(13, 20, 0, 4, 11, 11)
|
||||
mapBookshelf1RHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf1RHS.SetInputConnection(bookshelf1RHS.GetOutputPort())
|
||||
mapBookshelf1RHS.ScalarVisibilityOff()
|
||||
bookshelf1RHSActor = vtk.vtkActor()
|
||||
bookshelf1RHSActor.SetMapper(mapBookshelf1RHS)
|
||||
bookshelf1RHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Top = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Top.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Top.SetExtent(13, 13, 15, 19, 0, 11)
|
||||
mapBookshelf2Top = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Top.SetInputConnection(bookshelf2Top.GetOutputPort())
|
||||
mapBookshelf2Top.ScalarVisibilityOff()
|
||||
bookshelf2TopActor = vtk.vtkActor()
|
||||
bookshelf2TopActor.SetMapper(mapBookshelf2Top)
|
||||
bookshelf2TopActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Bottom = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Bottom.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Bottom.SetExtent(20, 20, 15, 19, 0, 11)
|
||||
mapBookshelf2Bottom = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Bottom.SetInputConnection(bookshelf2Bottom.GetOutputPort())
|
||||
mapBookshelf2Bottom.ScalarVisibilityOff()
|
||||
bookshelf2BottomActor = vtk.vtkActor()
|
||||
bookshelf2BottomActor.SetMapper(mapBookshelf2Bottom)
|
||||
bookshelf2BottomActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Front = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Front.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Front.SetExtent(13, 20, 15, 15, 0, 11)
|
||||
mapBookshelf2Front = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Front.SetInputConnection(bookshelf2Front.GetOutputPort())
|
||||
mapBookshelf2Front.ScalarVisibilityOff()
|
||||
bookshelf2FrontActor = vtk.vtkActor()
|
||||
bookshelf2FrontActor.SetMapper(mapBookshelf2Front)
|
||||
bookshelf2FrontActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2Back = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2Back.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2Back.SetExtent(13, 20, 19, 19, 0, 11)
|
||||
mapBookshelf2Back = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2Back.SetInputConnection(bookshelf2Back.GetOutputPort())
|
||||
mapBookshelf2Back.ScalarVisibilityOff()
|
||||
bookshelf2BackActor = vtk.vtkActor()
|
||||
bookshelf2BackActor.SetMapper(mapBookshelf2Back)
|
||||
bookshelf2BackActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2LHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2LHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2LHS.SetExtent(13, 20, 15, 19, 0, 0)
|
||||
mapBookshelf2LHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2LHS.SetInputConnection(bookshelf2LHS.GetOutputPort())
|
||||
mapBookshelf2LHS.ScalarVisibilityOff()
|
||||
bookshelf2LHSActor = vtk.vtkActor()
|
||||
bookshelf2LHSActor.SetMapper(mapBookshelf2LHS)
|
||||
bookshelf2LHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
bookshelf2RHS = vtk.vtkStructuredGridGeometryFilter()
|
||||
bookshelf2RHS.SetInputConnection(reader.GetOutputPort())
|
||||
bookshelf2RHS.SetExtent(13, 20, 15, 19, 11, 11)
|
||||
mapBookshelf2RHS = vtk.vtkPolyDataMapper()
|
||||
mapBookshelf2RHS.SetInputConnection(bookshelf2RHS.GetOutputPort())
|
||||
mapBookshelf2RHS.ScalarVisibilityOff()
|
||||
bookshelf2RHSActor = vtk.vtkActor()
|
||||
bookshelf2RHSActor.SetMapper(mapBookshelf2RHS)
|
||||
bookshelf2RHSActor.GetProperty().SetColor(.8, .8, .6)
|
||||
|
||||
window = vtk.vtkStructuredGridGeometryFilter()
|
||||
window.SetInputConnection(reader.GetOutputPort())
|
||||
window.SetExtent(20, 20, 6, 13, 10, 13)
|
||||
mapWindow = vtk.vtkPolyDataMapper()
|
||||
mapWindow.SetInputConnection(window.GetOutputPort())
|
||||
mapWindow.ScalarVisibilityOff()
|
||||
windowActor = vtk.vtkActor()
|
||||
windowActor.SetMapper(mapWindow)
|
||||
windowActor.GetProperty().SetColor(.3, .3, .5)
|
||||
|
||||
outlet = vtk.vtkStructuredGridGeometryFilter()
|
||||
outlet.SetInputConnection(reader.GetOutputPort())
|
||||
outlet.SetExtent(0, 0, 9, 10, 14, 16)
|
||||
mapOutlet = vtk.vtkPolyDataMapper()
|
||||
mapOutlet.SetInputConnection(outlet.GetOutputPort())
|
||||
mapOutlet.ScalarVisibilityOff()
|
||||
outletActor = vtk.vtkActor()
|
||||
outletActor.SetMapper(mapOutlet)
|
||||
outletActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
inlet = vtk.vtkStructuredGridGeometryFilter()
|
||||
inlet.SetInputConnection(reader.GetOutputPort())
|
||||
inlet.SetExtent(0, 0, 9, 10, 0, 6)
|
||||
mapInlet = vtk.vtkPolyDataMapper()
|
||||
mapInlet.SetInputConnection(inlet.GetOutputPort())
|
||||
mapInlet.ScalarVisibilityOff()
|
||||
inletActor = vtk.vtkActor()
|
||||
inletActor.SetMapper(mapInlet)
|
||||
inletActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputConnection(reader.GetOutputPort())
|
||||
mapOutline = vtk.vtkPolyDataMapper()
|
||||
mapOutline.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(mapOutline)
|
||||
outlineActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# Now create the usual graphics stuff.
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.AddActor(table1Actor)
|
||||
ren.AddActor(table2Actor)
|
||||
ren.AddActor(FilingCabinet1Actor)
|
||||
ren.AddActor(FilingCabinet2Actor)
|
||||
ren.AddActor(bookshelf1TopActor)
|
||||
ren.AddActor(bookshelf1BottomActor)
|
||||
ren.AddActor(bookshelf1FrontActor)
|
||||
ren.AddActor(bookshelf1BackActor)
|
||||
ren.AddActor(bookshelf1LHSActor)
|
||||
ren.AddActor(bookshelf1RHSActor)
|
||||
ren.AddActor(bookshelf2TopActor)
|
||||
ren.AddActor(bookshelf2BottomActor)
|
||||
ren.AddActor(bookshelf2FrontActor)
|
||||
ren.AddActor(bookshelf2BackActor)
|
||||
ren.AddActor(bookshelf2LHSActor)
|
||||
ren.AddActor(bookshelf2RHSActor)
|
||||
ren.AddActor(windowActor)
|
||||
ren.AddActor(outletActor)
|
||||
ren.AddActor(inletActor)
|
||||
ren.AddActor(outlineActor)
|
||||
ren.AddActor(streamTubeActor)
|
||||
|
||||
ren.SetBackground(slate_grey)
|
||||
|
||||
# Here we specify a particular view.
|
||||
aCamera = vtk.vtkCamera()
|
||||
aCamera.SetClippingRange(0.726079, 36.3039)
|
||||
aCamera.SetFocalPoint(2.43584, 2.15046, 1.11104)
|
||||
aCamera.SetPosition(-4.76183, -10.4426, 3.17203)
|
||||
aCamera.SetViewUp(0.0511273, 0.132773, 0.989827)
|
||||
aCamera.SetViewAngle(18.604)
|
||||
aCamera.Zoom(1.2)
|
||||
|
||||
ren.SetActiveCamera(aCamera)
|
||||
renWin.SetSize(500, 300)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
124
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/probeComb.py
Executable file
124
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/probeComb.py
Executable file
@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This shows how to probe a dataset with a plane. The probed data is
|
||||
# then contoured.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read data.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# We create three planes and position them in the correct position
|
||||
# using transform filters. They are then appended together and used as
|
||||
# a probe.
|
||||
plane = vtk.vtkPlaneSource()
|
||||
plane.SetResolution(50, 50)
|
||||
transP1 = vtk.vtkTransform()
|
||||
transP1.Translate(3.7, 0.0, 28.37)
|
||||
transP1.Scale(5, 5, 5)
|
||||
transP1.RotateY(90)
|
||||
tpd1 = vtk.vtkTransformPolyDataFilter()
|
||||
tpd1.SetInputConnection(plane.GetOutputPort())
|
||||
tpd1.SetTransform(transP1)
|
||||
outTpd1 = vtk.vtkOutlineFilter()
|
||||
outTpd1.SetInputConnection(tpd1.GetOutputPort())
|
||||
mapTpd1 = vtk.vtkPolyDataMapper()
|
||||
mapTpd1.SetInputConnection(outTpd1.GetOutputPort())
|
||||
tpd1Actor = vtk.vtkActor()
|
||||
tpd1Actor.SetMapper(mapTpd1)
|
||||
tpd1Actor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
transP2 = vtk.vtkTransform()
|
||||
transP2.Translate(9.2, 0.0, 31.20)
|
||||
transP2.Scale(5, 5, 5)
|
||||
transP2.RotateY(90)
|
||||
tpd2 = vtk.vtkTransformPolyDataFilter()
|
||||
tpd2.SetInputConnection(plane.GetOutputPort())
|
||||
tpd2.SetTransform(transP2)
|
||||
outTpd2 = vtk.vtkOutlineFilter()
|
||||
outTpd2.SetInputConnection(tpd2.GetOutputPort())
|
||||
mapTpd2 = vtk.vtkPolyDataMapper()
|
||||
mapTpd2.SetInputConnection(outTpd2.GetOutputPort())
|
||||
tpd2Actor = vtk.vtkActor()
|
||||
tpd2Actor.SetMapper(mapTpd2)
|
||||
tpd2Actor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
transP3 = vtk.vtkTransform()
|
||||
transP3.Translate(13.27, 0.0, 33.30)
|
||||
transP3.Scale(5, 5, 5)
|
||||
transP3.RotateY(90)
|
||||
tpd3 = vtk.vtkTransformPolyDataFilter()
|
||||
tpd3.SetInputConnection(plane.GetOutputPort())
|
||||
tpd3.SetTransform(transP3)
|
||||
outTpd3 = vtk.vtkOutlineFilter()
|
||||
outTpd3.SetInputConnection(tpd3.GetOutputPort())
|
||||
mapTpd3 = vtk.vtkPolyDataMapper()
|
||||
mapTpd3.SetInputConnection(outTpd3.GetOutputPort())
|
||||
tpd3Actor = vtk.vtkActor()
|
||||
tpd3Actor.SetMapper(mapTpd3)
|
||||
tpd3Actor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
appendF = vtk.vtkAppendPolyData()
|
||||
appendF.AddInputConnection(tpd1.GetOutputPort())
|
||||
appendF.AddInputConnection(tpd2.GetOutputPort())
|
||||
appendF.AddInputConnection(tpd3.GetOutputPort())
|
||||
|
||||
# The vtkProbeFilter takes two inputs. One is a dataset to use as the
|
||||
# probe geometry (SetInput); the other is the data to probe
|
||||
# (SetSource). The output dataset structure (geometry and topology) of
|
||||
# the probe is the same as the structure of the input. The probing
|
||||
# process generates new data values resampled from the source.
|
||||
probe = vtk.vtkProbeFilter()
|
||||
probe.SetInputConnection(appendF.GetOutputPort())
|
||||
probe.SetSourceData(pl3d_output)
|
||||
|
||||
contour = vtk.vtkContourFilter()
|
||||
contour.SetInputConnection(probe.GetOutputPort())
|
||||
contour.GenerateValues(50, pl3d_output.GetScalarRange())
|
||||
contourMapper = vtk.vtkPolyDataMapper()
|
||||
contourMapper.SetInputConnection(contour.GetOutputPort())
|
||||
contourMapper.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
planeActor = vtk.vtkActor()
|
||||
planeActor.SetMapper(contourMapper)
|
||||
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.AddActor(outlineActor)
|
||||
ren.AddActor(planeActor)
|
||||
ren.AddActor(tpd1Actor)
|
||||
ren.AddActor(tpd2Actor)
|
||||
ren.AddActor(tpd3Actor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(400, 400)
|
||||
|
||||
ren.ResetCamera()
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.SetClippingRange(3.95297, 50)
|
||||
cam1.SetFocalPoint(8.88908, 0.595038, 29.3342)
|
||||
cam1.SetPosition(-12.3332, 31.7479, 41.2387)
|
||||
cam1.SetViewUp(0.060772, -0.319905, 0.945498)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
55
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/smoothFran.py
Executable file
55
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/smoothFran.py
Executable file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example shows how to use decimation to reduce a polygonal
|
||||
# mesh. We also use mesh smoothing and generate surface normals to
|
||||
# give a pleasing result.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# We start by reading some data that was originally captured from a
|
||||
# Cyberware laser digitizing system.
|
||||
fran = vtk.vtkPolyDataReader()
|
||||
fran.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk")
|
||||
|
||||
# We want to preserve topology (not let any cracks form). This may
|
||||
# limit the total reduction possible, which we have specified at 90%.
|
||||
deci = vtk.vtkDecimatePro()
|
||||
deci.SetInputConnection(fran.GetOutputPort())
|
||||
deci.SetTargetReduction(0.9)
|
||||
deci.PreserveTopologyOn()
|
||||
smoother = vtk.vtkSmoothPolyDataFilter()
|
||||
smoother.SetInputConnection(deci.GetOutputPort())
|
||||
smoother.SetNumberOfIterations(50)
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(smoother.GetOutputPort())
|
||||
normals.FlipNormalsOn()
|
||||
franMapper = vtk.vtkPolyDataMapper()
|
||||
franMapper.SetInputConnection(normals.GetOutputPort())
|
||||
franActor = vtk.vtkActor()
|
||||
franActor.SetMapper(franMapper)
|
||||
franActor.GetProperty().SetColor(1.0, 0.49, 0.25)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(franActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(250, 250)
|
||||
|
||||
cam1 = vtk.vtkCamera()
|
||||
cam1.SetClippingRange(0.0475572, 2.37786)
|
||||
cam1.SetFocalPoint(0.052665, -0.129454, -0.0573973)
|
||||
cam1.SetPosition(0.327637, -0.116299, -0.256418)
|
||||
cam1.SetViewUp(-0.0225386, 0.999137, 0.034901)
|
||||
ren.SetActiveCamera(cam1)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
82
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/spikeF.py
Executable file
82
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/spikeF.py
Executable file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the use of glyphing. We also use a mask filter
|
||||
# to select a subset of points to glyph.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read a data file. This originally was a Cyberware laser digitizer scan
|
||||
# of Fran J.'s face. Surface normals are generated based on local geometry
|
||||
# (i.e., the polygon normals surrounding eash point are averaged). We flip
|
||||
# the normals because we want them to point out from Fran's face.
|
||||
fran = vtk.vtkPolyDataReader()
|
||||
fran.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk")
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(fran.GetOutputPort())
|
||||
normals.FlipNormalsOn()
|
||||
franMapper = vtk.vtkPolyDataMapper()
|
||||
franMapper.SetInputConnection(normals.GetOutputPort())
|
||||
franActor = vtk.vtkActor()
|
||||
franActor.SetMapper(franMapper)
|
||||
franActor.GetProperty().SetColor(1.0, 0.49, 0.25)
|
||||
|
||||
# We subsample the dataset because we want to glyph just a subset of
|
||||
# the points. Otherwise the display is cluttered and cannot be easily
|
||||
# read. The RandonModeOn and SetOnRatio combine to random select one out
|
||||
# of every 10 points in the dataset.
|
||||
ptMask = vtk.vtkMaskPoints()
|
||||
ptMask.SetInputConnection(normals.GetOutputPort())
|
||||
ptMask.SetOnRatio(10)
|
||||
ptMask.RandomModeOn()
|
||||
|
||||
# In this case we are using a cone as a glyph. We transform the cone so
|
||||
# its base is at 0,0,0. This is the point where glyph rotation occurs.
|
||||
cone = vtk.vtkConeSource()
|
||||
cone.SetResolution(6)
|
||||
transform = vtk.vtkTransform()
|
||||
transform.Translate(0.5, 0.0, 0.0)
|
||||
transformF = vtk.vtkTransformPolyDataFilter()
|
||||
transformF.SetInputConnection(cone.GetOutputPort())
|
||||
transformF.SetTransform(transform)
|
||||
|
||||
# vtkGlyph3D takes two inputs: the input point set (SetInput) which can be
|
||||
# any vtkDataSet; and the glyph (SetSource) which must be a vtkPolyData.
|
||||
# We are interested in orienting the glyphs by the surface normals that
|
||||
# we previosuly generated.
|
||||
glyph = vtk.vtkGlyph3D()
|
||||
glyph.SetInputConnection(ptMask.GetOutputPort())
|
||||
glyph.SetSourceConnection(transformF.GetOutputPort())
|
||||
glyph.SetVectorModeToUseNormal()
|
||||
glyph.SetScaleModeToScaleByVector()
|
||||
glyph.SetScaleFactor(0.004)
|
||||
spikeMapper = vtk.vtkPolyDataMapper()
|
||||
spikeMapper.SetInputConnection(glyph.GetOutputPort())
|
||||
spikeActor = vtk.vtkActor()
|
||||
spikeActor.SetMapper(spikeMapper)
|
||||
spikeActor.GetProperty().SetColor(0.0, 0.79, 0.34)
|
||||
|
||||
# Create the RenderWindow, Renderer and both Actors
|
||||
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(franActor)
|
||||
ren.AddActor(spikeActor)
|
||||
|
||||
renWin.SetSize(500, 500)
|
||||
ren.SetBackground(0.1, 0.2, 0.4)
|
||||
|
||||
# Set a nice camera position.
|
||||
ren.ResetCamera()
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.Zoom(1.4)
|
||||
cam1.Azimuth(110)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
81
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/streamSurface.py
Executable file
81
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/streamSurface.py
Executable file
@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates the generation of a streamsurface.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Read the data and specify which scalars and vectors to read.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# We use a rake to generate a series of streamline starting points
|
||||
# scattered along a line. Each point will generate a streamline. These
|
||||
# streamlines are then fed to the vtkRuledSurfaceFilter which stitches
|
||||
# the lines together to form a surface.
|
||||
rake = vtk.vtkLineSource()
|
||||
rake.SetPoint1(15, -5, 32)
|
||||
rake.SetPoint2(15, 5, 32)
|
||||
rake.SetResolution(21)
|
||||
rakeMapper = vtk.vtkPolyDataMapper()
|
||||
rakeMapper.SetInputConnection(rake.GetOutputPort())
|
||||
rakeActor = vtk.vtkActor()
|
||||
rakeActor.SetMapper(rakeMapper)
|
||||
|
||||
integ = vtk.vtkRungeKutta4()
|
||||
sl = vtk.vtkStreamTracer()
|
||||
sl.SetInputData(pl3d_output)
|
||||
sl.SetSourceConnection(rake.GetOutputPort())
|
||||
sl.SetIntegrator(integ)
|
||||
sl.SetMaximumPropagation(100)
|
||||
sl.SetInitialIntegrationStep(0.1)
|
||||
sl.SetIntegrationDirectionToBackward()
|
||||
|
||||
# The ruled surface stiches together lines with triangle strips.
|
||||
# Note the SetOnRatio method. It turns on every other strip that
|
||||
# the filter generates (only when multiple lines are input).
|
||||
scalarSurface = vtk.vtkRuledSurfaceFilter()
|
||||
scalarSurface.SetInputConnection(sl.GetOutputPort())
|
||||
scalarSurface.SetOffset(0)
|
||||
scalarSurface.SetOnRatio(2)
|
||||
scalarSurface.PassLinesOn()
|
||||
scalarSurface.SetRuledModeToPointWalk()
|
||||
scalarSurface.SetDistanceFactor(30)
|
||||
mapper = vtk.vtkPolyDataMapper()
|
||||
mapper.SetInputConnection(scalarSurface.GetOutputPort())
|
||||
mapper.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
actor = vtk.vtkActor()
|
||||
actor.SetMapper(mapper)
|
||||
|
||||
# Put an outline around for context.
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# Now create the usual graphics stuff.
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.AddActor(rakeActor)
|
||||
ren.AddActor(actor)
|
||||
ren.AddActor(outlineActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
|
||||
renWin.SetSize(300, 300)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
92
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/warpComb.py
Executable file
92
ParaView-5.0.1/VTK/Examples/VisualizationAlgorithms/Python/warpComb.py
Executable file
@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This example demonstrates how to extract "computational planes" from
|
||||
# a structured dataset. Structured data has a natural, logical
|
||||
# coordinate system based on i-j-k indices. Specifying imin,imax,
|
||||
# jmin,jmax, kmin,kmax pairs can indicate a point, line, plane, or
|
||||
# volume of data.
|
||||
#
|
||||
# In this example, we extract three planes and warp them using scalar
|
||||
# values in the direction of the local normal at each point. This
|
||||
# gives a sort of "velocity profile" that indicates the nature of the
|
||||
# flow.
|
||||
|
||||
import vtk
|
||||
from vtk.util.misc import vtkGetDataRoot
|
||||
VTK_DATA_ROOT = vtkGetDataRoot()
|
||||
|
||||
# Here we read data from a annular combustor. A combustor burns fuel
|
||||
# and air in a gas turbine (e.g., a jet engine) and the hot gas
|
||||
# eventually makes its way to the turbine section.
|
||||
pl3d = vtk.vtkMultiBlockPLOT3DReader()
|
||||
pl3d.SetXYZFileName(VTK_DATA_ROOT + "/Data/combxyz.bin")
|
||||
pl3d.SetQFileName(VTK_DATA_ROOT + "/Data/combq.bin")
|
||||
pl3d.SetScalarFunctionNumber(100)
|
||||
pl3d.SetVectorFunctionNumber(202)
|
||||
pl3d.Update()
|
||||
pl3d_output = pl3d.GetOutput().GetBlock(0)
|
||||
|
||||
# Planes are specified using a imin,imax, jmin,jmax, kmin,kmax
|
||||
# coordinate specification. Min and max i,j,k values are clamped to 0
|
||||
# and maximum value.
|
||||
plane = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane.SetInputData(pl3d_output)
|
||||
plane.SetExtent(10, 10, 1, 100, 1, 100)
|
||||
plane2 = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane2.SetInputData(pl3d_output)
|
||||
plane2.SetExtent(30, 30, 1, 100, 1, 100)
|
||||
plane3 = vtk.vtkStructuredGridGeometryFilter()
|
||||
plane3.SetInputData(pl3d_output)
|
||||
plane3.SetExtent(45, 45, 1, 100, 1, 100)
|
||||
|
||||
# We use an append filter because that way we can do the warping,
|
||||
# etc. just using a single pipeline and actor.
|
||||
appendF = vtk.vtkAppendPolyData()
|
||||
appendF.AddInputConnection(plane.GetOutputPort())
|
||||
appendF.AddInputConnection(plane2.GetOutputPort())
|
||||
appendF.AddInputConnection(plane3.GetOutputPort())
|
||||
warp = vtk.vtkWarpScalar()
|
||||
warp.SetInputConnection(appendF.GetOutputPort())
|
||||
warp.UseNormalOn()
|
||||
warp.SetNormal(1.0, 0.0, 0.0)
|
||||
warp.SetScaleFactor(2.5)
|
||||
normals = vtk.vtkPolyDataNormals()
|
||||
normals.SetInputConnection(warp.GetOutputPort())
|
||||
normals.SetFeatureAngle(60)
|
||||
planeMapper = vtk.vtkPolyDataMapper()
|
||||
planeMapper.SetInputConnection(normals.GetOutputPort())
|
||||
planeMapper.SetScalarRange(pl3d_output.GetScalarRange())
|
||||
planeActor = vtk.vtkActor()
|
||||
planeActor.SetMapper(planeMapper)
|
||||
|
||||
# The outline provides context for the data and the planes.
|
||||
outline = vtk.vtkStructuredGridOutlineFilter()
|
||||
outline.SetInputData(pl3d_output)
|
||||
outlineMapper = vtk.vtkPolyDataMapper()
|
||||
outlineMapper.SetInputConnection(outline.GetOutputPort())
|
||||
outlineActor = vtk.vtkActor()
|
||||
outlineActor.SetMapper(outlineMapper)
|
||||
outlineActor.GetProperty().SetColor(0, 0, 0)
|
||||
|
||||
# Create the usual graphics stuff.
|
||||
ren = vtk.vtkRenderer()
|
||||
renWin = vtk.vtkRenderWindow()
|
||||
renWin.AddRenderer(ren)
|
||||
iren = vtk.vtkRenderWindowInteractor()
|
||||
iren.SetRenderWindow(renWin)
|
||||
|
||||
ren.AddActor(outlineActor)
|
||||
ren.AddActor(planeActor)
|
||||
ren.SetBackground(1, 1, 1)
|
||||
renWin.SetSize(500, 500)
|
||||
|
||||
# Create an initial view.
|
||||
cam1 = ren.GetActiveCamera()
|
||||
cam1.SetClippingRange(3.95297, 50)
|
||||
cam1.SetFocalPoint(8.88908, 0.595038, 29.3342)
|
||||
cam1.SetPosition(-12.3332, 31.7479, 41.2387)
|
||||
cam1.SetViewUp(0.060772, -0.319905, 0.945498)
|
||||
|
||||
iren.Initialize()
|
||||
renWin.Render()
|
||||
iren.Start()
|
||||
Reference in New Issue
Block a user