checkpoint
authoradam <adam@megacz.com>
Wed, 5 Dec 2007 04:35:20 +0000 (20:35 -0800)
committeradam <adam@megacz.com>
Wed, 5 Dec 2007 04:35:20 +0000 (20:35 -0800)
darcs-hash:20071205043520-5007d-cee4ccb8b9560a06c4d8f21c2c341456c3ad0b00.gz

src/edu/berkeley/qfat/Mesh.java
src/edu/berkeley/qfat/geom/Triangle.java

index c830acf..aa2e921 100644 (file)
@@ -657,24 +657,9 @@ public class Mesh implements Iterable<Mesh.T> {
         public E e1() { return e1; }
         public E e2() { return e1.next; }
         public E e3() { return e1.prev; }
-        public Vec norm() { return v2().p.minus(v1().p).cross(v3().p.minus(v1().p)).norm(); }
         public boolean hasE(E e) { return e1==e || e1.next==e || e1.prev==e; }
         public boolean has(Vert v) { return v1()==v || v2()==v || v3()==v; }
-        public float area() { return (float)Math.abs(0.5*e1().length()*new Vec(v1().p, v2().p).norm().dot(new Vec(v2().p, v3().p))); }
-        public void glVertices(GL gl) {
-            v1().p.glVertex(gl);
-            v2().p.glVertex(gl);
-            v3().p.glVertex(gl);
-        }
 
-        public Point centroid() {
-            return new Point((v1().p.x+v2().p.x+v3().p.x)/3,
-                             (v1().p.y+v2().p.y+v3().p.y)/3, 
-                             (v1().p.z+v2().p.z+v3().p.z)/3); }
-        public float diameter() {
-            // FIXME: what is this supposed to be?
-            return Math.max(Math.max(e1().length(), e2().length()), e3().length()) / 2;
-        }
 
 
     }
index 24c90d0..0ed9d39 100644 (file)
@@ -5,4 +5,29 @@ public abstract class Triangle {
     public abstract Point p1();
     public abstract Point p2();
     public abstract Point p3();
+
+    public Vec norm() {
+        return p2().minus(p1()).cross(p3().minus(p1())).norm();
+    }
+    public float area() {
+        return
+            (float)Math.abs(0.5*p1().distance(p2())
+                            * new Vec(p1(), p2()).norm().dot(new Vec(p2(), p3())));
+    }
+    public void glVertices(GL gl) {
+        p1().glVertex(gl);
+        p2().glVertex(gl);
+        p3().glVertex(gl);
+    }
+    public Point centroid() {
+        return new Point((p1().x+p2().x+p3().x)/3,
+                         (p1().y+p2().y+p3().y)/3, 
+                         (p1().z+p2().z+p3().z)/3);
+    }
+    public float diameter() {
+        // FIXME: what is this supposed to be?
+        return Math.max(Math.max(p1().distance(p2()),
+                                 p2().distance(p3())),
+                        p3().distance(p1())) / 2;
+    }
 }
\ No newline at end of file