From 1d73ba7c8d0f5ba80569b07b15ce05a5287e333f Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Tue, 29 Mar 2022 10:48:29 +0200
Subject: [PATCH] PowertrainBuilder: Added Retarder in BuildVTP

---
 .../Models/Simulation/Impl/PowertrainBuilder.cs    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index c8f5a7cc27..5c12838f5e 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -159,9 +159,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		/// <code>
 		/// VTPCycle
 		/// └┬AxleGear
+		///  └┬(AxlegearInputRetarder)
+		///   └┬(Angledrive)
+		///    └┬(TransmissionOutputRetarder)
+		///     └┬VTPGearbox
+		///      └┬(TransmissionInputRetarder)
 		///  └┬Clutch
 		///   â””VTPCombustionEngine
-		///                      â””(Aux)
+		///                           â””(VTPTruckAuxiliaries or VTPBusAuxiliaries)
 		/// </code>
 		/// </summary>
 		private IVehicleContainer BuildVTP(VectoRunData data)
@@ -172,14 +177,19 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
 			var engine = new VTPCombustionEngine(container, data.EngineData, pt1Disabled: true);
+
 			new VTPCycle(container, data.Cycle)
 				.AddComponent(new AxleGear(container, data.AxleGearData))
+				.AddComponent(data.Retarder.Type == RetarderType.AxlegearInputRetarder ? new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio) : null)
 				.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
-				.AddComponent(new VTPGearbox(container, data), data.Retarder, container)
+				.AddComponent(data.Retarder.Type == RetarderType.TransmissionOutputRetarder ? new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio) : null)
+				.AddComponent(new VTPGearbox(container, data), container)
+				.AddComponent(data.Retarder.Type == RetarderType.TransmissionInputRetarder ? new Retarder(container, data.Retarder.LossMap, data.Retarder.Ratio) : null)
 				.AddComponent(new Clutch(container, data.EngineData))
 				.AddComponent(engine, new CombustionEngine.CombustionEngineNoDubleclutchIdleController(engine, container));
 
 			new ZeroMileageCounter(container);
+
 			if (data.VehicleData.VehicleCategory.IsLorry()) {
 				AddVTPTruckAuxiliaries(data, container, engine);
 			} else if (data.VehicleData.VehicleCategory.IsBus()) {
-- 
GitLab