/// <summary> /// Sets a state and fills the network with water /// </summary> /// <param name="stateID"></param> /// <param name="CurrentTime"></param> public void SetState(string stateID, DateTime CurrentTime, IWaterPacket WaterTypeToFillWith) { this.CurrentTime = CurrentTime; StateIds.Add(stateID); if (StateIds.Count == 1) { SimulationStartTime = CurrentTime; } foreach (IWaterBody IW in _waterBodies) { IW.SetState(stateID, CurrentTime, WaterTypeToFillWith.DeepClone(IW.Volume)); } }
/// <summary> /// Sets the state. Also stores the state. If the state name already exists it will be overwritten /// </summary> /// <param name="StateName"></param> /// <param name="Time"></param> /// <param name="WaterInStream"></param> public void SetState(string StateName, DateTime Time, IWaterPacket WaterInStream) { var state = new Tuple <DateTime, IWaterPacket>(Time, WaterInStream.DeepClone()); if (_states.ContainsKey(StateName)) { _states[StateName] = state; } else { _states.Add(StateName, state); } RestoreState(StateName); }
/// <summary> /// Sets the state. Also stores the state. I /// </summary> /// <param name="StateName"></param> /// <param name="Time"></param> /// <param name="WaterInStream"></param> public void SetState(string StateName, DateTime Time, IWaterPacket WaterInStream) { Queue <IWaterPacket> _water = new Queue <IWaterPacket>(); _water.Enqueue(WaterInStream.DeepClone()); Tuple <DateTime, Queue <IWaterPacket> > state = new Tuple <DateTime, Queue <IWaterPacket> >(Time, _water); if (_states.ContainsKey(StateName)) { _states[StateName] = state; } else { _states.Add(StateName, state); } RestoreState(StateName); }
/// <summary> /// Sets the state. Also stores the state. I /// </summary> /// <param name="StateName"></param> /// <param name="Time"></param> /// <param name="WaterInStream"></param> public void SetState(string StateName, DateTime Time, IWaterPacket WaterInStream) { Queue<IWaterPacket> _water = new Queue<IWaterPacket>(); _water.Enqueue(WaterInStream.DeepClone()); Tuple<DateTime, Queue<IWaterPacket>> state = new Tuple<DateTime, Queue<IWaterPacket>>(Time, _water); if (_states.ContainsKey(StateName)) _states[StateName] = state; else _states.Add(StateName, state); RestoreState(StateName); }
/// <summary> /// Sets a state and fills the network with water /// </summary> /// <param name="stateID"></param> /// <param name="CurrentTime"></param> public void SetState(string stateID, DateTime CurrentTime, IWaterPacket WaterTypeToFillWith) { this.CurrentTime = CurrentTime; StateIds.Add(stateID); if (StateIds.Count == 1) SimulationStartTime = CurrentTime; foreach (IWaterBody IW in _waterBodies) IW.SetState(stateID, CurrentTime, WaterTypeToFillWith.DeepClone(IW.Volume)); }
/// <summary> /// Sets the state. Also stores the state. If the state name already exists it will be overwritten /// </summary> /// <param name="StateName"></param> /// <param name="Time"></param> /// <param name="WaterInStream"></param> public void SetState(string StateName, DateTime Time, IWaterPacket WaterInStream) { var state = new Tuple<DateTime,IWaterPacket>(Time,WaterInStream.DeepClone()); if (_states.ContainsKey(StateName)) _states[StateName] = state; else _states.Add(StateName, state); RestoreState(StateName); }