Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r475 -r477 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 475) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 477) @@ -40,31 +40,31 @@ damProjectData.Dike = new Dike(); Dike dike = damProjectData.Dike; TransferLocations(input, dike); - for (int i = 0; i < input.SurfaceLines.Length; i++) - { - var surfaceLine = new SurfaceLine2(); - var inputSurfaceLine = input.SurfaceLines[i]; - for (int j = 0; j < inputSurfaceLine.Points.Length; j++) - { - var inputPoint = inputSurfaceLine.Points[j]; - surfaceLine.Geometry = new GeometryPointString(); - var geometryPoint = new GeometryPoint() - { - X = inputPoint.X, - Y = 0.0, - Z = inputPoint.Z - }; - surfaceLine.Geometry.Points.Add(geometryPoint); - if (inputPoint.PointType != ConversionHelper.CpNone) - { - surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint() - { - GeometryPoint = geometryPoint, - CharacteristicPointType = ConversionHelper.ConvertToDamPointType(inputPoint.PointType) - }); - } - } - } + //for (int i = 0; i < input.SurfaceLines.Length; i++) + //{ + // var surfaceLine = new SurfaceLine2(); + // var inputSurfaceLine = input.SurfaceLines[i]; + // for (int j = 0; j < inputSurfaceLine.Points.Length; j++) + // { + // var inputPoint = inputSurfaceLine.Points[j]; + // surfaceLine.Geometry = new GeometryPointString(); + // var geometryPoint = new GeometryPoint() + // { + // X = inputPoint.X, + // Y = 0.0, + // Z = inputPoint.Z + // }; + // surfaceLine.Geometry.Points.Add(geometryPoint); + // if (inputPoint.PointType != ConversionHelper.CpNone) + // { + // surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint() + // { + // GeometryPoint = geometryPoint, + // CharacteristicPointType = ConversionHelper.ConvertToDamPointType(inputPoint.PointType) + // }); + // } + // } + //} return damProjectData; } Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r470 -r477 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 470) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 477) @@ -20,6 +20,8 @@ // All rights reserved. using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.Geometry; +using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlInput; using KellermanSoftware.CompareNetObjects; @@ -53,16 +55,49 @@ DamProjectData actualDamProjectData = FillDamFromXmlInput.CreateDamProjectData(input); CompareDamProjectData(actualDamProjectData, expectedDamProjectData); } + + private void AddPointToSurfaceLine(SurfaceLine2 surfaceLine, double xCoordinate, double zCoordinate, CharacteristicPointType characteristicPointType) + { + var geometryPoint = new GeometryPoint() + { + X = xCoordinate, + Y = 0.0, + Z = zCoordinate, + }; + surfaceLine.Geometry.Points.Add(geometryPoint); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint() + { + GeometryPoint = geometryPoint, + CharacteristicPointType = characteristicPointType + }); + } private DamProjectData CreateExampleDamProjectData() { var damProjectData = new DamProjectData(); damProjectData.DamProjectType = DamProjectType.Design; damProjectData.Dike = new Dike(); Dike dike = damProjectData.Dike; FillLocations(dike); + //FillSurfaceLines(dike); return damProjectData; } + private void FillSurfaceLines(Dike dike) + { + const int surfaceLineCount = 2; + for (int i = 0; i < surfaceLineCount; i++) + { + var surfaceLine = new SurfaceLine2(); + AddPointToSurfaceLine(surfaceLine, 0.0, 0.0, CharacteristicPointType.SurfaceLevelOutside); + AddPointToSurfaceLine(surfaceLine, 4.0, 0.0, CharacteristicPointType.DikeToeAtRiver); + AddPointToSurfaceLine(surfaceLine, 9.0, 5.0, CharacteristicPointType.DikeTopAtRiver); + AddPointToSurfaceLine(surfaceLine, 13.0, 5.0, CharacteristicPointType.DikeTopAtPolder); + AddPointToSurfaceLine(surfaceLine, 18.0, 1.0, CharacteristicPointType.DikeToeAtPolder); + AddPointToSurfaceLine(surfaceLine, 24.0, 1.0, CharacteristicPointType.SurfaceLevelInside); + dike.SurfaceLines2.Add(surfaceLine); + } + } + private static void FillLocations(Dike dike) { const int locationCount = 3;