如何从 vtkDataArray 获取 VTK 的元组大小

How to get VTK's tuple size from vtkDataArray

我正在尝试从 vtkDataArray class 的所有元组中读取所有数据。但是vtkDataArray::GetTuple可以看出herereturns一个指向double数组的指针。我想知道如何获得该数组的大小。好像我错过了一个明显的解决方案。

代码片段:

void doSomething(vtkSmartPointer<vtkDataArray> dataArray)
{
  vtkIdType numTuples = dataArray->GetNumberOfTuples();
  for (vtkIdType tupleIdx = 0; tupleIdx < numTuples; ++tupleIdx)
    {
        double* tuple = dataArray->GetTuple(tupleIdx);
        for (int j = 0; j < ¿¿¿???; ++j}
           double var = tuple[j];
           //Do something with var
           //Carefull don't go out of bounds
    }
}

您需要 dataArray->GetNumberOfComponents()。如果您知道组件的数量,那么使用其他函数可能会更容易,例如,对于 3 个组件,您可以使用 dataArray->GetTuple3()。 VTK 提供函数 GetTuple1(), GetTuple2(), ... ,GetTuple9().