1 #include <vtkAutoInit.h>
2 VTK_MODULE_INIT(vtkRenderingOpenGL); 3 VTK_MODULE_INIT(vtkInteractionStyle); 4 VTK_MODULE_INIT(vtkRenderingFreeType); 5
6 #include <vtkSmartPointer.h>
7 #include <vtkPolyDataReader.h>
8 #include <vtkSmoothPolyDataFilter.h>
9 #include <vtkPolyDataMapper.h>
10 #include <vtkActor.h>
11 #include <vtkRenderer.h>
12 #include <vtkRenderWindow.h>
13 #include <vtkRenderWindowInteractor.h>
14 int main() 15 { 16 vtkSmartPointer<vtkPolyDataReader> reader =
17 vtkSmartPointer<vtkPolyDataReader>::New(); 18 reader->SetFileName("fran_cut.vtk"); 19 reader->Update(); 20
21 vtkSmartPointer<vtkSmoothPolyDataFilter> smoothFilter =
22 vtkSmartPointer<vtkSmoothPolyDataFilter>::New(); 23 smoothFilter->SetInputConnection(reader->GetOutputPort()); 24 smoothFilter->SetNumberOfIterations(100); 25 smoothFilter->Update(); 26 /
27 vtkSmartPointer<vtkPolyDataMapper> inputMapper =
28 vtkSmartPointer<vtkPolyDataMapper>::New(); 29 inputMapper->SetInputConnection(reader->GetOutputPort()); 30 vtkSmartPointer<vtkActor> inputActor =
31 vtkSmartPointer<vtkActor>::New(); 32 inputActor->SetMapper(inputMapper); 33
34 vtkSmartPointer<vtkPolyDataMapper> smoothedMapper =
35 vtkSmartPointer<vtkPolyDataMapper>::New(); 36 smoothedMapper->SetInputConnection(smoothFilter->GetOutputPort()); 37 vtkSmartPointer<vtkActor> smoothedActor =
38 vtkSmartPointer<vtkActor>::New(); 39 smoothedActor->SetMapper(smoothedMapper); 40 /
41 double leftViewport[4] = { 0.0, 0.0, 0.5, 1.0 }; 42 double rightViewport[4] = { 0.5, 0.0, 1.0, 1.0 }; 43
44 vtkSmartPointer<vtkRenderer> leftRenderer =
45 vtkSmartPointer<vtkRenderer>::New(); 46 leftRenderer->SetViewport(leftViewport); 47 leftRenderer->AddActor(inputActor); 48 leftRenderer->SetBackground(1, 0, 0); 49 leftRenderer->ResetCamera(); 50
51 vtkSmartPointer<vtkRenderer> rightRenderer =
52 vtkSmartPointer<vtkRenderer>::New(); 53 rightRenderer->SetViewport(rightViewport); 54 rightRenderer->AddActor(smoothedActor); 55 rightRenderer->SetBackground(0, 0, 0); 56 rightRenderer->ResetCamera(); 57 /
58 vtkSmartPointer<vtkRenderWindow> rw =
59 vtkSmartPointer<vtkRenderWindow>::New(); 60 rw->AddRenderer(leftRenderer); 61 rw->AddRenderer(rightRenderer); 62 rw->SetSize(640, 320); 63 rw->SetWindowName("PolyData Grid Smooth By LapLasian"); 64
65 vtkSmartPointer<vtkRenderWindowInteractor> rwi =
66 vtkSmartPointer<vtkRenderWindowInteractor>::New(); 67 rwi->SetRenderWindow(rw); 68 rwi->Initialize(); 69 rwi->Start(); 70 return 0; 71 }