+
+ public void bindingGroupChanged(edu.berkeley.qfat.geom.BindingGroup newBindingGroup_) {
+ edu.berkeley.qfat.geom.BindingGroup<E> newBindingGroup = (edu.berkeley.qfat.geom.BindingGroup<E>)newBindingGroup_;
+ if (newBindingGroup==null) return;
+ if (this==newBindingGroup.getMaster()) return;
+ for(E eother : (Iterable<E>)newBindingGroup) {
+ this.next.bindTo(newBindingGroup.getMatrix(eother), eother.next);
+ this.prev.bindTo(newBindingGroup.getMatrix(eother), eother.prev);
+ }
+ }
+
+ public float stretchRatio() {
+ Vertex nearest = error_against.nearest(midpoint());
+ float nearest_distance = midpoint().distance(nearest.p);
+ float other_distance =
+ (p1.p.distance(error_against.nearest(p1.p).p)+
+ p2.p.distance(error_against.nearest(p2.p).p))/2;
+ return nearest_distance/other_distance;
+ }