Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfileUnderSurfaceLineFactory.cs =================================================================== diff -u -r376649a985f9523e6ecac956b3abd39ed1a64369 -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfileUnderSurfaceLineFactory.cs (.../SoilProfileUnderSurfaceLineFactory.cs) (revision 376649a985f9523e6ecac956b3abd39ed1a64369) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfileUnderSurfaceLineFactory.cs (.../SoilProfileUnderSurfaceLineFactory.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -51,7 +51,7 @@ { throw new ArgumentNullException(nameof(surfaceLine)); } - Point2D[] localizedSurfaceLine = surfaceLine.ProjectGeometryToLZ().ToArray(); + Point2D[] localizedSurfaceLine = surfaceLine.LocalGeometry.ToArray(); IEnumerable surfaceLineGeometry = CreateSurfaceLineAreaToDepth(localizedSurfaceLine, soilProfile.Bottom); IEnumerable layerGeometries = soilProfile.Layers.Select(l => As2DGeometry(l, soilProfile, localizedSurfaceLine.First().X, localizedSurfaceLine.Last().X)); Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs =================================================================== diff -u -rd47809e3a8fadff2be5b10056b79b16dc27eeca2 -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs (.../MacroStabilityInwardsChartDataPointsFactory.cs) (revision d47809e3a8fadff2be5b10056b79b16dc27eeca2) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs (.../MacroStabilityInwardsChartDataPointsFactory.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -42,7 +42,7 @@ /// An array of points in 2D space or an empty array when is null. public static Point2D[] CreateSurfaceLinePoints(RingtoetsMacroStabilityInwardsSurfaceLine surfaceLine) { - return surfaceLine?.ProjectGeometryToLZ().ToArray() ?? new Point2D[0]; + return surfaceLine?.LocalGeometry.ToArray() ?? new Point2D[0]; } /// @@ -70,7 +70,7 @@ return Enumerable.Empty(); } - Point2D[] surfaceLineLocalGeometry = surfaceLine.ProjectGeometryToLZ().ToArray(); + Point2D[] surfaceLineLocalGeometry = surfaceLine.LocalGeometry.ToArray(); if (IsSurfaceLineAboveSoilLayer(surfaceLineLocalGeometry, soilLayer)) { Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Primitives/RingtoetsMacroStabilityInwardsSurfaceLine.cs =================================================================== diff -u -rdf853f988ad99b935860c361bc000f6aba9876a7 -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Primitives/RingtoetsMacroStabilityInwardsSurfaceLine.cs (.../RingtoetsMacroStabilityInwardsSurfaceLine.cs) (revision df853f988ad99b935860c361bc000f6aba9876a7) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Primitives/RingtoetsMacroStabilityInwardsSurfaceLine.cs (.../RingtoetsMacroStabilityInwardsSurfaceLine.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -40,7 +40,6 @@ public class RingtoetsMacroStabilityInwardsSurfaceLine : Observable, IMechanismSurfaceLine { private const int numberOfDecimalPlaces = 2; - private Point2D[] localGeometry; /// /// Initializes a new instance of the class. @@ -49,7 +48,7 @@ { Name = string.Empty; Points = new Point3D[0]; - localGeometry = new Point2D[0]; + LocalGeometry = new RoundedPoint2DCollection(2, new Point2D[0]); } /// @@ -159,13 +158,7 @@ /// /// Gets the 2D points describing the local geometry of the surface line. /// - public IEnumerable LocalGeometry - { - get - { - return localGeometry; - } - } + public RoundedPoint2DCollection LocalGeometry { get; private set; } /// /// Sets the geometry of the surface line. @@ -191,7 +184,7 @@ EndingWorldPoint = Points[Points.Length - 1]; } - localGeometry = ProjectGeometryToLZ().ToArray(); + LocalGeometry = new RoundedPoint2DCollection(numberOfDecimalPlaces, Points.ProjectToLZ().ToArray()); } /// @@ -438,9 +431,9 @@ } var segments = new Collection(); - for (var i = 1; i < localGeometry.Length; i++) + for (var i = 1; i < LocalGeometry.Count(); i++) { - segments.Add(new Segment2D(localGeometry[i - 1], localGeometry[i])); + segments.Add(new Segment2D(LocalGeometry.ElementAt(i - 1), LocalGeometry.ElementAt(i))); } IEnumerable intersectionPoints = Math2D.SegmentsIntersectionWithVerticalLine(segments, l).OrderBy(p => p.Y).ToArray(); @@ -458,34 +451,6 @@ } /// - /// Projects the points in to localized coordinate (LZ-plane) system. - /// Z-values are retained, and the first point is put a L=0. - /// - /// Collection of 2D points in the LZ-plane. - public RoundedPoint2DCollection ProjectGeometryToLZ() - { - int count = Points.Length; - if (count == 0) - { - return new RoundedPoint2DCollection(numberOfDecimalPlaces, Enumerable.Empty()); - } - - Point3D first = Points.First(); - if (count == 1) - { - return new RoundedPoint2DCollection(numberOfDecimalPlaces, new[] - { - new Point2D(0.0, first.Z) - }); - } - - Point3D last = Points.Last(); - var firstPoint = new Point2D(first.X, first.Y); - var lastPoint = new Point2D(last.X, last.Y); - return new RoundedPoint2DCollection(numberOfDecimalPlaces, Points.Select(p => p.ProjectIntoLocalCoordinates(firstPoint, lastPoint))); - } - - /// /// Checks whether is in range of the geometry projected in local coordinate system /// where the points are ordered on the L-coordinate being monotonically non-decreasing. /// Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs =================================================================== diff -u -rd47809e3a8fadff2be5b10056b79b16dc27eeca2 -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs (.../MacroStabilityInwardsChartDataPointsFactoryTest.cs) (revision d47809e3a8fadff2be5b10056b79b16dc27eeca2) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs (.../MacroStabilityInwardsChartDataPointsFactoryTest.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -52,7 +52,7 @@ Point2D[] points = MacroStabilityInwardsChartDataPointsFactory.CreateSurfaceLinePoints(surfaceLine); // Assert - AssertEqualPointCollections(surfaceLine.ProjectGeometryToLZ(), points); + AssertEqualPointCollections(surfaceLine.LocalGeometry, points); } [Test] Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsInputViewTest.cs =================================================================== diff -u -rd47809e3a8fadff2be5b10056b79b16dc27eeca2 -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsInputViewTest.cs (.../MacroStabilityInwardsInputViewTest.cs) (revision d47809e3a8fadff2be5b10056b79b16dc27eeca2) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsInputViewTest.cs (.../MacroStabilityInwardsInputViewTest.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -816,7 +816,7 @@ Assert.IsInstanceOf(chartData); var soilProfileChartData = (ChartDataCollection) chartData; - MacroStabilityInwardsSoilProfile1D soilProfile = stochasticSoilProfile.SoilProfile as MacroStabilityInwardsSoilProfile1D; + var soilProfile = stochasticSoilProfile.SoilProfile as MacroStabilityInwardsSoilProfile1D; Assert.NotNull(soilProfile); int expectedLayerCount = soilProfile.Layers.Count(); Assert.AreEqual(expectedLayerCount, soilProfileChartData.Collection.Count()); @@ -840,7 +840,7 @@ var surfaceLineChartData = (ChartLineData) chartData; Assert.AreEqual(surfaceLine.Points.Length, surfaceLineChartData.Points.Length); - CollectionAssert.AreEqual(surfaceLine.ProjectGeometryToLZ(), surfaceLineChartData.Points); + CollectionAssert.AreEqual(surfaceLine.LocalGeometry, surfaceLineChartData.Points); Assert.AreEqual(surfaceLine.Name, chartData.Name); } } Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingtoetsMacroStabilityInwardsSurfaceLineTest.cs =================================================================== diff -u -rec27d9f02dc27c2829ed45788fae7d5923d63d3d -r6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingtoetsMacroStabilityInwardsSurfaceLineTest.cs (.../RingtoetsMacroStabilityInwardsSurfaceLineTest.cs) (revision ec27d9f02dc27c2829ed45788fae7d5923d63d3d) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Primitives.Test/RingtoetsMacroStabilityInwardsSurfaceLineTest.cs (.../RingtoetsMacroStabilityInwardsSurfaceLineTest.cs) (revision 6483bd7c2aef66cc8ae0879ba2b2b261aa0cb32a) @@ -28,7 +28,6 @@ using Core.Common.TestUtil; using Core.Common.Utils; using NUnit.Framework; -using Ringtoets.Common.Data.TestUtil; using Ringtoets.MacroStabilityInwards.Primitives.Exceptions; namespace Ringtoets.MacroStabilityInwards.Primitives.Test @@ -129,71 +128,6 @@ } [Test] - public void ProjectGeometryToLZ_EmptyCollection_ReturnEmptyCollection() - { - // Setup - var surfaceLine = new RingtoetsMacroStabilityInwardsSurfaceLine(); - - // Call - RoundedPoint2DCollection lzCoordinates = surfaceLine.ProjectGeometryToLZ(); - - // Assert - CollectionAssert.IsEmpty(lzCoordinates); - Assert.AreEqual(2, lzCoordinates.NumberOfDecimalPlaces); - } - - [Test] - public void ProjectGeometryToLZ_GeometryWithOnePoint_ReturnSinglePointAtZeroXAndOriginalZ() - { - // Setup - var surfaceLine = new RingtoetsMacroStabilityInwardsSurfaceLine(); - const double originalZ = 3.3; - surfaceLine.SetGeometry(new[] - { - new Point3D(1.1, 2.2, originalZ) - }); - - // Call - RoundedPoint2DCollection lzCoordinates = surfaceLine.ProjectGeometryToLZ(); - - // Assert - CollectionAssert.AreEqual(new[] - { - new Point2D(0.0, originalZ) - }, lzCoordinates); - Assert.AreEqual(2, lzCoordinates.NumberOfDecimalPlaces); - } - - [Test] - public void ProjectGeometryToLZ_GeometryWithMultiplePoints_ProjectPointsOntoLzPlaneKeepingOriginalZ() - { - // Setup - var surfaceLine = new RingtoetsMacroStabilityInwardsSurfaceLine(); - surfaceLine.SetGeometry(new[] - { - new Point3D(1.0, 1.0, 2.2), - new Point3D(2.0, 3.0, 4.4), // Outlier from line specified by extrema - new Point3D(3.0, 4.0, 7.7) - }); - - // Call - RoundedPoint2DCollection actual = surfaceLine.ProjectGeometryToLZ(); - - // Assert - double length = Math.Sqrt(2 * 2 + 3 * 3); - const double secondCoordinateFactor = (2.0 * 1.0 + 3.0 * 2.0) / (2.0 * 2.0 + 3.0 * 3.0); - var expectedCoordinatesX = new[] - { - 0.0, - secondCoordinateFactor * length, - length - }; - CollectionAssert.AreEqual(expectedCoordinatesX, actual.Select(p => p.X).ToArray(), new DoubleWithToleranceComparer(actual.GetAccuracy())); - CollectionAssert.AreEqual(surfaceLine.Points.Select(p => p.Z).ToArray(), actual.Select(p => p.Y).ToArray()); - Assert.AreEqual(2, actual.NumberOfDecimalPlaces); - } - - [Test] public void SetGeometry_GeometryIsNull_ThrowsArgumentNullException() { // Setup