Skip to content

Commit 53d647d

Browse files
committed
Added Length Parameter and Geometry comparison to Plausability Check
1 parent 277624f commit 53d647d

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

TRA.Lib/TrassenElementExt.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ public class TrassenElementExt : TrassenElement
113113
/// <value>Hochwert am Elementanfang</value>
114114
public double Xstart { get { return x; } }
115115
/// <value>Rechtswert am Elementende</value>
116-
public double Yend { get { return successor.y; } }
116+
public double Yend { get { return successor != null ? successor.y : y; } }
117117
/// <value>Hochwert am Elementende</value>
118-
public double Xend { get { return successor.x; } }
118+
public double Xend { get { return successor != null ? successor.x : x; } }
119119
/// <value>Station am Elementanfang</value>
120120
public double S { get { return s; } }
121121
/// <value>Länge des Elements</value>
@@ -191,7 +191,7 @@ public void Relocate(double x, double y, double deltaGamma = double.NaN, double
191191
if (!double.IsNaN(deltaK_start))
192192
{
193193
// TODO decide if we need to change the length and if yes, do we want to update the stationvalues s
194-
l = l; //* (deltaK_start + deltaK_end) / 2;
194+
l = l;// * (deltaK_start + deltaK_end) / 2;
195195
if (Double.IsNaN(deltaK_end)) { deltaK_end = deltaK_start; }
196196
switch (this.TrassenGeometrie)
197197
{
@@ -214,6 +214,8 @@ public void Relocate(double x, double y, double deltaGamma = double.NaN, double
214214
/// </summary>
215215
public bool PlausibilityCheck(bool bCheckRadii = false)
216216
{
217+
double tolerance = 1e-8;
218+
217219
WarningCallouts.Clear();
218220
//Radii
219221
if (kz == Trassenkennzeichen.Gerade && r1 != 0 & r2 != 0) { AddWarningCallout("given Radii are not matching to KZ as it is 'Gerade''", Xstart, Ystart); }
@@ -227,8 +229,13 @@ public bool PlausibilityCheck(bool bCheckRadii = false)
227229
{
228230
if (s + l != successor.s) { AddWarningCallout("length missmatch. element is not connected to successor", Xend, Yend); }
229231
}
230-
//Connectivity & continuity by Interpolation
231-
double tolerance = 0.00000001;
232+
//Length and geomtrical Length Check
233+
if(TrassenGeometrie is Gerade)
234+
{
235+
double geoL = Math.Sqrt(Math.Pow(Xend-Xstart,2)+Math.Pow(Yend-Ystart,2));
236+
if (Math.Abs(l- geoL)>tolerance) { AddWarningCallout("length missmatch. elements Length parameter, does not match to Geometry by " + (l - geoL), Xstart, Ystart); }
237+
}
238+
//Connectivity & continuity by Interpolation
232239
if (Interpolation.X?.Length > 0 && successor != null)
233240
{
234241
//Connectivity

0 commit comments

Comments
 (0)