void refreshExcludedObstacles(List allObstacles) {
		excludedObstacles.clear();

		for (int i = 0; i < allObstacles.size(); i++) {
			Obstacle o = (Obstacle) allObstacles.get(i);
			o.exclude = false;

			if (o.contains(start)) {
				if (o.containsProper(start))
					o.exclude = true;
				else {
					/*
					 * $TODO Check for corners. If the path begins exactly at
					 * the corner of an obstacle, the exclude should also be
					 * true.
					 * 
					 * Or, change segment intersection so that two segments that
					 * share an endpoint do not intersect.
					 */
				}
			}

			if (o.contains(end)) {
				if (o.containsProper(end))
					o.exclude = true;
				else {
					// check for corners. See above statement.
				}
			}

			if (o.exclude && !excludedObstacles.contains(o))
				excludedObstacles.add(o);
		}
	}