- public T newT(Point p1, Point p2, Point p3, Vec norm) { return newT(register(p1), register(p2), register(p3), norm); }
- public T newT(Vert p1, Vert p2, Vert p3, Vec norm) {
+ 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);
+ if (v1 != null && v2 != null) {
+ E e = v1.getE(v2);
+ if (e != null) return e;
+ e = v2.getE(v1);
+ if (e != null) return e;
+ }
+ if (v1 != null) return new E(v1.getFreeIncident(), register(p2));
+ if (v2 != null) return new E(v2.getFreeIncident(), register(p1)).pair;
+ return new E(register(p1), register(p2));
+ }
+ public T newT(Point p1, Point p2, Point p3, Vec norm) {