以下是示例代码,其中包含两个piece的输出:

#include <vtkSmartPointer.h>
#include <vtkXMLUnstructuredGridWriter.h>
#include <vtkUnstructuredGrid.h>
#include <vtkPoints.h>
#include <vtkCellArray.h>
#include <vtkTriangle.h>
#include <vtkQuad.h>

int main(int argc, char* argv[])
{
  // Create the first unstructured grid with triangles
  vtkSmartPointer<vtkUnstructuredGrid> ug1 =
    vtkSmartPointer<vtkUnstructuredGrid>::New();

  // Create points
  vtkSmartPointer<vtkPoints> points =
    vtkSmartPointer<vtkPoints>::New();
  points->InsertNextPoint(0, 0, 0);
  points->InsertNextPoint(1, 0, 0);
  points->InsertNextPoint(0, 1, 0);
  points->InsertNextPoint(1, 1, 0);
  ug1->SetPoints(points);

  // Create cells
  vtkSmartPointer<vtkCellArray> cells =
    vtkSmartPointer<vtkCellArray>::New();
  vtkSmartPointer<vtkTriangle> triangle1 =
    vtkSmartPointer<vtkTriangle>::New();
  triangle1->GetPointIds()->SetId(0, 0);
  triangle1->GetPointIds()->SetId(1, 1);
  triangle1->GetPointIds()->SetId(2, 2);
  vtkSmartPointer<vtkTriangle> triangle2 =
    vtkSmartPointer<vtkTriangle>::New();
  triangle2->GetPointIds()->SetId(0, 1);
  triangle2->GetPointIds()->SetId(1, 3);
  triangle2->GetPointIds()->SetId(2, 2);
  cells->InsertNextCell(triangle1);
  cells->InsertNextCell(triangle2);
  ug1->SetCells(VTK_TRIANGLE, cells);

  // Create the second unstructured grid with quads
  vtkSmartPointer<vtkUnstructuredGrid> ug2 =
    vtkSmartPointer<vtkUnstructuredGrid>::New();

  // Create points
  vtkSmartPointer<vtkPoints> points2 =
    vtkSmartPointer<vtkPoints>::New();
  points2->InsertNextPoint(1, 0, 0);
  points2->InsertNextPoint(2, 0, 0);
  points2->InsertNextPoint(2, 1, 0);
  points2->InsertNextPoint(1, 1, 0);
  ug2->SetPoints(points2);

  // Create cells
  vtkSmartPointer<vtkCellArray> cells2 =
    vtkSmartPointer<vtkCellArray>::New();
  vtkSmartPointer<vtkQuad> quad =
    vtkSmartPointer<vtkQuad>::New();
  quad->GetPointIds()->SetId(0, 0);
  quad->GetPointIds()->SetId(1, 1);
  quad->GetPointIds()->SetId(2, 2);
  quad->GetPointIds()->SetId(3, 3);
  cells2->InsertNextCell(quad);
  ug2->SetCells(VTK_QUAD, cells2);

  // Write both unstructured grids to a single file
  vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
    vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
  writer->SetFileName("output.vtu");
  writer->SetInputData(0, ug1);
  writer->SetInputData(1, ug2);
  writer->Write();

  return 0;
}

该程序创建了两个不同的vtkUnstructuredGrid,分别包含三角形和四边形。然后,它将这两个vtkUnstructuredGrid作为两个不同的piece传递给vtkXMLUnstructuredGridWriter,并将它们写入一个名为“output.vtu”的文件中

C++使用vtkXMLUnstructuredGridWriter输出一个vtu文件其含有两个piece第一个piece含三角形的vtkUnstructuredGrid第二个piece是四边形的vtkUnstructuredGrid

原文地址: https://www.cveoy.top/t/topic/frAp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录