# This example demonstrates the use of streamlines generated from seeds, # combined with a tube filter to create several streamtubes. import vtk import ovtk from vtk.util.colors import * # 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(ovtk.findFile("/vtk/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
# 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 import ovtk # 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(ovtk.findFile("vtk/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.SetGeometry(warp.GetOutput()) merge.SetScalars(reader.GetOutput()) mapper = vtk.vtkDataSetMapper() mapper.SetInputConnection(merge.GetOutputPort()) mapper.SetScalarRange(0, 255) mapper.ImmediateModeRenderingOff() actor = vtk.vtkActor() actor.SetMapper(mapper)
# 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 import ovtk # 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.vtkPLOT3DReader() pl3d.SetXYZFileName(ovtk.findFile("vtk/data/combxyz.bin")) pl3d.SetQFileName(ovtk.findFile("vtk/data/combq.bin")) pl3d.SetScalarFunctionNumber(100) pl3d.SetVectorFunctionNumber(202) pl3d.Update() # 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.SetInputConnection(pl3d.GetOutputPort()) plane.SetExtent(10, 10, 1, 100, 1, 100) plane2 = vtk.vtkStructuredGridGeometryFilter() plane2.SetInputConnection(pl3d.GetOutputPort()) plane2.SetExtent(30, 30, 1, 100, 1, 100) plane3 = vtk.vtkStructuredGridGeometryFilter()
# 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 import ovtk from vtk.util.colors import peacock, tomato # First start by reading a cow model. We also generate surface normals for # prettier rendering. cow = vtk.vtkBYUReader() cow.SetGeometryFileName(ovtk.findFile("/vtk/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)