From 24e228d7f5a7707931f8e73fa951325642985c89 Mon Sep 17 00:00:00 2001 From: Andrew Lawson Date: Mon, 1 Dec 2014 13:25:06 -0500 Subject: [PATCH] Fixed input being changed globally when modified in samplePoints(). --- geometric_separators.pde | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/geometric_separators.pde b/geometric_separators.pde index df2b97a..add7705 100644 --- a/geometric_separators.pde +++ b/geometric_separators.pde @@ -137,15 +137,16 @@ PVector getGeometricMedian(ArrayList input) { // Sample input points into sets of 4 ArrayList> samplePoints(ArrayList input) { + ArrayList inputCopy = new ArrayList(input); ArrayList> setList = new ArrayList>(); ArrayList pointList = new ArrayList(); // While there are still points, split into sets - while (input.size() > 0) { + while (inputCopy.size() > 0) { double rnd = new Random().nextDouble(); - int index = (int)(rnd * 10) % input.size(); + int index = (int)(rnd * 10) % inputCopy.size(); // Add to set - pointList.add(input.get(index)); - input.remove(index); + pointList.add(inputCopy.get(index)); + inputCopy.remove(index); // Create new set on max size if (pointList.size() == 4) { setList.add(pointList);