/** 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> {
- public Matrix krank = Matrix.ONE;
-
private T master = null;
private HashMap<T,Matrix> matrices = new HashMap<T,Matrix>();
public int size() { return matrices.size(); }
- public void setKrank(Matrix k) { krank = krank.times(k); }
public void merge(BindingGroup<T> bg, Matrix m) {
if (bg==this) throw new Error();
for(HasBindingGroup hbg : bg.matrices.keySet()) {
}
Matrix v = getMatrix(bg.master, master);
- //krank = krank.times(v.inverse().times(bg.krank).times(v));
HashSet<HasBindingGroup> stuff = new HashSet<HasBindingGroup>();
for(HasBindingGroup hbg : bg.matrices.keySet())