我对VTK还是个新手。这是我的代码的一部分:
vtkDataSetReader *rdr = vtkDataSetReader::New();
rdr->SetFileName("proj7b.vtk");
rdr->SetScalarsName("hardyglobal");
rdr->Update();
int dims[3];
vtkRectilinearGrid *rgrid = (vtkRectilinearGrid *) rdr->GetOutput();
rgrid->GetDimensions(dims);
vtkDataArray *dataArray;
dataArray = vtkDoubleArray::New();
dataArray = rgrid->GetPointData()->GetScalars()->GetVoidPointer(0);
for(i=0;i<10;i++)
{
cout<<"here----------"<<endl;
cout<<" "<<dataArray[i]<<" ";
}
我想把数据读入我的vtkDataArray,但是这段代码无法编译:
proj7b.cxx:525:15: error:
assigning to 'vtkDataArray *' from incompatible type 'void *'
dataArray = rgrid->GetPointData()->GetScalars()->GetVoidPointer(0);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
生成1个错误。有人知道如何将数据读入vtkDataArray吗?
2条答案
按热度按时间v1uwarro1#
Vtk为它提供了方法,您不需要使用“低级”方法:
rgrid-〉获取点数据()-〉获取数组(0)
或rgrid-〉获取点数据()-〉获取数组(“数组名”)
对于字段数据和单元格数据(http://www.vtk.org/doc/release/6.2/html/classvtkFieldData.html),其工作方式相同
您得到的是一个vtkArray,而不是一个简单的c++数组,因此您必须这样读它:
在wiki http://www.vtk.org/Wiki/VTK/Examples/Cxx中有很多例子
uhry853o2#
请参阅此页:* 一个月一次 *