diff --git a/vespa/PolygonMeshProcessing/vtkCGALMeshDeformation.cxx b/vespa/PolygonMeshProcessing/vtkCGALMeshDeformation.cxx index 8af35e75be3c3fbd7de935e186de41084e4f7872..893ae9682aebaa1b0f1ab3f30f8f0ad79ee2eda1 100644 --- a/vespa/PolygonMeshProcessing/vtkCGALMeshDeformation.cxx +++ b/vespa/PolygonMeshProcessing/vtkCGALMeshDeformation.cxx @@ -92,6 +92,12 @@ int vtkCGALMeshDeformation::RequestData( extractSelection->SetInputData(1, roiSel); extractSelection->Update(); roi->ShallowCopy(extractSelection->GetOutputDataObject(0)); + if (!roi || roi->GetNumberOfPoints() == 0) + { + vtkErrorMacro("Not a valid selection, need points."); + output->ShallowCopy(input); + return 0; + } } else { diff --git a/vespa/PolygonMeshProcessing/vtkCGALRegionFairing.cxx b/vespa/PolygonMeshProcessing/vtkCGALRegionFairing.cxx index 4254cb1a682c83de3bf548fc792ddd4300d909c6..7ecc3f10be1478c46e0a585e143b7bce7c46610d 100644 --- a/vespa/PolygonMeshProcessing/vtkCGALRegionFairing.cxx +++ b/vespa/PolygonMeshProcessing/vtkCGALRegionFairing.cxx @@ -72,6 +72,12 @@ int vtkCGALRegionFairing::RequestData( extractSelection->SetInputData(1, inputSel); extractSelection->Update(); vtkPointSet* dataSel = vtkPointSet::SafeDownCast(extractSelection->GetOutputDataObject(0)); + if (!dataSel || dataSel->GetNumberOfPoints() == 0) + { + vtkErrorMacro("Not a valid selection, need points."); + output->ShallowCopy(input); + return 0; + } // Create the triangle mesh for CGAL // --------------------------------