VTK问题求解答:Reading file version: 4.2 with older reader version 4

来源:互联网 发布:58网络电视直播 编辑:程序博客网 时间:2024/06/11 03:25
#include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkPolyData.h>#include <vtkSphereSource.h>#include <vtkDecimatePro.h>#include <vtkQuadricDecimation.h>#include <vtkQuadricClustering.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkProperty.h>#include <vtkRenderWindow.h>#include <vtkRenderWindowInteractor.h>#include <vtkRenderer.h>#include <vtkPolydataReader.h>#include <vtkCamera.h>//测试文件:../data/fran_cut.vtkint main(int argc, char * argv[]){/*if (argc < 2){std::cout << argv[0] << " *.vtk" << std::endl;return EXIT_FAILURE;}*/vtkSmartPointer<vtkPolyDataReader> reader =vtkSmartPointer<vtkPolyDataReader>::New();reader->SetFileName("G:/First_year_graduate/VTK/VTKexamle/VTKtest/x64/Release/fran_cut.vtk");reader->Update();vtkSmartPointer<vtkPolyData> original = reader->GetOutput();std::cout << "抽取前:" << std::endl << "------------" << std::endl;std::cout << "模型点数为: " << original->GetNumberOfPoints() << std::endl;std::cout << "模型面数为: " << original->GetNumberOfPolys() << std::endl;vtkSmartPointer<vtkDecimatePro> decimate =vtkSmartPointer<vtkDecimatePro>::New();decimate->SetInputData(original);decimate->SetTargetReduction(.80);decimate->Update();vtkSmartPointer<vtkPolyData> decimated = decimate->GetOutput();std::cout << "抽取后" << std::endl << "------------" << std::endl;std::cout << "模型点数为:" << decimated->GetNumberOfPoints() << std::endl;std::cout << "模型面数为:" << decimated->GetNumberOfPolys() << std::endl;vtkSmartPointer<vtkPolyDataMapper> origianlMapper =vtkSmartPointer<vtkPolyDataMapper>::New();origianlMapper->SetInputData(original);vtkSmartPointer<vtkActor> origianlActor =vtkSmartPointer<vtkActor>::New();origianlActor->SetMapper(origianlMapper);vtkSmartPointer<vtkPolyDataMapper> decimatedMapper =vtkSmartPointer<vtkPolyDataMapper>::New();decimatedMapper->SetInputData(decimated);vtkSmartPointer<vtkActor> decimatedActor =vtkSmartPointer<vtkActor>::New();decimatedActor->SetMapper(decimatedMapper);double leftViewport[4] = { 0.0, 0.0, 0.5, 1.0 };double rightViewport[4] = { 0.5, 0.0, 1.0, 1.0 };vtkSmartPointer<vtkRenderer> leftRenderer =vtkSmartPointer<vtkRenderer>::New();leftRenderer->SetViewport(leftViewport);leftRenderer->AddActor(origianlActor);leftRenderer->SetBackground(1.0, 1.0, 1.0);vtkSmartPointer<vtkRenderer> rightRenderer =vtkSmartPointer<vtkRenderer>::New();rightRenderer->SetViewport(rightViewport);rightRenderer->AddActor(decimatedActor);rightRenderer->SetBackground(1.0, 1.0, 1.0);leftRenderer->GetActiveCamera()->SetPosition(0, -1, 0);leftRenderer->GetActiveCamera()->SetFocalPoint(0, 0, 0);leftRenderer->GetActiveCamera()->SetViewUp(0, 0, 1);leftRenderer->GetActiveCamera()->Azimuth(30);leftRenderer->GetActiveCamera()->Elevation(30);leftRenderer->ResetCamera();rightRenderer->SetActiveCamera(leftRenderer->GetActiveCamera());vtkSmartPointer<vtkRenderWindow> renderWindow =vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(leftRenderer);renderWindow->AddRenderer(rightRenderer);renderWindow->SetSize(640, 320);renderWindow->Render();renderWindow->SetWindowName("PolyDataDecimation");vtkSmartPointer<vtkRenderWindowInteractor> interactor =vtkSmartPointer<vtkRenderWindowInteractor>::New();interactor->SetRenderWindow(renderWindow);renderWindow->Render();interactor->Start();return EXIT_SUCCESS;}


VS2013+VTK7.1.1(64位)+window7电脑。


可能系统版本 或者vs版本与VTK版本不兼容的问题,没有找到答案。也有可能是我编译的vtk是64位的库文件,存在兼容性问题?

我直接在cmd中通过exe传入文件,也出现这种错误。


希望有人能解答这个问题。

阅读全文
0 0
原创粉丝点击