X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FHasBindingGroup.java;h=d884672ac7109bb0b1ebbca9c5805593dd4bb212;hp=ad9ee316d5a0cded2875852999416477cbe062a8;hb=5f15a6155bf7fbf2d62b3ab9fd992a54af10a95a;hpb=4c6451ef747ae7ffc2aa8955e55254673ac49d16 diff --git a/src/edu/berkeley/qfat/geom/HasBindingGroup.java b/src/edu/berkeley/qfat/geom/HasBindingGroup.java index ad9ee31..d884672 100644 --- a/src/edu/berkeley/qfat/geom/HasBindingGroup.java +++ b/src/edu/berkeley/qfat/geom/HasBindingGroup.java @@ -4,7 +4,7 @@ import java.util.*; public abstract class HasBindingGroup { - BindingGroup bindingGroup; + public BindingGroup bindingGroup; // know: self = bindingGroup[self] * master // know: other = other.bindingGroup[other] * other.bindingGroup.master @@ -24,13 +24,22 @@ public abstract class HasBindingGroup { + "; expected " + getBindingMatrix(other)); */ - System.err.println("WARNING: discarding rebind attempt: "+this+" and "+other+" with " - + bindingMatrix - + "; expected " - + getBindingMatrix(other)); + Matrix vom = other.getBindingMatrix(bindingGroup.getMaster()); + Matrix v2 = bindingMatrix; + Matrix v3 = getBindingMatrix(other); + Matrix m = vom.inverse().times(v2.inverse()).times(v3).times(vom); + bindingGroup.krank = bindingGroup.krank.times(m); + /* + System.err.println("WARNING: discarding rebind attempt: "+this+" and "+other+m); + */ + //" with " + //+ bindingMatrix + //+ "; expected " + //+ getBindingMatrix(other)); return; } + bindingMatrix = getBindingMatrix().inverse() .times(bindingMatrix)