From 73ed19a2635750c10ed5ff71677f04ccfd3d0ef3 Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 17 Dec 2007 15:26:22 -0800 Subject: [PATCH 1/1] checkpoint darcs-hash:20071217232622-5007d-b0ae842a4907be2e74bad1483333648cfb241591.gz --- src/edu/berkeley/qfat/Main.java | 4 ++-- src/edu/berkeley/qfat/Mesh.java | 22 ++++++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index 0c8c271..83bf281 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -86,12 +86,12 @@ public class Main extends MeshViewer { float halfup = 0; translations = new Matrix[] { - /* + Matrix.translate(new Vec(lshift, depth, halfup)), Matrix.translate(new Vec(rshift, depth, halfup)), Matrix.translate(new Vec(lshift, -depth, halfup)), Matrix.translate(new Vec(rshift, -depth, halfup)), - */ + /* Matrix.translate(new Vec(0, depth, halfup)), Matrix.translate(new Vec(0, -depth, halfup)), diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index 02f589e..edd82d6 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -313,9 +313,9 @@ public class Mesh implements Iterable { e.p2.bind(ebound.p1); } } - public void shatter(BindingGroup bg1, BindingGroup bg2) { + public void shatter(BindingGroup bg1, BindingGroup bg2, boolean triangles) { for(E e : set) { - e.shatter(e.midpoint(), bg1, bg2); + e.shatter(e.midpoint(), bg1, bg2, triangles); } } } @@ -354,8 +354,8 @@ public class Mesh implements Iterable { public void bindEdge(E e) { bind_to.add(e); } public void dobind() { bind_to.dobind(this); } - public Point shatter() { return shatter(midpoint(), null, null); } - public Point shatter(Point mid, BindingGroup bg1, BindingGroup bg2) { + public Point shatter() { return shatter(midpoint(), null, null, true); } + public Point shatter(Point mid, BindingGroup bg1, BindingGroup bg2, boolean triangles) { if (shattered || destroyed) return mid; shattered = true; @@ -367,15 +367,17 @@ public class Mesh implements Iterable { if (bg1==null) bg1 = new BindingGroup(); if (bg2==null) bg2 = new BindingGroup(); BindingGroup old_bind_to = bind_to; - bind_peers.shatter(bg1, bg2); - old_bind_to.shatter(bg2.other(), bg1.other()); + bind_peers.shatter(bg1, bg2, triangles); + old_bind_to.shatter(bg2.other(), bg1.other(), triangles); pair.shatter(); destroy(); - newT(r.p, p1.p, mid, null, old_colorclass); - newT(r.p, mid, p2.p, null, old_colorclass); - bg1.add(p1.getE(mid)); - bg2.add(p2.getE(mid).pair); + if (triangles) { + newT(r.p, p1.p, mid, null, old_colorclass); + newT(r.p, mid, p2.p, null, old_colorclass); + bg1.add(p1.getE(mid)); + bg2.add(p2.getE(mid).pair); + } return mid; } -- 1.7.10.4