public class Shape { private double[] coordinates; public Shape(int numPoints) { this.coordinates = new double[numPoints * 3]; } public void setPoint(int i, Point point) { int j = i * 3; coordinates[j + 0] = point.x; coordinates[j + 1] = point.y; coordinates[j + 2] = point.z; } public Point getCentreOfMass() { double xSum = 0.0; double ySum = 0.0; double zSum = 0.0; for (int j = 0; j < coordinates.length; j += 3) { xSum += coordinates[j + 0]; ySum += coordinates[j + 1]; zSum += coordinates[j + 2]; } int numPoints = coordinates.length / 3; return new Point((xSum / numPoints), (ySum / numPoints), (zSum / numPoints)); } }