/// <summary> /// Add the next value at the specified delta time. /// </summary> public void Add(double delta, B value) { switch (Values.Count) { case 0: Values.Add(value); Deltas.Add(delta); break; case 1: if (delta > Deltas[0]) { Values.Add(value); Deltas.Add(delta); } else { Values.Insert(value, 0); Deltas.Insert(delta, 0); } break; default: int index = Values.Count + 1; while (--index > 0) { if (Deltas[index] < delta) { Values.Insert(value, index); Deltas.Insert(delta, index); return; } if (Deltas[index].Equal(delta)) { Values[index] = value; return; } } break; } }