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