/********************************************************************** 文件名: 6.3_PolyDataLapLasianSmooth.cpp Copyright (c) 张晓东, 罗火灵. All rights reserved. 更多信息请访问: http://www.vtkchina.org (VTK中国) http://blog.csdn.net/www_doling_net (东灵工作室) **********************************************************************/ #include #include #include #include #include #include #include #include #include #include #include //测试文件:../data/fran_cut.vtk int main(int argc, char *argv[]) { if(argc < 2) { std::cout< reader = vtkSmartPointer::New(); reader->SetFileName(argv[1]); reader->Update(); vtkSmartPointer smoothFilter = vtkSmartPointer::New(); smoothFilter->SetInputConnection(reader->GetOutputPort()); smoothFilter->SetNumberOfIterations(200); smoothFilter->Update(); vtkSmartPointer inputMapper = vtkSmartPointer::New(); inputMapper->SetInputConnection(reader->GetOutputPort()); vtkSmartPointer inputActor = vtkSmartPointer::New(); inputActor->SetMapper(inputMapper); vtkSmartPointer smoothedMapper = vtkSmartPointer::New(); smoothedMapper->SetInputConnection(smoothFilter->GetOutputPort()); vtkSmartPointer smoothedActor = vtkSmartPointer::New(); smoothedActor->SetMapper(smoothedMapper); double leftViewport[4] = {0.0, 0.0, 0.5, 1.0}; double rightViewport[4] = {0.5, 0.0, 1.0, 1.0}; vtkSmartPointer leftRenderer = vtkSmartPointer::New(); leftRenderer->SetViewport(leftViewport); leftRenderer->AddActor(inputActor); leftRenderer->SetBackground(0.8, 0.8, 0.8); leftRenderer->ResetCamera(); vtkSmartPointer rightRenderer = vtkSmartPointer::New(); rightRenderer->SetViewport(rightViewport); rightRenderer->AddActor(smoothedActor); rightRenderer->SetBackground(0.8, 0.8, 0.8); rightRenderer->SetActiveCamera(leftRenderer->GetActiveCamera()); rightRenderer->ResetCamera(); vtkSmartPointer renderWindow = vtkSmartPointer::New(); renderWindow->AddRenderer(leftRenderer); renderWindow->AddRenderer(rightRenderer); renderWindow->SetSize(640, 320); renderWindow->Render(); renderWindow->SetWindowName("PolyDataLapLasianSmooth"); vtkSmartPointer interactor = vtkSmartPointer::New(); interactor->SetRenderWindow(renderWindow); renderWindow->Render(); interactor->Start(); return EXIT_SUCCESS; }