我正试图从vtkDataArray类的所有元组中读取所有数据。但是,here可以看到vtkDataArray :: GetTuple返回指向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
}
}
答案 0 :(得分:2)
您需要dataArray->GetNumberOfComponents()
。如果您知道组件的数量,那么使用其他功能可能会更容易,例如,对于3个组件,您可以使用dataArray->GetTuple3()
。 VTK提供功能GetTuple1()
,GetTuple2()
,...,GetTuple9()
。