From 415f5ddcc1c38053f390ec9dc6f55ae3d0101849 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 15 Dec 2007 17:39:29 -0800 Subject: [PATCH] checkpoint darcs-hash:20071216013929-5007d-b16b8c08f1a2521ae8cace6a750923689904fb96.gz --- src/edu/berkeley/qfat/Main.java | 10 +++++++- src/edu/berkeley/qfat/Mesh.java | 45 ++++++++------------------------- src/edu/berkeley/qfat/MeshViewer.java | 10 +++++--- 3 files changed, 25 insertions(+), 40 deletions(-) diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index c330958..5896167 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -272,7 +272,11 @@ public class Main extends MeshViewer { int oldverts = verts; System.out.println("doubling vertices."); PriorityQueue es = new PriorityQueue(); - for(Mesh.E e : tile.edges()) es.add(e); + for(Mesh.T t : tile) { + es.add(t.e1()); + es.add(t.e2()); + es.add(t.e3()); + } for(int i=0; i { public static final float EPSILON = (float)0.0001; public static final Random random = new Random(); - private PointSet vertices = new PointSet(); - - public int size() { return vertices.size(); } - public Iterable vertices() { return vertices; } - - public Iterable edges() { - return - new Iterable() { - public Iterator iterator() { - // HACK - HashSet hse = new HashSet(); - for(T t : Mesh.this) { - hse.add(t.e1()); - hse.add(t.e2()); - hse.add(t.e3()); - hse.add(t.e1().pair); - hse.add(t.e2().pair); - hse.add(t.e3().pair); - } - return hse.iterator(); - } }; - } - - public Iterator iterator() { - /* - for(Vert v : vertices) - if (v.e != null && v.e.t != null) - return new FaceIterator(v); - return new FaceIterator(); - */ - return ts.iterator(); - } - public HashSet ts = new HashSet(); public RTree tris = new RTree(); - public Mesh score_against = null; public double score = 0; public float score() { return (float)score; } - public int numedges = 0; public float avgedge = 0; + private PointSet vertices = new PointSet(); + + public int size() { return vertices.size(); } + public Iterable vertices() { return vertices; } + + public Iterator iterator() { + return tris.iterator(); + } public void rebindPoints() { // unbind all points @@ -879,9 +852,11 @@ public class Mesh implements Iterable { public void glVertices(GL gl) { + /* if (e1().bind_to.set.size() == 0) return; if (e2().bind_to.set.size() == 0) return; if (e3().bind_to.set.size() == 0) return; + */ norm().glNormal(gl); p1().glVertex(gl); diff --git a/src/edu/berkeley/qfat/MeshViewer.java b/src/edu/berkeley/qfat/MeshViewer.java index f869aac..b1f0e52 100644 --- a/src/edu/berkeley/qfat/MeshViewer.java +++ b/src/edu/berkeley/qfat/MeshViewer.java @@ -179,9 +179,9 @@ public class MeshViewer implements GLEventListener, MouseListener, MouseMotionLi gl.glBegin(GL.GL_TRIANGLES); if (tileon) - draw(gl, true, tile); + draw(gl, true, safeTriangles); if (tilemeshon) - draw(gl, false, tile); + draw(gl, false, safeTriangles); gl.glEnd(); //draw(gl, false, tile); @@ -211,11 +211,13 @@ public class MeshViewer implements GLEventListener, MouseListener, MouseMotionLi gl.glEnable (GL.GL_LIGHTING); } - private void draw(GL gl, boolean triangles, Mesh mesh) { + protected HashSet safeTriangles = new HashSet(); + + private void draw(GL gl, boolean triangles, Iterable tris) { float red = 0.0f; float green = 0.0f; float blue = 0.0f; - for(Mesh.T t : mesh) { + for(Mesh.T t : tris) { if (red < 0.15) red = 1.0f; if (green < 0.15) green = 1.0f; if (blue < 0.15) blue = 1.0f; -- 1.7.10.4