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. ///