X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FHasBindingGroup.java;h=ecc4f1cf9244f3d0acb394d52ac806460abc5aa8;hp=65d581f9d5cce15645948c31a8fb6070a79fc8d7;hb=de2400d58116bd995e73baf7a429e22def1e4067;hpb=9668f77ce3eeed3a393345c357818e1f85b3a637 diff --git a/src/edu/berkeley/qfat/geom/HasBindingGroup.java b/src/edu/berkeley/qfat/geom/HasBindingGroup.java index 65d581f..ecc4f1c 100644 --- a/src/edu/berkeley/qfat/geom/HasBindingGroup.java +++ b/src/edu/berkeley/qfat/geom/HasBindingGroup.java @@ -17,27 +17,11 @@ public abstract class HasBindingGroup { if (other.bindingGroup == null) other.bindingGroup = new BindingGroup(other); if (other.bindingGroup == this.bindingGroup) { - if (getBindingMatrix(other).equals(bindingMatrix)) + if (getBindingMatrix(other).equalsModuloEpsilon(bindingMatrix, 0.001f)) return; - /* - if (this instanceof Mesh.E) - throw new Error("rebind attempt: "+this+" and "+other+" with " - + bindingMatrix - + "; expected " - + getBindingMatrix(other)); - */ - setConstraint(bindingMatrix); - /* - System.err.println("WARNING: discarding rebind attempt: "+this+" and "+other+m); - */ - //" with " - //+ bindingMatrix - //+ "; expected " - //+ getBindingMatrix(other)); return; } - bindingMatrix = getBindingMatrix().inverse() .times(bindingMatrix) @@ -61,22 +45,6 @@ public abstract class HasBindingGroup { return bindingGroup.getMatrix(this, other); } - public HasBindingGroup getMaster() { - if (bindingGroup==null) return this; - return bindingGroup.getMaster(); - } - - public Matrix getConstraint() { - if (bindingGroup==null) return Matrix.ONE; - Matrix v = getBindingMatrix(getMaster()); - return v.inverse().times(bindingGroup.krank).times(v); - } - public void setConstraint(Matrix m) { - if (bindingGroup==null) bindingGroup = new BindingGroup(this); - Matrix v = getBindingMatrix(getMaster()); - bindingGroup.krank = bindingGroup.krank.times(v.inverse().times(m).times(v)); - } - public void unbind() { if (bindingGroup==null) return; bindingGroup.unbind(this);