checkpoint
[anneal.git] / src / edu / berkeley / qfat / geom / HasBindingGroup.java
index d884672..1316f19 100644 (file)
@@ -1,6 +1,7 @@
 package edu.berkeley.qfat.geom;
 import javax.media.opengl.*;
 import java.util.*;
+import edu.berkeley.qfat.Mesh;
 
 public abstract class HasBindingGroup {
 
@@ -15,31 +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;
-            /*
-            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)
@@ -52,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;
@@ -63,11 +43,6 @@ public abstract class HasBindingGroup {
         return bindingGroup.getMatrix(this, other);
     }
 
-    public HasBindingGroup getMaster() {
-        if (bindingGroup==null) return this;
-        return bindingGroup.getMaster();
-    }
-
     public void unbind() {
         if (bindingGroup==null) return;
         bindingGroup.unbind(this);