public override double GetValueAt(int time) { if (time < start || time >= start + length) { return(0); } else if (time < origin.GetLength() && time >= 0) { return(origin.GetValueAt(time)); } else { return((time < 0) ? -(time % length) : origin.GetLength() - 1 - (time - origin.GetLength()) % length); } }
public override double GetValueAt(int time) { return(origin.GetValueAt(time) * filter(time)); }