tp: Attempt to improve blending performance for short queues
tp: Attempt to improve blending performance for short queues

The major issue with blending on a short queue is that the TP can
potentially change active segments.

Example: The queue has two segments, and a parabolic blend between them.
the TP is currently moving along the first, when a 3rd segment is added.
If this 3rd segment can be arc blended with the 2nd, then the 2nd
segment will have to be shortened to accomodate. Since parabolic blend
velocity is calculated (in part) from the lengths of the segments,
suddenly shortening the 2nd segment could reduce the blend velocity
between segment 1 and 2.

My previous approach here was to simply disallow arc blending if the
previous segment was "active". However, we can be smarter about this.
Arc blending is restricted to 1/2 of the nomimal length of a segment. In
our above example, this means that we can trust the 2nd segment will
never be shorter than 50% of it's original length. Also, the "finalized"
flag tells the TP if the segment length is fixed yet.

The solution is simple: If a segment is not finalized, calculate the
parabolic blend velocity using only 50% of the segment. If it is, use
the whole thing.

This won't have a major effect on run times, but it will make short
programs behave more consistently. Why? Because we don't have to wait
for a minimum length queue before arc blending can kick in.

Signed-off-by: Robert W. Ellenberg <7cf60555c449d119e88c087cd5eb42ff6272cb3e@gmail.com>

araisrobo/machinekit,RunningLight/machinekit,strahlex/machinekit,mhaberler/machinekit,kinsamanka/machinekit,araisrobo/machinekit,mhaberler/machinekit,kinsamanka/machinekit,RunningLight/machinekit,RunningLight/machinekit,kinsamanka/machinekit,mhaberler/machinekit,unseenlaser/machinekit,ArcEye/MK-Qt5,ArcEye/MK-Qt5,unseenlaser/machinekit,mhaberler/machinekit,ArcEye/MK-Qt5,ArcEye/MK-Qt5,mhaberler/machinekit,kinsamanka/machinekit,mhaberler/machinekit,bobvanderlinden/machinekit,kinsamanka/machinekit,ArcEye/MK-Qt5,strahlex/machinekit,unseenlaser/machinekit,bobvanderlinden/machinekit,unseenlaser/machinekit,kinsamanka/machinekit,bobvanderlinden/machinekit,bobvanderlinden/machinekit,ArcEye/MK-Qt5,araisrobo/machinekit,mhaberler/machinekit,strahlex/machinekit,strahlex/machinekit,unseenlaser/machinekit,RunningLight/machinekit,bobvanderlinden/machinekit,araisrobo/machinekit,unseenlaser/machinekit,bobvanderlinden/machinekit,araisrobo/machinekit,bobvanderlinden/machinekit,araisrobo/machinekit,bobvanderlinden/machinekit,strahlex/machinekit,kinsamanka/machinekit,RunningLight/machinekit,unseenlaser/machinekit,strahlex/machinekit,RunningLight/machinekit,araisrobo/machinekit,kinsamanka/machinekit,ArcEye/MK-Qt5,araisrobo/machinekit,RunningLight/machinekit,strahlex/machinekit,araisrobo/machinekit,mhaberler/machinekit,ArcEye/MK-Qt5,RunningLight/machinekit,unseenlaser/machinekit