// 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) {
+ // FIXME
+ bindTo(bindingMatrix, other, 0.001f);
+ }
+ public void bindTo(Matrix bindingMatrix, HasBindingGroup other, float epsilon) {
if (bindingGroup == null) bindingGroup = new BindingGroup(this);
if (other.bindingGroup == null) other.bindingGroup = new BindingGroup(other);
getBindingMatrix().inverse()
.times(bindingMatrix)
.times(other.getBindingMatrix());
- other.bindingGroup.merge(bindingGroup, bindingMatrix);
+ other.bindingGroup.merge(bindingGroup, bindingMatrix, epsilon);
}
public int bindingGroupSize() {
if (bindingGroup==null) return;
bindingGroup.unbind(this);
bindingGroup = null;
- bindingGroupChanged(bindingGroup);
+ bindingGroupChanged();
}
public boolean isBoundTo(HasBindingGroup t) {
if (bindingGroup==null) bindingGroup = new BindingGroup(this);
return bindingGroup;
}
- public void bindingGroupChanged(BindingGroup newBindingGroup) { }
+ public void bindingGroupChanged() { }
}