public Curve(IAnimator animator, int component, IAnimatorAdapter adapter, Color4 color) { Animator = animator; Component = component; Adapter = adapter; Color = color; }
static void CalcRange(IAnimator animator, IAnimatorAdapter adapter, out float minValue, out float maxValue) { minValue = float.MaxValue; maxValue = -float.MaxValue; for (int i = 0; i < adapter.ComponentCount; i++) { foreach (var k in animator.ReadonlyKeys) { var value = adapter.GetComponentValue(animator, AnimationUtils.FramesToSeconds(k.Frame), i); if (value < minValue) { minValue = value; } if (value > maxValue) { maxValue = value; } } } var range = maxValue - minValue; if (range < 1) { range = 1; } maxValue += range * 0.2f; minValue -= range * 0.2f; }