[来自三个XYZ向 量的vtkStructuredGrid的VTK C ++设置点

问题描述 投票:0回答:1

VTK示例使用vtkPoints设置结构化网格的坐标。通常它作为points->InsertNextPoint(i, j, k); structuredGrid->SetPoints(points);但是我的XYZ坐标存储在三个不同的矢量x, y, z中,我不想复制它们,因为这会占用大量内存,如何直接从XYZ矢量设置结构化网格的坐标而不进行复制?

最好的问候,kerim

c++ arrays vtk
1个回答
0
投票

VTK还支持数组结构。

  vtkSOADataArrayTemplate<double>* pointArray = vtkSOADataArrayTemplate<double>::New();
  pointArray->SetNumberOfComponents(3);
  pointArray->SetNumberOfTuples(nbOfPoints);
  pointArray->SetArray(0, XArray, nbOfPoints, false, true);
  pointArray->SetArray(1, YArray, nbOfPoints, false, true);
  pointArray->SetArray(2, ZArray, nbOfPoints, false, true);

  vtkNew<vtkPoints> points;
  points->SetData(pointArray);
  pointArray->Delete();
  VTKGrid->SetPoints(points.GetPointer());
© www.soinside.com 2019 - 2024. All rights reserved.