public bool sharesVertex(Face f) {
			foreach (Vertex v1 in vertices) {
				foreach (Vertex v2 in f.getVertices()) {
					if (v2.Equals (v1))
						return true;
				}
			}
			return false;
		}
		public bool addFace(Face f) {
			if (faces.Count == 0) {
				// We take this face as our base normal
				normal = f.getNormal ();

				// And add the face
				this.faces.Add(f);
				return true;
			} else {
				// The normal does not match, this can't be in our region
				if (f.getNormal () == normal) {
					this.faces.Add (f);
					return true;
				}
			}
			return false;
		}
		public void addFace(Face f) {
			this.faces.Add (f);
		}
		public void addFace(Face f) {
			if (!faces.Contains(f))
				this.faces.Add (f);
		}
		public void removeFace(Face f) {
			this.faces.Remove (f);
		}
		public void addFace(Face f) {
			faces.Add(f);
		}