Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs =================================================================== diff -u -r3406 -r3414 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 3406) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 3414) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Linq; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.General.TimeSeries; using Deltares.DamEngine.Io.XmlOutput; @@ -313,6 +314,33 @@ } break; } + if (designResult.StabilityDesignResults.StabilityModelType == MStabModelType.Bishop || + designResult.StabilityDesignResults.StabilityModelType == MStabModelType.UpliftVan) + { + if (designResult.StabilityDesignResults.ResultSlices != null && + designResult.StabilityDesignResults.ResultSlices.Count > 0) + { + desResult.StabilityDesignResults.SlipCircleDefinition.Slices = + new MinimumSafetyCurveBaseTypeSlice[designResult.StabilityDesignResults.ResultSlices.Count]; + var index = 0; + foreach (var slice in designResult.StabilityDesignResults.ResultSlices) + { + var resultSlice = new MinimumSafetyCurveBaseTypeSlice + { + TopLeftPoint = new Point2DType {X = slice.TopLeftPoint.X, Z = slice.TopLeftPoint.Z}, + TopRightPoint = new Point2DType {X = slice.TopRightPoint.X, Z = slice.TopRightPoint.Z}, + BottomLeftPoint = + new Point2DType {X = slice.BottomLeftPoint.X, Z = slice.BottomLeftPoint.Z}, + BottomRightPoint = new Point2DType + { + X = slice.BottomRightPoint.X, Z = slice.BottomRightPoint.Z + } + }; + desResult.StabilityDesignResults.SlipCircleDefinition.Slices[index] = resultSlice; + index++; + } + } + } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs =================================================================== diff -u -r3405 -r3414 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 3405) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 3414) @@ -272,6 +272,21 @@ stabilityDesignResults.PassiveCenterPointRadius = 51; break; } + + if (stabilityDesignResults.StabilityModelType == MStabModelType.Bishop || + stabilityDesignResults.StabilityModelType == MStabModelType.UpliftVan) + { + stabilityDesignResults.ResultSlices = new List(); + for (int i = 0; i < 9; i++) + { + var slice = new StabilityResultSlice(); + slice.TopLeftPoint = new Point2D(i + 1.3, i + 2.3); + slice.TopRightPoint = new Point2D(i + 12.3, i + 22.3); + slice.BottomLeftPoint = new Point2D(i - 1.3, i - 2.3); + slice.BottomRightPoint = new Point2D(i - 12.3, i - 22.3); + stabilityDesignResults.ResultSlices.Add(slice); + } + } } private void FillOutputTimeSeries(DamProjectData damProjectData) Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs =================================================================== diff -u -r3405 -r3414 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 3405) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 3414) @@ -57,7 +57,7 @@ CreateDesignResultsOutput(output, damProjectData); } } - if (output.Results.OperationalOutputTimeSeries != null) + if (output != null && output.Results != null && output.Results.OperationalOutputTimeSeries != null) { damProjectData.OutputTimeSerieCollection = new TimeSerieCollection(); TransferOutputTimeSeries(output.Results.OperationalOutputTimeSeries, damProjectData.OutputTimeSerieCollection); @@ -317,6 +317,27 @@ desResult.StabilityDesignResults.PassiveCenterPointRadius = dsl.PassiveCircleRadius; break; } + + if (designResult.StabilityDesignResults.StabilityModelType == + DesignResultStabilityDesignResultsStabilityModelType.Bishop || + designResult.StabilityDesignResults.StabilityModelType == + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan) + { + if (designResult.StabilityDesignResults.SlipCircleDefinition.Slices != null) + { + desResult.StabilityDesignResults.ResultSlices = new List(); + foreach (var slice in designResult.StabilityDesignResults.SlipCircleDefinition.Slices) + { + var resultSlice = new StabilityResultSlice(); + resultSlice.TopLeftPoint = new Point2D(slice.TopLeftPoint.X, slice.TopLeftPoint.Z); + resultSlice.TopRightPoint = new Point2D(slice.TopRightPoint.X, slice.TopRightPoint.Z); + resultSlice.BottomLeftPoint = new Point2D(slice.BottomLeftPoint.X, slice.BottomLeftPoint.Z); + resultSlice.BottomRightPoint = + new Point2D(slice.BottomRightPoint.X, slice.BottomRightPoint.Z); + desResult.StabilityDesignResults.ResultSlices.Add(resultSlice); + } + } + } } } }