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);
}
} 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 */
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();
}
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;
this.prev.next = this;
this.pair = new E(q, this, z);
}
+ if (p2.e==null) p2.e = this.pair;
sync();
}
}
}
- 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);