Counteract numerical errors in distance constraint evaluation (drift).
With large steps in hair editing strokes the solution to distance-constrained hair displacement becomes inaccurate, leading to a gradual lengthening of strands. To counteract this the length constraints can enforce a velocity relative to the constant target length of each segment. This results in an overall constant length, even when the constraint solution is inaccurate for nonlinear constraints.
Note that the result would become much better with backward Euler integration, currently there is a noticable 1-step lag between strokes and the distance fix.
Full Hash: a70f3ee631b7f6f8f3e64febff3451b368a96ee1 Parent Commit: e37b91f Lines Changed: +25, -23