Skip to content


# TransformPolyData

VTKEx/Python/Filtering/TransformPolyData

This example demonstrates how to apply a transform to a data set. It uses vtkTransformPolyDataFilter, but it can be replaced with vtkTransformFilter for different types of data sets, including vtkUnstructuredGrid and vtkStructuredGrid. vtkTransformFilter will work with vtkPolyData, too).

Other languages

See (Cxx), (Java)

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

TransformPolyData.py

    #!/usr/bin/env python

    import vtk

    def main():
        colors = vtk.vtkNamedColors()

        # Create the polydata geometry
        sphereSource = vtk.vtkSphereSource()
        sphereSource.Update()

        # Set up the actor to display the untransformed polydata
        originalMapper = vtk.vtkPolyDataMapper()
        originalMapper.SetInputConnection(sphereSource.GetOutputPort())

        originalActor = vtk.vtkActor()
        originalActor.SetMapper(originalMapper)
        originalActor.GetProperty().SetColor(colors.GetColor3d("blue"))

        # Set up the transform filter
        translation = vtk.vtkTransform()
        translation.Translate(1.0, 2.0, 3.0)

        transformFilter = vtk.vtkTransformPolyDataFilter()
        transformFilter.SetInputConnection(sphereSource.GetOutputPort())
        transformFilter.SetTransform(translation)
        transformFilter.Update()

        # Set up the actor to display the transformed polydata
        transformedMapper = vtk.vtkPolyDataMapper()
        transformedMapper.SetInputConnection(transformFilter.GetOutputPort())

        transformedActor = vtk.vtkActor()
        transformedActor.SetMapper(transformedMapper)
        transformedActor.GetProperty().SetColor(colors.GetColor3d("red"))

        # Set up the rest of the visualization pipeline
        renderer = vtk.vtkRenderer()
        renderer.AddActor(originalActor)
        renderer.AddActor(transformedActor)
        renderer.SetBackground(colors.GetColor3d("green")) # Set renderer's background color to green

        renderWindow = vtk.vtkRenderWindow()
        renderWindow.AddRenderer(renderer)
        renderWindowInteractor = vtk.vtkRenderWindowInteractor()
        renderWindowInteractor.SetRenderWindow(renderWindow)
        renderWindowInteractor.Start()

    if __name__ == '__main__':
        main()