vtkPolyData에서 GetPoint 함수가 이전 데이터의 문제를 해결합니다.

1817 단어 VTK

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마다 저장할 주소 더블 포인터가 있습니다. -서로 다른polyData는 서로 다른 더블 포인터를 가지고 pt2와 pt3은 서로 다른 주소를 가리킨다.다음 코드를 사용하여 다른 함수를 호출하여 이러한 오류를 방지할 수 있습니다.
  double ptt1[3],ptt2[3],ptt3[3];
  polyData->GetPoint(ptt1);
  polyData->GetPoint(ptt2);
  polyData2->GetPoint(ptt3);

자, 바로 이 바보의 잘못이다. 하얗지만 늘 소홀히 여겨진다.

좋은 웹페이지 즐겨찾기