private void plotExperience(int _mode, int indexOfSelection) { ExperienceUnit unit = user.Experiences[user.Index[indexOfSelection]]; List <SimulatedVehicle> list = unit.Vehicles; speed.addRealTimePoint(-1, new Point(0, unit.Top.Speed)); offset.addRealTimePoint(-1, new Point(0, unit.Top.Offset)); accelerate.addRealTimePoint(-1, new Point(0, unit.Top.Acceleration)); brake.addRealTimePoint(-1, new Point(0, unit.Top.BrakePedal)); follow.addRealTimePoint(-1, new Point(0, unit.Top.DistanceToNext)); speed.addRealTimePoint(-1, new Point(0, unit.Bottom.Speed)); offset.addRealTimePoint(-1, new Point(0, unit.Bottom.Offset)); accelerate.addRealTimePoint(-1, new Point(0, unit.Bottom.Acceleration)); brake.addRealTimePoint(-1, new Point(0, unit.Bottom.BrakePedal)); follow.addRealTimePoint(-1, new Point(0, unit.Bottom.DistanceToNext)); speed.addRealTimePoint(-1, new Point(unit.Right.SimulationTime, 0)); offset.addRealTimePoint(-1, new Point(unit.Right.SimulationTime, 0)); accelerate.addRealTimePoint(-1, new Point(unit.Right.SimulationTime, 0)); brake.addRealTimePoint(-1, new Point(unit.Right.SimulationTime, 0)); follow.addRealTimePoint(-1, new Point(unit.Right.SimulationTime, 0)); foreach (SimulatedVehicle vehicle in list) { speed.addRealTimePoint(_mode, new Point(vehicle.SimulationTime, vehicle.Speed)); offset.addRealTimePoint(_mode, new Point(vehicle.SimulationTime, vehicle.Offset)); accelerate.addRealTimePoint(_mode, new Point(vehicle.SimulationTime, vehicle.Acceleration)); brake.addRealTimePoint(_mode, new Point(vehicle.SimulationTime, vehicle.BrakePedal)); follow.addRealTimePoint(_mode, new Point(vehicle.SimulationTime, vehicle.DistanceToNext)); } }
private void plotExperienceLine(int scene, int mode, LinePlotter plotter, string variable, int xAxis) { int index = UserSelections.getIndex(scene, mode); if (user.Index[index] == -1) { return; } Dispatcher dispatcher = PageList.Main.Dispatcher; ExperienceUnit unit = user.Experiences[user.Index[index]]; List <SimulatedVehicle> list = unit.Vehicles; plotter.Init.AppendAsync(dispatcher, new Point(0, (float)unit.Top.GetType().GetProperty(variable).GetValue(unit.Top))); plotter.Init.AppendAsync(dispatcher, new Point(0, (float)unit.Bottom.GetType().GetProperty(variable).GetValue(unit.Bottom))); switch (xAxis) { case 0: plotter.Init.AppendAsync(dispatcher, new Point(unit.Right.SimulationTime, 0)); break; case 1: plotter.Init.AppendAsync(dispatcher, new Point(unit.Right.TotalDistance, 0)); break; default: return; } foreach (SimulatedVehicle vehicle in list) { float x; switch (xAxis) { case 0: x = vehicle.SimulationTime; break; case 1: x = vehicle.TotalDistance; break; default: return; } plotter.addRealTimePoint(mode, new Point(x, (float)vehicle.GetType().GetProperty(variable).GetValue(vehicle))); } }