X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FHasBindingGroup.java;h=1316f19d779aa40a96c4f91ae746cb370db63a42;hp=2a443140630b1129e8746d1914d1b4cf7b6e02ea;hb=eabe4f7acd947415f183290dc3269b2502a25a1c;hpb=78303bd63882bf70a079f25874a8ff78fa0f652c diff --git a/src/edu/berkeley/qfat/geom/HasBindingGroup.java b/src/edu/berkeley/qfat/geom/HasBindingGroup.java index 2a44314..1316f19 100644 --- a/src/edu/berkeley/qfat/geom/HasBindingGroup.java +++ b/src/edu/berkeley/qfat/geom/HasBindingGroup.java @@ -16,32 +16,6 @@ public abstract class HasBindingGroup { if (bindingGroup == null) bindingGroup = new BindingGroup(this); if (other.bindingGroup == null) other.bindingGroup = new BindingGroup(other); - if (other.bindingGroup == this.bindingGroup) { - if (getBindingMatrix(other).equals(bindingMatrix)) - return; - /* - if (this instanceof Mesh.E) - throw new Error("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) @@ -54,6 +28,10 @@ public abstract class HasBindingGroup { return bindingGroup.size(); } + public AffineConstraint getBindingConstraint() { + if (bindingGroup==null) return new AffineConstraint.All(); + return bindingGroup.getConstraint(this); + } public Matrix getBindingMatrix() { if (bindingGroup==null) return Matrix.ONE; @@ -65,24 +43,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);