private float Derive(float t, float duration, AnimationCurve curve) { switch (diffType) { case DifferenceType.Backward: return(DerivativeHelpers.BackwardDerivative(t, duration, curve.Evaluate)); case DifferenceType.Forward: return(DerivativeHelpers.ForwardDerivative(t, duration, curve.Evaluate)); case DifferenceType.Central: return(DerivativeHelpers.CentralDerivative(t, duration, curve.Evaluate)); case DifferenceType.Symmetric: default: return(DerivativeHelpers.SymmetricDerivative(t, duration, curve.Evaluate)); } }