X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FHasBindingGroup.java;fp=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FHasBindingGroup.java;h=0000000000000000000000000000000000000000;hp=1316f19d779aa40a96c4f91ae746cb370db63a42;hb=f018c9f76356b71ee3560595f6d236a76a7d13eb;hpb=eabe4f7acd947415f183290dc3269b2502a25a1c diff --git a/src/edu/berkeley/qfat/geom/HasBindingGroup.java b/src/edu/berkeley/qfat/geom/HasBindingGroup.java deleted file mode 100644 index 1316f19..0000000 --- a/src/edu/berkeley/qfat/geom/HasBindingGroup.java +++ /dev/null @@ -1,62 +0,0 @@ -package edu.berkeley.qfat.geom; -import javax.media.opengl.*; -import java.util.*; -import edu.berkeley.qfat.Mesh; - -public abstract class HasBindingGroup { - - public BindingGroup bindingGroup; - - // know: self = bindingGroup[self] * master - // know: other = other.bindingGroup[other] * other.bindingGroup.master - // want: self = bindingMatrix * other - // therefore: master = bindingGroup[self]^-1 * bindingMatrix * other - // therefore: = bindingGroup[self]^-1 * bindingMatrix * other.bindingGroup[other] * other.bindingGroup.master - public void bindTo(Matrix bindingMatrix, HasBindingGroup other) { - if (bindingGroup == null) bindingGroup = new BindingGroup(this); - if (other.bindingGroup == null) other.bindingGroup = new BindingGroup(other); - - bindingMatrix = - getBindingMatrix().inverse() - .times(bindingMatrix) - .times(other.getBindingMatrix()); - other.bindingGroup.merge(bindingGroup, bindingMatrix); - } - - public int bindingGroupSize() { - if (bindingGroup == null) return 1; - 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; - return bindingGroup.getMatrix(this); - } - - public Matrix getBindingMatrix(HasBindingGroup other) { - if (other==this) return Matrix.ONE; - return bindingGroup.getMatrix(this, other); - } - - public void unbind() { - if (bindingGroup==null) return; - bindingGroup.unbind(this); - bindingGroup = null; - bindingGroupChanged(bindingGroup); - } - - public boolean isBoundTo(HasBindingGroup t) { - return t==this || (bindingGroup!=null && bindingGroup.contains(t)); - } - - public Iterable getBoundPeers() { - if (bindingGroup==null) bindingGroup = new BindingGroup(this); - return bindingGroup; - } - public void bindingGroupChanged(BindingGroup newBindingGroup) { } -}