vtkPolyData中GetPoint函数冲掉上一个数据的问题
vtkPolyData中GetPoint函数 是继承vtkPointSet类的函数,可以获取顶点值。
函数定义如下:
double *GetPoint(vtkIdType ptId) ;
void GetPoint(vtkIdType ptId, double x[3]);
代码调用实例:
double* pt = polyData->GetPoint(1);
double* pt2 = polyData->GetPoint(0);
double* pt3 = polyData2->GetPoint(0);
double ptt[3];
ptt[0] = pt[0] + 0.5;
ptt[1] = pt[1];
ptt[2] = pt[2];
这段代码有一个常见错误:
- pt和pt2的地址是相同的。所以取出来的值是一样的。
- 每一个polyData有一个用于存储的地址 double指针。
- 不同的polyData有不同的double指针,pt2和pt3指向不同的地址。
可以调用另一个函数,避免这种错误,代码如下:
double ptt1[3],ptt2[3],ptt3[3];
polyData->GetPoint(ptt1);
polyData->GetPoint(ptt2);
polyData2->GetPoint(ptt3);
好了,就是这个白痴的错误,虽然很白,但是经常被忽略。