VTK/Examples/Cxx/Filtering/TransformPolyData
From KitwarePublic
< VTK | Examples | Cxx(Redirected from VTK/Examples/Cxx/Filters/TransformPolyData)
This example demonstrates how to apply a transform to a data set. vtkTransformPolyDataFilter can be replaced with vtkTransformFilter for different types of data sets, including UnstructuredGrid and StructuredGrid. (vtkTransformFilter will work with PolyData, too).
TransformPolyData.cxx
#include <vtkSmartPointer.h> #include <vtkTransformPolyDataFilter.h> #include <vtkSphereSource.h> #include <vtkPolyData.h> #include <vtkTransform.h> #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> #include <vtkProperty.h> int main(int, char *[]) { vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New(); sphereSource->Update(); vtkSmartPointer<vtkTransform> translation = vtkSmartPointer<vtkTransform>::New(); translation->Translate(1.0, 2.0, 3.0); vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter = vtkSmartPointer<vtkTransformPolyDataFilter>::New(); transformFilter->SetInputConnection(sphereSource->GetOutputPort()); transformFilter->SetTransform(translation); transformFilter->Update(); // Create a mapper and actor vtkSmartPointer<vtkPolyDataMapper> originalMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); originalMapper->SetInputConnection(sphereSource->GetOutputPort()); vtkSmartPointer<vtkActor> originalActor = vtkSmartPointer<vtkActor>::New(); originalActor->SetMapper(originalMapper); originalActor->GetProperty()->SetColor(1,0,0); // Create a mapper and actor vtkSmartPointer<vtkPolyDataMapper> transformedMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); transformedMapper->SetInputConnection(transformFilter->GetOutputPort()); vtkSmartPointer<vtkActor> transformedActor = vtkSmartPointer<vtkActor>::New(); transformedActor->SetMapper(transformedMapper); transformedActor->GetProperty()->SetColor(0,1,0); // Create a renderer, render window, and interactor vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); // Add the actor to the scene renderer->AddActor(originalActor); renderer->AddActor(transformedActor); renderer->SetBackground(.3, .6, .3); // Background color green // Render and interact renderWindow->Render(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) PROJECT(TransformPolyData) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) if (APPLE) add_executable(TransformPolyData MACOSX_BUNDLE TransformPolyData.cxx) else() add_executable(TransformPolyData TransformPolyData.cxx) endif() if(VTK_LIBRARIES) target_link_libraries(TransformPolyData ${VTK_LIBRARIES}) else() target_link_libraries(TransformPolyData vtkHybrid ) endif()
