private MotionSetpoint Get(double time) { try { return m_path[(int) (time/m_dt)]; } catch (ArgumentOutOfRangeException) { return time < 0 ? m_path.First() : m_path.Last(); } }