void merge(BindingGroup<T> bg, Matrix m, float epsilon) {
if (bg==this) {
if (m.equalsModuloEpsilon(Matrix.ONE, epsilon)) return;
+ /*
+ if (master instanceof edu.berkeley.qfat.Mesh.Vertex)
+ System.err.println(m.times(m));
+ */
// FIXME: what if points do not fall on the merged constraint-line?
constraint = constraint.intersect(m.getAffineConstraint(epsilon), epsilon);
return;
}
+ // bg.master = m * master
+ // hbg = bg.getMatrix(hbg) * bg.master
+ // hbg = bg.getMatrix(hbg) * m * master
for(HasBindingGroup hbg : bg) {
matrices.put((T)hbg, bg.getMatrix((T)hbg).times(m));
hbg.bindingGroup = this;