} // end of DrawingSystem #endregion //-------------------------------------------------------------------------------------------------- // Methods //-------------------------------------------------------------------------------------------------- #region CreateModelVisualization /// <summary> /// Creates a visualization of a simulation model at a given time. For each control unit /// of the model it is checked if a BaseWPFControlUnitVisualizationEngine has been /// specified and if so it is used to create the dynamic visualization of the control. /// If not nothing is done for that control unit. /// </summary> /// <param name="currentTime">Time at which model should be visualized</param> /// <param name="simModel">Model to visualize</param> /// <param name="currentEvents">Currently triggered events in the model</param> public void CreateModelVisualization(DateTime currentTime, SimulationModel simModel, IEnumerable <Event> currentEvents) { AdditionalDynamicVisualization(currentTime); foreach (ControlUnit control in SimulationModel.ControlUnits.Values) { if (VisualizationPerControlUnit.ContainsKey(control)) { VisualizationPerControlUnit[control].VisualizeDynamicModel(currentTime, SimulationModel, control, currentEvents.Where(p => p.ParentControlUnit == control)); } } // end foreach } // end of CreateModelVisualization
} // end of CreateModelVisualization #endregion #region InitializeModelVisualizationAtTime // <summary> /// Initilializes the visualization, can be at start of simulation (e.g. static visualization), at re-enabling /// visualization during a visualization run or re-runs after completion. For each control unit /// of the model it is checked if a BaseWPFControlUnitVisualizationEngine has been /// specified and if so it is used to create the static visualization of the control. /// If not nothing is done for that control unit. /// </summary> /// <param name="initializeTime">The time the model is initialized</param> /// <param name="simulationModel">The model at the initilization time</param> public void InitializeModelVisualizationAtTime(DateTime initializeTime, SimulationModel simulationModel) { DrawingSystem.ClearSystem(); AdditionalStaticVisualization(initializeTime); foreach (ControlUnit control in SimulationModel.ControlUnits.Values) { if (VisualizationPerControlUnit.ContainsKey(control)) { VisualizationPerControlUnit[control].IntializeVisualizationAtTime(initializeTime, SimulationModel, control); } } // end foreach } // end of InitializeModelVisualizationAtTime