private void runTest(int samples, double radius) { double[] times = new double[samples]; Stopwatch watch = new Stopwatch(); Random rand = new Random(); Console.WriteLine("Cores: " + Environment.ProcessorCount); Console.WriteLine("64bit:" + Environment.Is64BitProcess + Environment.NewLine); for (int s = 0; s < samples; s++) { List <Vector3D> points = new List <Vector3D>(); List <PoissonDisc> tPoints = PoissonDiscSampling.Sample3D(84357, radius, new Vector3D(5, 5, 5), 4, false); foreach (PoissonDisc disc in tPoints) { points.Add(new Vector3D(disc.position.X, disc.position.Y, disc.position.Z)); } ConvexHull3D hull = new ConvexHull3D(); Console.WriteLine(points.Count); watch.Restart(); points = hull.ConstructHull(points); watch.Stop(); Console.WriteLine(points.Count); times[s] = watch.Elapsed.TotalMilliseconds; } Console.WriteLine(samples + ": avg => " + times.Average() + " | best => " + times.Min() + " | worst => " + times.Max()); }