From d461f6cdb421755dde0d0bee4738d31acc116e4d Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 5 Dec 2007 01:48:49 -0800 Subject: [PATCH] checkpoint darcs-hash:20071205094849-5007d-655c32e39b59a8b5ea3e42ebd48e23d5d483d7b2.gz --- src/edu/berkeley/qfat/Mesh.java | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index f9c9b94..2441057 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -239,7 +239,6 @@ public class Mesh implements Iterable { e = e.pair.next; } while(e != this.e); - // FIXME: intersection test needed? return true; } @@ -323,23 +322,22 @@ public class Mesh implements Iterable { public BindingGroup bind_others; public BindingGroup other() { return bind_others; } public BindingGroup(BindingGroup bind_others) { this.bind_others = bind_others; } - public BindingGroup() { - this.bind_others = new BindingGroup(this); - } + public BindingGroup() { this.bind_others = new BindingGroup(this); } + public BindingGroup(E e) { this(); set.add(e); } public void add(E e) { if (set.contains(e)) return; for (E epeer : e.bind_peers.set) { epeer.bind_peers = this; + epeer.bind_to = bind_others; set.add(epeer); } for (E eother : e.bind_to.set) { - eother.bind_to = bind_others; bind_others.add(eother); } - for(E ex : (!swap ? right : left)) { - if (e.prev.isBoundTo(ex.prev)) { - System.out.println("hit!"); + for(E eother : bind_others.set) { + if (e.next.bind_to.set.contains(eother.prev)) { + e.next.next.bindEdge(eother.prev.prev); } } @@ -352,7 +350,7 @@ public class Mesh implements Iterable { } public void shatter(BindingGroup bg1, BindingGroup bg2) { for(E e : set) { - e.shatter(e.midpoint(), bg1, bg2, false); + e.shatter(e.midpoint(), bg1, bg2); } } } @@ -365,7 +363,7 @@ public class Mesh implements Iterable { E prev; // previous half-edge E next; // next half-edge E pair; // partner half-edge - public BindingGroup bind_peers = new BindingGroup(); + public BindingGroup bind_peers = new BindingGroup(this); public BindingGroup bind_to = bind_peers.other(); boolean shattered = false; @@ -373,8 +371,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, false); } - public Point shatter(Point mid, BindingGroup bg1, BindingGroup bg2, boolean swap) { + public Point shatter() { return shatter(midpoint(), null, null); } + public Point shatter(Point mid, BindingGroup bg1, BindingGroup bg2) { if (shattered) return mid; shattered = true; @@ -407,10 +405,12 @@ public class Mesh implements Iterable { prev.t = null; pair.next.t = null; pair.prev.t = null; + /* this.bind_to = null; pair.bind_to = null; this.bind_peers = null; pair.bind_peers = null; + */ pair.prev.next = next; next.prev = pair.prev; prev.next = pair.next; -- 1.7.10.4