구조화되지 않은 표 형태를 사용하고 있기 때문에 레거시 .vtk 파일을 이진 파일, 바람직하게 .vtu 파일로 변환하고 싶습니다. 은 이렇게하려면 내가 http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/ConvertFilevtk 레거시 파일을 vtu 형식으로 변환하는 방법
#include <string>
#include <vtkSmartPointer.h>
#include <vtkGenericDataObjectReader.h>
#include <vtkVersion.h>
#include <vtkXMLUnstructuredGridWriter.h>
#include <vtkUnstructuredGrid.h>
int main(int argc, char *argv[])
{
if(argc < 3)
{
std::cerr << "Required arguments: input.vtk output.vtu" << std::endl;
return EXIT_FAILURE;
}
std::string inputFileName = argv[1];
std::string outputFileName = argv[2];
vtkSmartPointer<vtkGenericDataObjectReader> reader = vtkSmartPointer<vtkGenericDataObjectReader>::New();
reader->SetFileName(inputFileName.c_str());
reader->Update();
vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
writer->SetFileName(outputFileName.c_str());
writer->SetInputConnection(reader->GetOutputPort());
writer->Update();
return EXIT_SUCCESS;
}
에서 ConvertFile - 예를 적응하지만 내 기존 파일을 변환하려면이 옵션을 사용할 때, 나는 첫 번째 집합 후 모든 셀의 데이터를 잃게됩니다. 레거시 파일의 최소 예제 인 Scal_1은 .vtu 파일에 있지만 Scal_2는 아닙니다.
# vtk DataFile Version 3.1
Lattice Boltzmann data
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 9 INT
0 0 0 1 0 0 2 0 0
0 1 0 1 1 0 2 1 0
0 2 0 1 2 0 2 2 0
CELLS 4 20
4 0 1 3 4
4 1 2 4 5
4 3 4 6 7
4 4 5 7 8
CELL_TYPES 4
8 8 8 8
CELL_DATA 4
SCALARS Scal_1 DOUBLE
LOOKUP_TABLE default
1 2 1 0
SCALARS Scal_2 DOUBLE
LOOKUP_TABLE default
1 3 2 1
저는 아직 vtk를 처음 사용하고 있습니다. 다른 리더 또는 작가를 사용해야합니까? 아니면 완전히 잘못된 것입니까?