separated DistanceConstraint and HookeDistanceConstraint