/// <summary> /// Steps one step backward /// </summary> public void StepBack() { Changed = true; while (Events.Count > 0) { ModelEvent evt = Events.Last(); if (evt.Time < CurrentTime) { CurrentTime = evt.Time; break; } evt.RollBack(Runner); Events.Remove(evt); } if (Events.Count == 0) { CurrentTime = 0.0; } }
/// <summary> /// Steps one step backward /// </summary> /// <param name="time">the time to step back</param> public void StepBack(double time) { currentTime = currentTime - time; if (currentTime < 0) { currentTime = 0; } while (Events.Count > 0) { ModelEvent evt = Events.Last(); if (evt.Time < currentTime) { break; } else { evt.RollBack(); Events.Remove(evt); } } }