docs: public static void prune(List<Point3D_F64> cloud , int minNeighbors , double radius ) {
  		if( minNeighbors < 0 )
  			throw new IllegalArgumentException("minNeighbors must be >= 0");
  		NearestNeighbor<Point3D_F64> nn = FactoryNearestNeighbor.kdtree(new KdTreePoint3D_F64() );
  		NearestNeighbor.Search<Point3D_F64> search = nn.createSearch();
  
  		nn.setPoints(cloud,false);
  		FastQueue<NnData<Point3D_F64>> results = new FastQueue(NnData.class,true);
  
  		// It will always find itself
  		minNeighbors += 1;
  
  		// distance is Euclidean squared
  		radius *= radius;
  
  		for( int i = cloud.size()-1; i >= 0; i-- ) {
  			search.findNearest(cloud.get(i),radius,minNeighbors,results);
  
  			if( results.size < minNeighbors ) {
  				cloud.remove(i);
  			}
  		}
  	}