E next; // next half-edge
E pair; // partner half-edge
+ public void bind(E e) { bind(e, new M()); }
+ public void bind(E e, M m) {
+ p1.bind(e.p2);
+ p2.bind(e.p1);
+ }
+
private void sync() {
this.prev.next = this;
this.next.prev = this;
public final E e1;
public final int color;
- public void bind(T t2, int rot) {
- // FIXME
- }
-
T(E e1) {
this.e1 = e1;
E e2 = e1.next;
public Main(StlFile stlf) {
-
Geom.P ltf = geom.newP(-0.2, 0.1, 0.1);
Geom.P mtf = geom.newP( 0.0, 0.1, 0.1);
Geom.P rtf = geom.newP( 0.2, 0.1, 0.1);
if ((t1.p1().plus(v).minus(t2.p1()).mag() < Geom.EPSILON) &&
(t1.p2().plus(v).minus(t2.p3()).mag() < Geom.EPSILON) &&
- (t1.p3().plus(v).minus(t2.p2()).mag() < Geom.EPSILON))
- t1.bind(t2, 0);
+ (t1.p3().plus(v).minus(t2.p2()).mag() < Geom.EPSILON)) {
+ t1.e1().bind(t2.e3());
+ t1.e2().bind(t2.e2());
+ t1.e3().bind(t2.e1());
+ }
if ((t1.p2().plus(v).minus(t2.p1()).mag() < Geom.EPSILON) &&
(t1.p3().plus(v).minus(t2.p3()).mag() < Geom.EPSILON) &&
- (t1.p1().plus(v).minus(t2.p2()).mag() < Geom.EPSILON))
- t1.bind(t2, 1);
+ (t1.p1().plus(v).minus(t2.p2()).mag() < Geom.EPSILON)) {
+ t1.e2().bind(t2.e3());
+ t1.e3().bind(t2.e2());
+ t1.e1().bind(t2.e1());
+ }
if ((t1.p3().plus(v).minus(t2.p1()).mag() < Geom.EPSILON) &&
(t1.p1().plus(v).minus(t2.p3()).mag() < Geom.EPSILON) &&
- (t1.p2().plus(v).minus(t2.p2()).mag() < Geom.EPSILON))
- t1.bind(t2, 2);
+ (t1.p2().plus(v).minus(t2.p2()).mag() < Geom.EPSILON)) {
+ t1.e3().bind(t2.e3());
+ t1.e1().bind(t2.e2());
+ t1.e2().bind(t2.e1());
+ }
}
}
}