通过vtkFloatArray迭代

时间:2015-07-26 15:20:52

标签: c++ vtk

我注意到我正在调用的函数的返回类型是vtkFloatArray。我想检查这个数组的组件,但是,不知道如何遍历它的组件。

因为当我尝试遍历元素时,我收到以下错误:

TypeError: 'vtkobject' object is not iterable

为什么我会收到这样的错误?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您的数组不是元组:

float value;
for(int i = 0; i < array->GetNumberOfTuples(); i++)
{
    value = array->GetValue(i);
    std::cout << value << std::endl;
}

如果你的数组是3的元组:

double * values;
for(int i = 0; i < array->GetNumberOfTuples(); i++)
{
    values = array->GetTuple3(i);
    std::cout << values[0] << " " << values[1] << " " << values[2] << std::endl;
}

答案 1 :(得分:0)

您可以检查组件的数量和数组的元组数,然后,例如,重复调用getTuple http://www.vtk.org/doc/nightly/html/classvtkDataArray.html#aca11c70280dad75aabbe5747c55c6919

您还可以查看vtkDataArrayIteratorMacro http://www.vtk.org/doc/nightly/html/classvtkDataArrayIteratorMacro.html#details