Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataFactory.cs
===================================================================
diff -u -r6168b610057e59ea1ae81d7474ec799a494297bd -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataFactory.cs (.../MacroStabilityInwardsChartDataFactory.cs) (revision 6168b610057e59ea1ae81d7474ec799a494297bd)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataFactory.cs (.../MacroStabilityInwardsChartDataFactory.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -260,6 +260,22 @@
}
///
+ /// Create a for the slices in a slip plane.
+ ///
+ /// The created .
+ public static ChartMultipleAreaData CreateSlicesChartData()
+ {
+ return new ChartMultipleAreaData(Resources.Slices_DisplayName,
+ new ChartAreaStyle
+ {
+ FillColor = Color.Empty,
+ StrokeColor = Color.DarkGreen,
+ StrokeThickness = 2,
+ IsEditable = true
+ });
+ }
+
+ ///
/// Updates the name of based on .
///
/// The to update the name for.
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs
===================================================================
diff -u -r6168b610057e59ea1ae81d7474ec799a494297bd -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs (.../MacroStabilityInwardsChartDataPointsFactory.cs) (revision 6168b610057e59ea1ae81d7474ec799a494297bd)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Factories/MacroStabilityInwardsChartDataPointsFactory.cs (.../MacroStabilityInwardsChartDataPointsFactory.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -398,6 +398,28 @@
};
}
+ ///
+ /// Create areas of the slices based on the provided .
+ ///
+ /// The slices to create the areas for.
+ /// A collection of arrays of points in 2D space or an empty collection when
+ /// is null.
+ public static IEnumerable CreateSliceAreas(IEnumerable slices)
+ {
+ if (slices == null)
+ {
+ return Enumerable.Empty();
+ }
+
+ return slices.Select(slice => new[]
+ {
+ slice.TopLeftPoint,
+ slice.TopRightPoint,
+ slice.BottomRightPoint,
+ slice.BottomLeftPoint
+ });
+ }
+
#region SoilLayers and Surface Line Helpers
private static Point2D[] GetLocalPointsFromGeometry(MacroStabilityInwardsSurfaceLine surfaceLine,
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -r365f33fe0130eac94cacb979165488d9ae124f3c -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 365f33fe0130eac94cacb979165488d9ae124f3c)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -1454,6 +1454,15 @@
}
///
+ /// Looks up a localized string similar to Lamellen.
+ ///
+ public static string Slices_DisplayName {
+ get {
+ return ResourceManager.GetString("Slices_DisplayName", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Glijvlak.
///
public static string SlipPlane_DisplayName {
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.resx
===================================================================
diff -u -r365f33fe0130eac94cacb979165488d9ae124f3c -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.resx (.../Resources.resx) (revision 365f33fe0130eac94cacb979165488d9ae124f3c)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Properties/Resources.resx (.../Resources.resx) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -733,4 +733,7 @@
Lamel {0}
+
+ Lamellen
+
\ No newline at end of file
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputChartControl.cs
===================================================================
diff -u -r6168b610057e59ea1ae81d7474ec799a494297bd -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputChartControl.cs (.../MacroStabilityInwardsOutputChartControl.cs) (revision 6168b610057e59ea1ae81d7474ec799a494297bd)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputChartControl.cs (.../MacroStabilityInwardsOutputChartControl.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -44,6 +44,7 @@
private readonly ChartDataCollection soilProfileChartData;
private readonly ChartDataCollection waternetZonesExtremeChartData;
private readonly ChartDataCollection waternetZonesDailyChartData;
+ private readonly ChartMultipleAreaData slicesChartData;
private readonly ChartLineData surfaceLineChartData;
private readonly ChartPointData surfaceLevelInsideChartData;
private readonly ChartPointData ditchPolderSideChartData;
@@ -105,6 +106,7 @@
slipPlaneChartData = MacroStabilityInwardsChartDataFactory.CreateSlipPlaneChartData();
leftCircleRadiusChartData = MacroStabilityInwardsChartDataFactory.CreateActiveCircleRadiusChartData();
rightCircleRadiusChartData = MacroStabilityInwardsChartDataFactory.CreatePassiveCircleRadiusChartData();
+ slicesChartData = MacroStabilityInwardsChartDataFactory.CreateSlicesChartData();
chartDataCollection.Add(soilProfileChartData);
chartDataCollection.Add(surfaceLineChartData);
@@ -124,6 +126,7 @@
chartDataCollection.Add(waternetZonesDailyChartData);
chartDataCollection.Add(leftGridChartData);
chartDataCollection.Add(rightGridChartData);
+ chartDataCollection.Add(slicesChartData);
chartDataCollection.Add(slipPlaneChartData);
chartDataCollection.Add(leftCircleRadiusChartData);
chartDataCollection.Add(rightCircleRadiusChartData);
@@ -185,6 +188,7 @@
slipPlaneChartData.Points = MacroStabilityInwardsChartDataPointsFactory.CreateSlipPlanePoints(output?.SlidingCurve);
leftCircleRadiusChartData.Points = MacroStabilityInwardsChartDataPointsFactory.CreateLeftCircleRadiusPoints(output?.SlidingCurve);
rightCircleRadiusChartData.Points = MacroStabilityInwardsChartDataPointsFactory.CreateRightCircleRadiusPoints(output?.SlidingCurve);
+ slicesChartData.Areas = MacroStabilityInwardsChartDataPointsFactory.CreateSliceAreas(output?.SlidingCurve.Slices);
}
private void UpdateInputChartData()
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs
===================================================================
diff -u -r5d98c3072517f99bfc6f05a363ea5cf4d6025bd8 -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs (.../MacroStabilityInwardsChartDataFactoryTest.cs) (revision 5d98c3072517f99bfc6f05a363ea5cf4d6025bd8)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataFactoryTest.cs (.../MacroStabilityInwardsChartDataFactoryTest.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -289,6 +289,18 @@
}
[Test]
+ public void CreateSlicesChartData_ReturnsChartMultipleAreaData()
+ {
+ // Call
+ ChartMultipleAreaData data = MacroStabilityInwardsChartDataFactory.CreateSlicesChartData();
+
+ // Assert
+ CollectionAssert.IsEmpty(data.Areas);
+ Assert.AreEqual("Lamellen", data.Name);
+ AssertEqualStyle(data.Style, Color.Empty, Color.DarkGreen, 2, true);
+ }
+
+ [Test]
public void UpdateSurfaceLineChartDataName_SurfaceLineNull_NameSetToDefaultSurfaceLineName()
{
// Setup
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs
===================================================================
diff -u -r6168b610057e59ea1ae81d7474ec799a494297bd -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs (.../MacroStabilityInwardsChartDataPointsFactoryTest.cs) (revision 6168b610057e59ea1ae81d7474ec799a494297bd)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Factories/MacroStabilityInwardsChartDataPointsFactoryTest.cs (.../MacroStabilityInwardsChartDataPointsFactoryTest.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -1400,6 +1400,60 @@
CollectionAssert.AreEqual(points, line);
}
+ [Test]
+ public void CreateSliceAreas_SlicesNull_ReturnsEmptyCollection()
+ {
+ // Call
+ IEnumerable areas = MacroStabilityInwardsChartDataPointsFactory.CreateSliceAreas(null);
+
+ // Assert
+ CollectionAssert.IsEmpty(areas);
+ }
+
+ [Test]
+ public void CreateSliceAreas_WithSlices_ReturnsAreas()
+ {
+ // Setup
+ var expectedAreas = new[]
+ {
+ new[]
+ {
+ new Point2D(0, 1),
+ new Point2D(1, 1),
+ new Point2D(1, 0),
+ new Point2D(0, 0)
+ },
+ new[]
+ {
+ new Point2D(3, 4),
+ new Point2D(4, 4),
+ new Point2D(4, 3),
+ new Point2D(3, 3)
+ }
+ };
+
+ var slices =
+ new[]
+ {
+ new MacroStabilityInwardsSlice(new Point2D(0, 1),
+ new Point2D(1, 1),
+ new Point2D(0, 0),
+ new Point2D(1, 0),
+ new MacroStabilityInwardsSlice.ConstructionProperties()),
+ new MacroStabilityInwardsSlice(new Point2D(3, 4),
+ new Point2D(4, 4),
+ new Point2D(3, 3),
+ new Point2D(4, 3),
+ new MacroStabilityInwardsSlice.ConstructionProperties())
+ };
+
+ // Call
+ IEnumerable areas = MacroStabilityInwardsChartDataPointsFactory.CreateSliceAreas(slices);
+
+ // Assert
+ CollectionAssert.AreEqual(expectedAreas, areas);
+ }
+
private static MacroStabilityInwardsWaternetLine CreateWaternetLine(IEnumerable waternetLineGeometry,
IEnumerable phreaticLineGeometry)
{
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.TestUtil/MacroStabilityInwardsOutputViewChartDataAssert.cs
===================================================================
diff -u -r6168b610057e59ea1ae81d7474ec799a494297bd -rcac3045aae8af73cbc3602a1c38b071385aa3581
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.TestUtil/MacroStabilityInwardsOutputViewChartDataAssert.cs (.../MacroStabilityInwardsOutputViewChartDataAssert.cs) (revision 6168b610057e59ea1ae81d7474ec799a494297bd)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.TestUtil/MacroStabilityInwardsOutputViewChartDataAssert.cs (.../MacroStabilityInwardsOutputViewChartDataAssert.cs) (revision cac3045aae8af73cbc3602a1c38b071385aa3581)
@@ -52,10 +52,11 @@
private const int waternetZonesDailyIndex = 15;
private const int leftGridIndex = 16;
private const int rightGridIndex = 17;
- private const int slipPlaneIndex = 18;
- private const int activeCircleRadiusIndex = 19;
- private const int passiveCircleRadiusIndex = 20;
- private const int nrOfChartData = 21;
+ private const int slicesIndex = 18;
+ private const int slipPlaneIndex = 19;
+ private const int activeCircleRadiusIndex = 20;
+ private const int passiveCircleRadiusIndex = 21;
+ private const int nrOfChartData = 22;
///
/// Asserts whether corresponds to the input of .
@@ -94,6 +95,10 @@
(ChartPointData) actual.Collection.ElementAt(leftGridIndex));
MacroStabilityInwardsViewChartDataAssert.AssertGridChartData(calculationScenario.Output.SlipPlane.RightGrid,
(ChartPointData) actual.Collection.ElementAt(rightGridIndex));
+
+ AssertSlicesChartData(calculationScenario.Output.SlidingCurve.Slices,
+ (ChartMultipleAreaData) actual.Collection.ElementAt(slicesIndex));
+
AssertSlipPlaneChartData(calculationScenario.Output.SlidingCurve,
(ChartLineData) actual.Collection.ElementAt(slipPlaneIndex));
@@ -118,18 +123,21 @@
Assert.AreEqual(nrOfChartData, chartDataArray.Length);
var leftGridData = (ChartPointData) chartDataArray[leftGridIndex];
var rightGridData = (ChartPointData) chartDataArray[rightGridIndex];
+ var slicesData = (ChartMultipleAreaData) chartDataArray[slicesIndex];
var slipPlaneData = (ChartLineData) chartDataArray[slipPlaneIndex];
var activeCircleRadiusData = (ChartLineData) chartDataArray[activeCircleRadiusIndex];
var passiveCircleRadiusData = (ChartLineData) chartDataArray[passiveCircleRadiusIndex];
CollectionAssert.IsEmpty(leftGridData.Points);
CollectionAssert.IsEmpty(rightGridData.Points);
+ CollectionAssert.IsEmpty(slicesData.Areas);
CollectionAssert.IsEmpty(slipPlaneData.Points);
CollectionAssert.IsEmpty(activeCircleRadiusData.Points);
CollectionAssert.IsEmpty(passiveCircleRadiusData.Points);
Assert.AreEqual("Linker grid", leftGridData.Name);
Assert.AreEqual("Rechter grid", rightGridData.Name);
+ Assert.AreEqual("Lamellen", slicesData.Name);
Assert.AreEqual("Glijvlak", slipPlaneData.Name);
Assert.AreEqual("Radius actieve cirkel", activeCircleRadiusData.Name);
Assert.AreEqual("Radius passieve cirkel", passiveCircleRadiusData.Name);
@@ -192,6 +200,31 @@
}
///
+ /// Asserts whether corresponds to .
+ ///
+ /// The original slices.
+ /// The actual .
+ /// Thrown when
+ /// does not correspond to .
+ private static void AssertSlicesChartData(IEnumerable slices, ChartMultipleAreaData actual)
+ {
+ MacroStabilityInwardsSlice[] macroStabilityInwardsSlices = slices.ToArray();
+ CollectionAssert.IsNotEmpty(macroStabilityInwardsSlices);
+ for (var i = 0; i < macroStabilityInwardsSlices.Length; i++)
+ {
+ MacroStabilityInwardsSlice slice = macroStabilityInwardsSlices[i];
+ var expectedPoints = new[]
+ {
+ slice.TopLeftPoint,
+ slice.TopRightPoint,
+ slice.BottomRightPoint,
+ slice.BottomLeftPoint
+ };
+ CollectionAssert.AreEqual(expectedPoints, actual.Areas.ElementAt(i));
+ }
+ }
+
+ ///
/// Asserts whether corresponds to
/// and .
///