2016-03-09 6 views
1

Мне нужно извлечь все данные ячеек из .vtu (неструктурированной XML-сетки) для дальнейших манипуляций в C++-программе. Я совершенно новый для ВТК ...VTK: Извлечение данных соты из неструктурированных сетей vtu в C++

 //read all the data from the file 
     vtkSmartPointer<vtkXMLUnstructuredGridReader> reader = 
     vtkSmartPointer<vtkXMLUnstructuredGridReader>::New(); 
     reader->SetFileName(filename.c_str()); 
     reader->Update(); 

     unsigned int cellNumber = reader->GetOutput()->GetNumberOfCells(); 
     cout << "There are " << cellNumber << " input cells." << endl; 

Это правильно - номер ячейки отображается правильно. Как получить доступ теперь к именам различных свойств CellArrays, хранящихся в файле .vtu, а затем к их фактическим числовым значениям? Любая помощь приветствуется! Приветствие, Доманов

ответ

1
//read all the data from the file 
    vtkSmartPointer<vtkXMLUnstructuredGridReader> reader = 
    vtkSmartPointer<vtkXMLUnstructuredGridReader>::New(); 
    reader->SetFileName(filename.c_str()); 
    reader->Update(); 

    unsigned int cellNumber = reader->GetOutput()->GetNumberOfCells(); 
    cout << "There are " << cellNumber << " input cells." << endl; 

Для доступа к данным ячеек неструктурированной сетки, вы можете сделать следующим образом:

vtkUnstructuredGrid* ugrid = reader->GetOutput(); 
vtkCellData *cellData = ugrid->GetCellData(); 
for (int i = 0; i < cellData->GetNumberOfArrays(); i++) 
{ 
    vtkDataArray* data = cellData->GetArray(j); 
    cout << "name " << data->GetName() << endl; 
    for (int j = 0; j < data->GetNumberOfTuples(); j++) 
    { 
     double value = data->GetTuple1(j); 
     cout << " value " << j << "th is " << value << endl; 
    } 
} 
+0

Minor опечатка: перебрать J во 2-е петли. – bejota

 Смежные вопросы

  • Нет связанных вопросов^_^