import vtk

# Create a vtkCamera, and set the camera parameters.
camera = vtk.vtkCamera()
camera.SetFocalPoint(0.75, 0.0, 0.0)
camera.SetPosition(0.5, 1.2, 5)
camera.SetViewUp(0.0, 1.0, 0.0)

# create a renderers
ren = vtk.vtkRenderer()
ren.SetActiveCamera(camera)

# create a rendering window
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetSize(800,300)

# create a renderwindowinteractor
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)


# create cylinder source for comparison
src = vtk.vtkCylinderSource()
src.SetCenter(0,0,0)
src.SetHeight(1)
src.SetRadius(0.5)
src.SetResolution(16)
src.Update()

# create superquadric source
src2 = vtk.vtkSuperquadricSource()
src2.SetCenter(1.5,0,0)
src2.SetScale(1,1,1)
src2.SetThetaResolution(16)
src2.SetPhiResolution(16)
src2.SetThetaRoundness(0.25)
src2.SetPhiRoundness(4.0)
src2.SetToroidal(0)
src2.Update()


# mappers
mapper = vtk.vtkPolyDataMapper()
mapper.SetInput(src.GetOutput())
mapper2 = vtk.vtkPolyDataMapper()
mapper2.SetInput(src2.GetOutput())


# actors
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor2 = vtk.vtkActor()
actor2.SetMapper(mapper2)

# assign actors to the renderers
ren.AddActor(actor)
ren.AddActor(actor2)

# enable user interface interactor
iren.Initialize()
renWin.Render()
iren.Start()
