MultipleViewports
VTKEx/Python/Visualization/MultipleViewports
Description¶
This example demonstrates how to use multiple viewports to display several scenes in one render window.
- Contributed by: Bryan Conrad
Question
If you have a simple question about this example contact us at VTKExProject If your question is more complex and may require extended discussion, please use the VTK Discourse Forum
Code¶
MultipleViewports.py
import vtk
def main():
colors = vtk.vtkNamedColors()
'''One render window, multiple viewports'''
rw = vtk.vtkRenderWindow()
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(rw)
# Define viewport ranges
xmins = [0, .5, 0, .5]
xmaxs = [0.5, 1, 0.5, 1]
ymins = [0, 0, .5, .5]
ymaxs = [0.5, 0.5, 1, 1]
# Have some fun with colors
ren_bkg = ['AliceBlue', 'GhostWhite', 'WhiteSmoke', 'Seashell']
actor_color = ['Bisque', 'RosyBrown', 'Goldenrod', 'Chocolate']
for i in range(4):
ren = vtk.vtkRenderer()
rw.AddRenderer(ren)
ren.SetViewport(xmins[i], ymins[i], xmaxs[i], ymaxs[i])
# Create a sphere
sphereSource = vtk.vtkSphereSource()
sphereSource.SetCenter(0.0, 0.0, 0.0)
sphereSource.SetRadius(5)
# Create a mapper and actor
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(sphereSource.GetOutputPort())
actor = vtk.vtkActor()
actor.GetProperty().SetColor(colors.GetColor3d(actor_color[i]))
actor.SetMapper(mapper)
ren.AddActor(actor)
ren.SetBackground(colors.GetColor3d(ren_bkg[i]))
ren.ResetCamera()
rw.Render()
rw.SetWindowName('RW: Multiple ViewPorts')
iren.Start()
if __name__ == '__main__':
main()