Ok I will do it. But wanted to inform that the size is not a problem. It crashes for a small mesh also.
I also wanted to confirm if the input should be a mesh or pointset. As per the document, it should take pointset but I checked and the method works for a polydata sphere, however if you convert the polydata to pointset then it crashes for the same input sphere.
Following example code for demonstration:
import vtk
def readvtk(filename):
a = vtk.vtkPolyDataReader()
a.SetFileName(filename)
a.Update()
m1 = a.GetOutput()
return m1
sphere = vtk.vtkSphereSource()
sphere.SetThetaResolution(200)
sphere.SetPhiResolution(100)
sphere.SetRadius(1.0)
sphere.Update()
sphere = sphere.GetOutput()
points = sphere.GetPoints()
pointset = vtk.vtkPointSet()
pointset.SetPoints(points)
print(pointset.GetNumberOfPoints())
f = vtk.vtkPoissonDiskSampler()
if 1:
print('Using pointset')
# pointset as input will fail
f.SetInputData(pointset)
else:
print('Using polydata')
# polydata as input works
f.SetInputData(sphere)
f.SetRadius(0.1)
f.Update()
output = f.GetOutput()
print(output.GetNumberOfPoints())