From eb18f34bf7394b9e6f8d08c817f4a5f03fbc60f6 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Mon, 4 Jul 2016 16:28:41 +0200
Subject: [PATCH] added semitrailer weights

---
 VectoCore/VectoCore/Models/Declaration/Segments.cs     |  7 +++++++
 .../VectoCore/Models/Declaration/StandardWeights.cs    | 10 ++++++++++
 2 files changed, 17 insertions(+)

diff --git a/VectoCore/VectoCore/Models/Declaration/Segments.cs b/VectoCore/VectoCore/Models/Declaration/Segments.cs
index 81045618de..e7a939f03e 100644
--- a/VectoCore/VectoCore/Models/Declaration/Segments.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Segments.cs
@@ -114,6 +114,13 @@ namespace TUGraz.VectoCore.Models.Declaration
 					? DeclarationData.StandardWeights.Lookup(row.Field<string>("trailer"))
 					: DeclarationData.StandardWeights.Empty;
 
+				var semiTrailerField = row.Field<string>("semitrailer");
+				var semiTrailer = !string.IsNullOrWhiteSpace(semiTrailerField)
+					? DeclarationData.StandardWeights.Lookup(semiTrailerField)
+					: DeclarationData.StandardWeights.Empty;
+
+				trailer += semiTrailer;
+
 				// limit gvw to MaxGVW (40t)
 				var gvw = VectoMath.Min(grossVehicleWeight + trailer.GrossVehicleWeight,
 					Constants.SimulationSettings.MaximumGrossVehicleWeight);
diff --git a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
index 913391e98d..44e0c52124 100644
--- a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
+++ b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
@@ -29,6 +29,7 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System.CodeDom;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
@@ -49,6 +50,15 @@ namespace TUGraz.VectoCore.Models.Declaration
 		}
 
 		public SquareMeter DeltaCrossWindArea;
+
+		public static StandardWeight operator +(StandardWeight first, StandardWeight second)
+		{
+			return new StandardWeight {
+				CurbWeight = first.CurbWeight + second.CurbWeight,
+				DeltaCrossWindArea = first.DeltaCrossWindArea + second.DeltaCrossWindArea,
+				GrossVehicleWeight = first.GrossVehicleWeight + second.GrossVehicleWeight
+			};
+		}
 	}
 
 	/// <summary>
-- 
GitLab