18 vtkPolyDataReader *vtkMeshReader = vtkPolyDataReader::New();
19 vtkMeshReader->SetFileName(argv[1]);
20 vtkMeshReader->Update();
21 vtkPolyData *vtkMesh = vtkMeshReader->GetOutput();
22 vtkPoints *vtkPoints = vtkMesh->GetPoints();
23 vtkCellArray *vtkStrips = vtkMesh->GetStrips();
26 ASSERTL0(vtkPoints,
"ERROR: cannot get points from mesh.");
27 ASSERTL0(vtkStrips,
"ERROR: cannot get triangle strips from mesh.");
30 vtkCellArray *vtkPolys = vtkCellArray::New();
33 vtkStrips->InitTraversal();
34 for (
int i = 0; vtkStrips->GetNextCell(npts, pts); ++i)
36 for (
int j = 0; j < npts - 2; ++j)
38 vtkPolys->InsertNextCell(3, &pts[j]);
43 vtkPolyData *vtkNewMesh = vtkPolyData::New();
44 vtkNewMesh->SetPoints(vtkPoints);
45 vtkNewMesh->SetPolys(vtkPolys);
48 for (
int i = 0; i < vtkMesh->GetPointData()->GetNumberOfArrays(); ++i)
50 vtkNewMesh->GetPointData()->SetScalars(
51 vtkMesh->GetPointData()->GetArray(i));
55 vtkPolyDataWriter *vtkMeshWriter = vtkPolyDataWriter::New();
56 vtkMeshWriter->SetFileName(argv[2]);
57 #if VTK_MAJOR_VERSION <= 5
58 vtkMeshWriter->SetInput(vtkNewMesh);
60 vtkMeshWriter->SetInputData(vtkNewMesh);
62 vtkMeshWriter->Write();
#define ASSERTL0(condition, msg)