vtkPolyData中GetPoint函数冲掉上一个数据的问题

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);

好了,就是这个白痴的错误,虽然很白,但是经常被忽略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值