ReadPolyData
Description¶
Given a filename, uses the appropriate vtkPolyData reader to read any vtkPolyData file.
To use the snippet, click the Copy to clipboard at the upper right of the code blocks.
Declaration Section¶
#include <vtkBYUReader.h> #include <vtkOBJReader.h> #include <vtkPLYReader.h> #include <vtkPolyDataReader.h> #include <vtkSTLReader.h> #include <vtkXMLPolyDataReader.h> #include <vtkSphereSource.h> namespace { vtkSmartPointer<vtkPolyData> ReadPolyData(const char *fileName); }
Implementation Section¶
namespace { vtkSmartPointer<vtkPolyData> ReadPolyData(const char* fileName) { vtkSmartPointer<vtkPolyData> polyData; std::string extension = vtksys::SystemTools::GetFilenameExtension(std::string(fileName)); if (extension == ".ply") { auto reader = vtkSmartPointer<vtkPLYReader>::New(); reader->SetFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else if (extension == ".vtp") { auto reader = vtkSmartPointer<vtkXMLPolyDataReader>::New(); reader->SetFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else if (extension == ".obj") { auto reader = vtkSmartPointer<vtkOBJReader>::New(); reader->SetFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else if (extension == ".stl") { auto reader = vtkSmartPointer<vtkSTLReader>::New(); reader->SetFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else if (extension == ".vtk") { auto reader = vtkSmartPointer<vtkPolyDataReader>::New(); reader->SetFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else if (extension == ".g") { auto reader = vtkSmartPointer<vtkBYUReader>::New(); reader->SetGeometryFileName(fileName); reader->Update(); polyData = reader->GetOutput(); } else { auto source = vtkSmartPointer<vtkSphereSource>::New(); source->SetPhiResolution(25); source->SetThetaResolution(25); source->Update(); polyData = source->GetOutput(); } return polyData; } } // namespace