X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=f537429ea3eeb1eca83d9832971abcf4a419eaaf;hp=e12407294024a003e76642844290f3b79739109d;hb=7c73c0f732bbadef09d098b7f4542b060fdacc7d;hpb=f018c9f76356b71ee3560595f6d236a76a7d13eb diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index e124072..f537429 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -215,8 +215,13 @@ public class Mesh implements Iterable { // Vertexices ////////////////////////////////////////////////////////////////////////////// + /** a vertex in the mesh */ public final class Vertex extends HasQuadric implements Visitor { + public void bindTo(Matrix bindingMatrix, HasBindingGroup other) { + bindTo(bindingMatrix, other, EPSILON); + } + public Point p, goodp; public Point oldp; E e; // some edge *leaving* this point @@ -557,6 +562,10 @@ public class Mesh implements Iterable { /** [UNIQUE] an edge */ public final class E extends HasBindingGroup implements Comparable { + public void bindTo(Matrix bindingMatrix, HasBindingGroup other) { + bindTo(bindingMatrix, other, EPSILON); + } + public void sanity() { if (destroyed) return; if (pair!=null && (pair.v1!=v2 || pair.v2!=v1)) throw new RuntimeException(); @@ -610,13 +619,9 @@ public class Mesh implements Iterable { } - public void bindingGroupChanged(BindingGroup newBindingGroup_) { - - BindingGroup newBindingGroup = (BindingGroup)newBindingGroup_; - if (newBindingGroup==null) return; - //if (this==newBindingGroup.getMaster()) return; + public void bindingGroupChanged() { HashSet nbg = new HashSet(); - for(E eother : (Iterable)newBindingGroup) nbg.add(eother); + for(E eother : (Iterable)getBoundPeers()) nbg.add(eother); for(E eother : nbg) { if (next==null || prev==null) continue; if (eother.next==null || eother.prev==null) continue; @@ -691,8 +696,8 @@ public class Mesh implements Iterable { v1.bindTo(getBindingMatrix(e), e.v1); v2.bindTo(getBindingMatrix(e), e.v2); /* - e.v1.setConstraint(getConstraint()); - e.v2.setConstraint(getConstraint()); + e.v1.setConstraint(getAffineConstraint()); + e.v2.setConstraint(getAffineConstraint()); */ } } @@ -736,8 +741,8 @@ public class Mesh implements Iterable { e.v2.getE(mid).pair.pair.bindTo(e.getBindingMatrix(firste), firstq.pair); } /* - first.setConstraint(firste.getConstraint()); - firstq.setConstraint(firste.getConstraint()); + first.setConstraint(firste.getAffineConstraint()); + firstq.setConstraint(firste.getAffineConstraint()); */ return nearest(midpoint()); } @@ -1069,8 +1074,8 @@ public class Mesh implements Iterable { } */ /* - first.setConstraint(firste.getConstraint()); - firstq.setConstraint(firste.getConstraint()); + first.setConstraint(firste.getAffineConstraint()); + firstq.setConstraint(firste.getAffineConstraint()); */ return null; }