checkpoint
[anneal.git] / src / edu / berkeley / qfat / bind / BindingGroup.java
index 0882fa5..e93edf8 100644 (file)
@@ -3,8 +3,12 @@ import edu.berkeley.qfat.geom.*;
 import javax.media.opengl.*;
 import java.util.*;
 
 import javax.media.opengl.*;
 import java.util.*;
 
-/** tracks an equivalence class of geometric objects which are related to each other by transformation matrices */
-public class BindingGroup<T extends HasBindingGroup> implements Iterable<T> {
+/**
+ *  An equivalence class of geometric objects whose positions are
+ *  related by affine transformation matrices and are constrained by
+ *  an affine constraint.
+ */
+class BindingGroup<T extends HasBindingGroup> implements Iterable<T> {
 
     private T                  master     = null;
     private AffineConstraint   constraint = new AffineConstraint.All();
 
     private T                  master     = null;
     private AffineConstraint   constraint = new AffineConstraint.All();
@@ -15,9 +19,10 @@ public class BindingGroup<T extends HasBindingGroup> implements Iterable<T> {
         matrices.put(master, Matrix.ONE);
     }
 
         matrices.put(master, Matrix.ONE);
     }
 
-    public int size() { return matrices.size(); }
+    int size() { return matrices.size(); }
 
 
-    public void merge(BindingGroup<T> bg, Matrix m) {
+    /** merge another binding group with this one */
+    void merge(BindingGroup<T> bg, Matrix m) {
         if (bg==this) {
             if (m.equalsModuloEpsilon(Matrix.ONE, 0.001f)) return;
             constraint = constraint.intersect(m.getAffineConstraint(0.001f), 0.001f);
         if (bg==this) {
             if (m.equalsModuloEpsilon(Matrix.ONE, 0.001f)) return;
             constraint = constraint.intersect(m.getAffineConstraint(0.001f), 0.001f);
@@ -39,7 +44,7 @@ public class BindingGroup<T extends HasBindingGroup> implements Iterable<T> {
         bg.matrices.clear();
         bg.master = null;
         for(HasBindingGroup hbg : stuff)
         bg.matrices.clear();
         bg.master = null;
         for(HasBindingGroup hbg : stuff)
-            hbg.bindingGroupChanged(this);
+            hbg.bindingGroupChanged();
     }
 
     public Matrix getMatrix(T t) { return matrices.get(t); }
     }
 
     public Matrix getMatrix(T t) { return matrices.get(t); }