internal TrimmedAnimatable <T> TrimAnimatable <T>(Animatable <T> animatable)
     where T : IEquatable <T>
 {
     if (animatable.IsAnimated)
     {
         var trimmedKeyFrames = Optimizer.RemoveRedundantKeyFrames(Optimizer.TrimKeyFrames(animatable, StartTime, EndTime));
         return(new TrimmedAnimatable <T>(
                    this,
                    trimmedKeyFrames.Length == 0
                 ? animatable.InitialValue
                 : trimmedKeyFrames[0].Value,
                    trimmedKeyFrames));
     }
     else
     {
         return(new TrimmedAnimatable <T>(this, animatable.InitialValue, animatable.KeyFrames));
     }
 }