public void createRegionsForEdge(HighLevelEdge hle) {
			Region r1 = new Region ();
			Region r2 = new Region ();
			foreach (Edge e in hle.getEdges()) {
				foreach (Face f in e.getFaces()) {
					// Attempt to add to both regions
					if (r1.addFace (f)) {
						f.setParent (r1);
						r1.addEdge (hle);
						hle.addRegion (r1);
					} else if (r2.addFace (f)) {
						f.setParent (r2);
						r2.addEdge (hle);
						hle.addRegion (r2);
					}
				}
			}
			regions.Add (r1);
			regions.Add (r2);
		}