Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/GeometryHelperTests.cs
===================================================================
diff -u -r4837 -r4866
--- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/GeometryHelperTests.cs (.../GeometryHelperTests.cs) (revision 4837)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/GeometryHelperTests.cs (.../GeometryHelperTests.cs) (revision 4866)
@@ -43,15 +43,15 @@
// Then
Assert.That(soilProfile2D.Geometry.Left, Is.EqualTo(-2).Within(cTolerance));
}
-
+
[Test]
public void GivenTwoLayerGeometryWhenExtendingRigthThenLeftBoundaryIsChanged()
{
// Given
SoilProfile2D soilProfile2D = FactoryForSoilProfiles.CreateSoilProfile2DWithTwoLayers();
// When
- GeometryHelper.ExtendGeometryLeft(soilProfile2D.Geometry, 12);
+ GeometryHelper.ExtendGeometryRight(soilProfile2D.Geometry, 12);
// Then
Assert.That(soilProfile2D.Geometry.Right, Is.EqualTo(12).Within(cTolerance));
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryHelper.cs
===================================================================
diff -u -r4837 -r4866
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryHelper.cs (.../GeometryHelper.cs) (revision 4837)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryHelper.cs (.../GeometryHelper.cs) (revision 4866)
@@ -64,17 +64,18 @@
geometry.Rebox();
geometry.Left = toX;
}
+
///
/// Extends the geometry right to the given value of x.
///
/// The geometry to extend
/// The x position to move the boundary to.
- private static void ExtendGeometryRight(GeometryData geometry, double toX)
+ public static void ExtendGeometryRight(GeometryData geometry, double toX)
{
- var rightPoints = geometry.GetRightPoints().OrderBy(x => x.Z).ToArray();
- var rightCurves = geometry.GetRightCurves();
+ Point2D[] rightPoints = geometry.GetRightPoints().OrderBy(x => x.Z).ToArray();
+ List rightCurves = geometry.GetRightCurves();
Point2D prevPoint = null;
- for (int i = 0; i < rightPoints.Length; i++)
+ for (var i = 0; i < rightPoints.Length; i++)
{
var newPoint = new Point2D(toX, rightPoints[i].Z);
geometry.Points.Add(newPoint);
@@ -85,19 +86,20 @@
var newVerticalCurve = new GeometryCurve(newPoint, prevPoint);
geometry.Curves.Add(newVerticalCurve);
}
+
prevPoint = newPoint;
}
- foreach (var geometryCurve in rightCurves)
+
+ foreach (GeometryCurve geometryCurve in rightCurves)
{
// check if curve is vertical, only then it is on the "old" boundary and needs to be deleted
if (Math.Abs(geometryCurve.HeadPoint.X - geometryCurve.EndPoint.X) < GeometryConstants.Accuracy)
{
geometry.DeleteCurve(geometryCurve, false);
}
}
+
geometry.Rebox();
geometry.Right = toX;
}
-
-
}
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryData.cs
===================================================================
diff -u -r4837 -r4866
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryData.cs (.../GeometryData.cs) (revision 4837)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryData.cs (.../GeometryData.cs) (revision 4866)
@@ -695,15 +695,13 @@
var leftCurves = new List();
foreach (GeometryCurve geometryCurve in Curves)
{
- if (geometryCurve.HeadPoint.X <= Left && geometryCurve.EndPoint.X >= Left)
+ if ((geometryCurve.HeadPoint.X <= Left && geometryCurve.EndPoint.X >= Left) ||
+ (geometryCurve.HeadPoint.X >= Left && geometryCurve.EndPoint.X <= Left))
{
leftCurves.Add(geometryCurve);
}
- else if (geometryCurve.HeadPoint.X >= Left && geometryCurve.EndPoint.X <= Left)
- {
- leftCurves.Add(geometryCurve);
- }
}
+
return leftCurves;
}
@@ -714,20 +712,18 @@
public List GetRightCurves()
{
var rightCurves = new List();
- foreach (var curve in Curves)
+ foreach (GeometryCurve curve in Curves)
{
- if (curve.HeadPoint.X <= Right && curve.EndPoint.X >= Right)
+ if ((curve.HeadPoint.X <= Right && curve.EndPoint.X >= Right) ||
+ (curve.HeadPoint.X >= Right && curve.EndPoint.X <= Right))
{
rightCurves.Add(curve);
}
- else if (curve.HeadPoint.X >= Right && curve.EndPoint.X <= Right)
- {
- rightCurves.Add(curve);
- }
}
+
return rightCurves;
}
-
+
///
/// Gets the geometry bounds.
///