checkpoint
authoradam <adam@megacz.com>
Sun, 16 Dec 2007 02:22:54 +0000 (18:22 -0800)
committeradam <adam@megacz.com>
Sun, 16 Dec 2007 02:22:54 +0000 (18:22 -0800)
darcs-hash:20071216022254-5007d-27586e99399f577b8c67a5e3be2fdf09fad9b67e.gz

src/edu/berkeley/qfat/Mesh.java

index 3c80182..be699dd 100644 (file)
@@ -226,7 +226,6 @@ public class Mesh implements Iterable<Mesh.T> {
                 if (ang > minangle)
                     oldscore += (ang - minangle);
             }
-
             score += oldscore;
         }
 
@@ -300,23 +299,16 @@ public class Mesh implements Iterable<Mesh.T> {
             E ret = getFreeIncident(e, e);
             if (ret != null) return ret;
             ret = getFreeIncident(e.pair.next, e.pair.next);
-            if (ret == null) {
-                E ex = e;
-                do {
-                    System.out.println(ex + " " + ex.t);
-                    ex = ex.pair.next;
-                } while (ex != e);
-                throw new Error("unable to find free incident to " + this);
-            }
-            return ret;
+            if (ret != null) return ret;
+            for(E e = this.e; e!=null; e=e.pair.next==this.e?null:e.pair.next)
+                System.out.println(e + " " + e.t);
+            throw new Error("unable to find free incident to " + this);
         }
 
         public E getFreeIncident(E start, E before) {
-            E e = start;
-            do {
-                if (e.pair.p2 == this && e.pair.t == null && e.pair.next.t == null) return e.pair;
-                e = e.pair.next;
-            } while(e != before);
+            for(E e = start; e!=null; e=e.pair.next==before?null:e.pair.next)
+                if (e.pair.p2 == this && e.pair.t == null && e.pair.next.t == null)
+                    return e.pair;
             return null;
         }
 
@@ -326,22 +318,16 @@ public class Mesh implements Iterable<Mesh.T> {
             return getE(v);
         }
         public E getE(Vertex p2) {
-            E e = this.e;
-            do {
-                if (e==null) return null;
+            for(E e = this.e; e!=null; e=e.pair.next==this.e?null:e.pair.next)
                 if (e.p1 == this && e.p2 == p2) return e;
-                e = e.pair.next;
-            } while (e!=this.e);
             return null;
         }
 
         public Vec norm() {
             Vec norm = new Vec(0, 0, 0);
-            E e = this.e;
-            do {
-                if (e.t != null) norm = norm.plus(e.t.norm().times((float)e.prev.angle()));
-                e = e.pair.next;
-            } while(e != this.e);
+            for(E e = this.e; e!=null; e=e.pair.next==this.e?null:e.pair.next)
+                if (e.t != null)
+                    norm = norm.plus(e.t.norm().times((float)e.prev.angle()));
             return norm.norm();
         }