diff --git a/Filters/FlowPaths/vtkVectorFieldTopology.cxx b/Filters/FlowPaths/vtkVectorFieldTopology.cxx index 79a89604e3d2fc3de87924a552d7ad591b68715d..3796f6ef20201b3a073e26439306fad9bc130abf 100644 --- a/Filters/FlowPaths/vtkVectorFieldTopology.cxx +++ b/Filters/FlowPaths/vtkVectorFieldTopology.cxx @@ -2139,15 +2139,16 @@ int vtkVectorFieldTopology::RequestData(vtkInformation* vtkNotUsed(request), { bool appendFlag = true; - for (int i = 0; i < criticalPoints->GetNumberOfPoints(); i++) + for (int i = 0; i < pointCount; i++) { + int pointId1 = pointIdVec[i]; double* p0 = criticalPointsTemporary->GetPoints()->GetPoint(pointId); double type0 = criticalPointsTemporary->GetPointData()->GetArray("type")->GetTuple1(pointId); - double* pi = criticalPoints->GetPoints()->GetPoint(i); - double typei = criticalPoints->GetPointData()->GetArray("type")->GetTuple1(i); + double* p1 = criticalPoints->GetPoints()->GetPoint(pointId1); + double type1 = criticalPoints->GetPointData()->GetArray("type")->GetTuple1(pointId1); - if (type0 == typei && vtkMath::Distance2BetweenPoints(p0, pi) < epsilon) + if (type0 == type1 && vtkMath::Distance2BetweenPoints(p0, p1) < epsilon) { appendFlag = false; break;