使用GetNextCell或者GetCell输出vtkCellArray的坐标点
生活随笔
收集整理的這篇文章主要介紹了
使用GetNextCell或者GetCell输出vtkCellArray的坐标点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
vtkSmartPointer<xxx> Point_Array;
vtkCellArray * Cell_Array = Point_Array->GetOutput()->GetPolys();
已知Cell_Array是包含多邊形頂點信息的數(shù)組。
GetNextCell(vtkIdType& npts, vtkIdType* &pts)
網(wǎng)上常用的是這個,用法是:
vtkIdType npts, *pt_id; //npts表示一個cell中頂點數(shù)目,pt_id是cell頂點的id,是個數(shù)組
while(Cell_Array->GetNextCell(npts, pt_id))
{
//每遍歷一次,npts,pt_id都會不斷更新到下一個多邊形
}
GetNextCell使用簡單,但是弊端是只能單線程操作,如果我們想并行多線程計算每個多邊形呢?能夠通過多邊形索引就能找到多邊形的參數(shù)就好了,那么GetCell就派上用場了。
GetCell(vtkIdType loc, vtkIdType &npts, vtkIdType* &pts)
先計算Point_Array中有多少個多邊形
vtkIdType numCells = Cell_Array ->GetNumberOfCells();
vtkIdType cellLocation = 0; // the index into the cell array
vtkIdType npts1, *pt_id1;
for(int i =0; i < numCells; i++) {Cell_Array ->GetCell(cellLocation, npts1, pt_id1);cellLocation = (i + 1) * (1 + npts1);......
}
重點就是cellLocation的計算方式,一開始我只是簡單的cellLocation = i,結(jié)果就出錯了。
總結(jié)
以上是生活随笔為你收集整理的使用GetNextCell或者GetCell输出vtkCellArray的坐标点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用OpenGL渲染并用OpenCV输出
- 下一篇: 几何空间中坐标系转换