Point3f getMax() {
		if (max == null)
			max = new Point3f();
		if (list.isEmpty()) {
			max.set(0, 0, 0);
			return max;
		}
		Cuboid c = getCuboid(0);
		max.x = c.getMaxX();
		max.y = c.getMaxY();
		max.z = c.getMaxZ();
		synchronized (list) {
			int n = count();
			if (n > 1) {
				for (int i = 1; i < n; i++) {
					c = getCuboid(i);
					if (max.x < c.getMaxX()) {
						max.x = c.getMaxX();
					}
					if (max.y < c.getMaxY()) {
						max.y = c.getMaxY();
					}
					if (max.z < c.getMaxZ()) {
						max.z = c.getMaxZ();
					}
				}
			}
		}
		return max;
	}