1#!/usr/bin/env python 2import vtk 3from vtk.test import Testing 4from vtk.util.misc import vtkGetDataRoot 5VTK_DATA_ROOT = vtkGetDataRoot() 6 7# Create the RenderWindow, Renderer and both Actors 8# 9ren1 = vtk.vtkRenderer() 10renWin = vtk.vtkRenderWindow() 11renWin.AddRenderer(ren1) 12iren = vtk.vtkRenderWindowInteractor() 13iren.SetRenderWindow(renWin) 14# create four parts: a top level assembly and three primitives 15# 16sphere = vtk.vtkSphereSource() 17sphereMapper = vtk.vtkPolyDataMapper() 18sphereMapper.SetInputConnection(sphere.GetOutputPort()) 19sphereActor = vtk.vtkActor() 20sphereActor.SetMapper(sphereMapper) 21sphereActor.SetOrigin(2,1,3) 22sphereActor.RotateY(6) 23sphereActor.SetPosition(2.25,0,0) 24sphereActor.GetProperty().SetColor(1,0,1) 25cube = vtk.vtkCubeSource() 26cubeMapper = vtk.vtkPolyDataMapper() 27cubeMapper.SetInputConnection(cube.GetOutputPort()) 28cubeActor = vtk.vtkActor() 29cubeActor.SetMapper(cubeMapper) 30cubeActor.SetPosition(0.0,.25,0) 31cubeActor.GetProperty().SetColor(0,0,1) 32cone = vtk.vtkConeSource() 33coneMapper = vtk.vtkPolyDataMapper() 34coneMapper.SetInputConnection(cone.GetOutputPort()) 35coneActor = vtk.vtkActor() 36coneActor.SetMapper(coneMapper) 37coneActor.SetPosition(0,0,.25) 38coneActor.GetProperty().SetColor(0,1,0) 39cylinder = vtk.vtkCylinderSource() 40#top part 41cylinderMapper = vtk.vtkPolyDataMapper() 42cylinderMapper.SetInputConnection(cylinder.GetOutputPort()) 43cylinderMapper.SetResolveCoincidentTopologyToPolygonOffset() 44cylinderActor = vtk.vtkActor() 45cylinderActor.SetMapper(cylinderMapper) 46cylinderActor.GetProperty().SetColor(1,0,0) 47assembly = vtk.vtkAssembly() 48assembly.AddPart(cylinderActor) 49assembly.AddPart(sphereActor) 50assembly.AddPart(cubeActor) 51assembly.AddPart(coneActor) 52assembly.SetOrigin(5,10,15) 53assembly.AddPosition(5,0,0) 54assembly.RotateX(15) 55# Add the actors to the renderer, set the background and size 56# 57ren1.AddActor(assembly) 58ren1.AddActor(coneActor) 59ren1.SetBackground(0.1,0.2,0.4) 60renWin.SetSize(200,200) 61# Get handles to some useful objects 62# 63camera = vtk.vtkCamera() 64camera.SetClippingRange(21.9464,30.0179) 65camera.SetFocalPoint(3.49221,2.28844,-0.970866) 66camera.SetPosition(3.49221,2.28844,24.5216) 67camera.SetViewAngle(30) 68camera.SetViewUp(0,1,0) 69ren1.SetActiveCamera(camera) 70renWin.Render() 71# prevent the tk window from showing up then start the event loop 72# --- end of script -- 73