Resolves ppy/osu#1988.
Fixes #2093.
math is hard >_<
- use doubles instead of floats - simplify logic
- FadeIn and -Out for RepeatPoints are now calculated instead of fixed values - TimePreempt is now cut down if too long for RepeatPoints following the first one to only show up to two RepeatPoints at any given time
It's always first but not strictly guaranteed anywhere yet.
PositionAt is clamped to [0, 1] where 0 denotes the beginning of the curve and 1 denotes the end of the curve. It has no concept of repeats.
silly me, that was configured for vitaru!