X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMesh.java;h=3a53041e3ac10c6cb8af2d80ba8248a294a5c640;hp=43927d4c800db97a37622ef0b7cca4d54c68d2b5;hb=1cfea6e5d6ca9e75578e97d1fdccf2b306af56c4;hpb=de2400d58116bd995e73baf7a429e22def1e4067 diff --git a/src/edu/berkeley/qfat/Mesh.java b/src/edu/berkeley/qfat/Mesh.java index 43927d4..3a53041 100644 --- a/src/edu/berkeley/qfat/Mesh.java +++ b/src/edu/berkeley/qfat/Mesh.java @@ -6,8 +6,8 @@ import javax.swing.*; import javax.media.opengl.*; import javax.media.opengl.glu.*; import edu.berkeley.qfat.geom.*; -import edu.berkeley.qfat.geom.HasBindingGroup; import edu.wlu.cs.levy.CG.KDTree; +import edu.berkeley.qfat.bind.*; import edu.berkeley.qfat.geom.Point; import com.infomatiq.jsi.IntProcedure; @@ -408,20 +408,12 @@ public class Mesh implements Iterable { */ Point op = this.p; - Point pp = vv.plus(getPoint()); - if (bindingGroup != null) { - /* - for(int i=0; i<20 ; i++) { - Point v2 = getConstraint().times(pp); - pp = pp.midpoint(v2); - //System.out.println(m.minus(m2)); - } - */ - //pp = getConstraint().times(pp); - } - //pp = pp.minus(op).norm().times(vv.mag()).plus(op); - ok = false; - Point pt = pp; + Point pt = vv.plus(getPoint()); + Point pp = pt; + pt = getBindingConstraint().getProjection(pp); + if (pt==null) return false; + System.out.println(pt.minus(pp).mag() + " " + getBindingConstraint()); + for(Vertex v : (Iterable)getBoundPeers()) { Point pt2 = v.getBindingMatrix(this).times(pt); /* @@ -618,14 +610,9 @@ public class Mesh implements Iterable { } - public void bindingGroupChanged(edu.berkeley.qfat.geom.BindingGroup newBindingGroup_) { - - edu.berkeley.qfat.geom.BindingGroup newBindingGroup = - (edu.berkeley.qfat.geom.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;