checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index c041792..7f806f8 100644 (file)
@@ -84,6 +84,8 @@ public class Mesh implements Iterable<Mesh.T> {
 
         private boolean illegal = false;
 
+        public boolean visible = false;
+
         public Point getPoint() { return p; }
         public float error() { return olderror; }
 
@@ -673,12 +675,16 @@ public class Mesh implements Iterable<Mesh.T> {
         return ret;
     }
 
+    private int max_serial = 0;
     /** [UNIQUE] a triangle (face) */
     public final class T extends Triangle {
         public final E e1;
         public final int color;
         public final int colorclass;
 
+        public final int serial = max_serial++;
+        public boolean occluded;
+
         T(E e1, int colorclass) {
             this.e1 = e1;
             E e2 = e1.next;
@@ -730,17 +736,18 @@ public class Mesh implements Iterable<Mesh.T> {
             return true;
         }
 
+        public void glTriangle(GL gl, Matrix m) {
+            gl.glPushName(serial);
+            gl.glBegin(GL.GL_TRIANGLES);
+            glVertices(gl, m);
+            gl.glEnd();
+            gl.glPopName();
+        }
+
         /** issue gl.glVertex() for each of the triangle's points */
-        public void glVertices(GL gl) {
+        public void glVertices(GL gl, Matrix m) {
             if (!shouldBeDrawn()) return;
-            norm().glNormal(gl);
-            Point p1 = v1().goodp;
-            Point p2 = v2().goodp;
-            Point p3 = v3().goodp;
-            p1.glVertex(gl);
-            p2.glVertex(gl);
-            p3.glVertex(gl);
+            super.glVertices(gl, m);
         }
-
     }
 }