VTK/Examples/IO/Cxx/FindAllArrayNames
From KitwarePublic
< VTK | Examples(Redirected from Get the names of all of the data arrays)
Get the names of all data arrays in a polydata file
This example shows how to find out the names of all of the data arrays stored in a vtkXMLPolyData(vtp) file.
Fix: Add CMakeLists.txt
// // FindAllNames - find all of the array names in an XML Polydata file // #include <vtkSmartPointer.h> #include <vtkPolyData.h> #include <vtkPointData.h> #include <vtkXMLPolyDataReader.h> #include <vtkPointData.h> #include <vtkCellData.h> #include <iostream> #include <vtkstd/string> #include <vtkstd/vector> #include <cstdlib> void FindAllArrays(const std::string &InputFilename); int main(int argc, char *argv[]) { if(argc != 2) { cerr << "Usage: " << argv[0] << " InputFilename" << endl;; return EXIT_FAILURE; } vtkstd::string inputFilename = argv[1]; FindAllArrays(inputFilename); return EXIT_SUCCESS; } void FindAllArrays(const std::string &InputFilename) { vtkSmartPointer<vtkXMLPolyDataReader> reader = vtkSmartPointer<vtkXMLPolyDataReader>::New(); reader->SetFileName(InputFilename.c_str()); reader->Update(); vtkPolyData* polydata = reader->GetOutput(); // First get the point data arrays { unsigned int numArrays = polydata->GetPointData()->GetNumberOfArrays(); std::cout << "Number of point data arrays: " << numArrays << "\n"; std::vector<std::string> arrayNames; for(unsigned int i = 0; i < numArrays; i++) { arrayNames.push_back(polydata->GetPointData()->GetArrayName(i)); std::cout << "Array " << i << ": " << arrayNames[i] << "\n"; } } // Next get the cell data arrays { unsigned int numArrays = polydata->GetCellData()->GetNumberOfArrays(); std::cout << "Number of cell data arrays: " << numArrays << "\n"; std::vector<std::string> arrayNames; for(unsigned int i = 0; i < numArrays; i++) { arrayNames.push_back(polydata->GetCellData()->GetArrayName(i)); std::cout << "Array " << i << ": " << arrayNames[i] << "\n"; } } }

