private void RecalculateCurves(object sender, RoutedEventArgs e) { var o = Car; var data = o.AcdData; if (data == null) { NonfatalError.Notify(ToolsStrings.Common_CannotDo_Title, "Data is damaged"); return; } Lut torque, power; try { torque = TorquePhysicUtils.LoadCarTorque(data); power = TorquePhysicUtils.TorqueToPower(torque); } catch (Exception ex) { NonfatalError.Notify(ToolsStrings.Common_CannotDo_Title, ex); return; } var dlg = new CarTransmissionLossSelector(o, torque.MaxY, power.MaxY); dlg.ShowDialog(); if (!dlg.IsResultOk) { return; } torque.TransformSelf(x => x.Y * dlg.Multipler); power.TransformSelf(x => x.Y * dlg.Multipler); o.SpecsTorqueCurve = new GraphData(torque); o.SpecsPowerCurve = new GraphData(power); if (ShowMessage(AppStrings.CarSpecs_CopyNewPowerAndTorque, AppStrings.Common_OneMoreThing, MessageBoxButton.YesNo, "copyNewPowerAndTorque") == MessageBoxResult.Yes) { // MaxY values were updated while creating new GraphData instances above var postfix = dlg.Multipler == 1d ? "*" : ""; TorqueInput.Text = Format(AppStrings.CarSpecs_Torque_FormatTooltip, torque.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)) + postfix; PowerInput.Text = Format(AppStrings.CarSpecs_Power_FormatTooltip, power.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)) + postfix; } }
private void RecalculateCurves(object sender, RoutedEventArgs e) { var dlg = new CarTransmissionLossSelector(Car); dlg.ShowDialog(); if (!dlg.IsResultOk) return; var lossMultipler = 100.0 / (100.0 - dlg.Value); Lut torque; try { torque = TorquePhysicUtils.LoadCarTorque(Car.AcdData); } catch (FileNotFoundException) { return; } torque.TransformSelf(x => x.Y * lossMultipler); var power = TorquePhysicUtils.TorqueToPower(torque); TorqueGraph = new GraphData(torque); PowerGraph = new GraphData(power); if (ShowMessage(AppStrings.CarSpecs_CopyNewPowerAndTorque, AppStrings.Common_OneMoreThing, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { // MaxY values were updated while creating new GraphData instances above TorqueInput.Text = Format(AppStrings.CarSpecs_Torque_FormatTooltip, torque.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)); PowerInput.Text = Format(AppStrings.CarSpecs_Power_FormatTooltip, power.MaxY.ToString(@"F0", CultureInfo.InvariantCulture)); } }