From 316044467afed9ea9df7fb373a0ab1ed2f7a901b Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 4 Dec 2007 22:02:43 -0800 Subject: [PATCH] checkpoint darcs-hash:20071205060243-5007d-03b7c0c554a63c79cf859866c21f08fbfb1a0a6f.gz --- src/edu/berkeley/qfat/Mesh.java | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index d1fda3c..3b39842 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -124,10 +124,23 @@ public class Mesh implements Iterable { public final class Vert extends HasPoint { public Point p; + E e; // some edge *leaving* this point + + Vert bound_to = this; + int watch_count; + float watch_x; + float watch_y; + float watch_z; + Vert watch; + Matrix binding = new Matrix(); + float oldscore = 0; + boolean inserted = false; + public Point getPoint() { return p; } - private Vert(Point p, E e) { this(p); } private Vert(Point p) { this.p = p; + //this.e = e; + //if (e==null) throw new Error(); if (pointset.get(p) != null) throw new Error(); pointset.add(this); } @@ -286,17 +299,6 @@ public class Mesh implements Iterable { } while(e != this.e); return norm.norm(); } - - Vert bound_to = this; - int watch_count; - float watch_x; - float watch_y; - float watch_z; - Vert watch; - E e; // some edge *leaving* this point - Matrix binding = new Matrix(); - float oldscore = 0; - boolean inserted = false; } /** [UNIQUE] an edge */ @@ -419,9 +421,11 @@ public class Mesh implements Iterable { public E(Point p1, Point p2) { if (pointset.get(p1) != null) throw new Error(); if (pointset.get(p2) != null) throw new Error(); - this.p1 = new Vert(p1, this); - this.p2 = new Vert(p2, this); + this.p1 = new Vert(p1); + this.p2 = new Vert(p2); this.prev = this.next = this.pair = new E(this, this, this); + this.p1.e = this; + this.p2.e = this.pair; sync(); } @@ -429,7 +433,7 @@ public class Mesh implements Iterable { public E(E prev, Point p) { Vert p2; p2 = pointset.get(p); - if (p2 == null) p2 = new Vert(p, this); + if (p2 == null) p2 = new Vert(p); this.p1 = prev.p2; this.p2 = p2; this.prev = prev; @@ -444,6 +448,7 @@ public class Mesh implements Iterable { this.prev.next = this; this.pair = new E(q, this, z); } + if (p2.e==null) p2.e = this.pair; sync(); } @@ -532,10 +537,6 @@ public class Mesh implements Iterable { } } - private Vert register(Point p) { - Vert v = pointset.get(p); - return v==null ? new Vert(p) : v; - } public E makeE(Point p1, Point p2) { Vert v1 = pointset.get(p1); Vert v2 = pointset.get(p2); -- 1.7.10.4