Index: dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs =================================================================== diff -u -r460 -r475 --- dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 460) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 475) @@ -21,6 +21,7 @@ using System.Collections.Generic; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Io.XmlInput; @@ -90,7 +91,7 @@ /// /// Type of the dam object. /// - public static PLLineCreationMethod ConvertToPhreaticLineCreationMethod(LocationWaternetOptionsPhreaticLineCreationMethod inputPhreaticLineCreationMethod) + public static PLLineCreationMethod ConvertToPhreaticLineCreationMethod(LocationWaternetOptionsPhreaticLineCreationMethod inputPhreaticLineCreationMethod) { var translationTable = new Dictionary() { @@ -130,7 +131,7 @@ /// /// Type of the dam object. /// - public static IntrusionVerticalWaterPressureType ConvertToIntrusionVerticalWaterPressure(LocationWaternetOptionsIntrusionVerticalWaterPressure inputIntrusionVerticalWaterPressure) + public static IntrusionVerticalWaterPressureType ConvertToIntrusionVerticalWaterPressure(LocationWaternetOptionsIntrusionVerticalWaterPressure inputIntrusionVerticalWaterPressure) { var translationTable = new Dictionary() { @@ -187,5 +188,73 @@ return translationTable[calculationResult]; } + public const int CpNone = 0;// + public const int CpSurfaceLevelOutside = 1; // Maaiveld buitenwaarts + public const int CpDikeToeAtRiver = 5; // Teen dijk buitenwaarts + public const int CpShoulderTopOutside = 6; // Kruin buitenberm + public const int CpShoulderBaseOutside = 7; // Insteek buitenberm + public const int CpDikeTopAtRiver = 8; // Kruin buitentalud + public const int CpDikeLine = 9; // referentielijn + public const int CpTrafficLoadOutside = 10; // Verkeersbelasting kant buitenwaarts + public const int CpTrafficLoadInside = 11; // Verkeersbelasting kant binnenwaarts + public const int CpDikeTopAtPolder = 12; // Kruin binnentalud + public const int CpShoulderBaseInside = 13; // Insteek binnenberm + public const int CpShoulderTopInside = 14; // Kruin binnenberm + public const int CpDikeToeAtPolder = 15; // Teen dijk binnenwaarts + public const int CpDitchDikeSide = 16; // Insteek sloot dijkzijde + public const int CpBottomDitchDikeSide = 17; // Slootbodem dijkzijde + public const int CpBottomDitchPolderSide = 18; // Slootbodem polderzijde + public const int CpDitchPolderSide = 19; // Insteek sloot polderzijde + public const int CpSurfaceLevelInside = 25; // Maaiveld binnenwaarts + public static CharacteristicPointType ConvertToDamPointType(int inputPointType) + { + var translationTable = new Dictionary() + { + {CpNone, CharacteristicPointType.None}, + {CpSurfaceLevelOutside, CharacteristicPointType.SurfaceLevelOutside}, + {CpDikeToeAtRiver, CharacteristicPointType.DikeToeAtRiver}, + {CpShoulderTopOutside, CharacteristicPointType.ShoulderTopOutside}, + {CpShoulderBaseOutside, CharacteristicPointType.ShoulderBaseOutside}, + {CpDikeTopAtRiver, CharacteristicPointType.DikeTopAtRiver}, + {CpDikeLine, CharacteristicPointType.DikeLine}, + {CpTrafficLoadOutside, CharacteristicPointType.TrafficLoadOutside}, + {CpTrafficLoadInside, CharacteristicPointType.TrafficLoadInside}, + {CpDikeTopAtPolder, CharacteristicPointType.DikeTopAtPolder}, + {CpShoulderBaseInside, CharacteristicPointType.ShoulderBaseInside}, + {CpShoulderTopInside, CharacteristicPointType.ShoulderTopInside}, + {CpDikeToeAtPolder, CharacteristicPointType.DikeToeAtPolder}, + {CpDitchDikeSide, CharacteristicPointType.DitchDikeSide}, + {CpBottomDitchDikeSide, CharacteristicPointType.BottomDitchDikeSide}, + {CpBottomDitchPolderSide, CharacteristicPointType.BottomDitchPolderSide}, + {CpDitchPolderSide, CharacteristicPointType.DitchPolderSide}, + {CpSurfaceLevelInside, CharacteristicPointType.SurfaceLevelInside} + }; + return translationTable[inputPointType]; + } + public static int ConvertToInputPointType(CharacteristicPointType characteristicPointType) + { + var translationTable = new Dictionary() + { + {CharacteristicPointType.None, CpNone}, + {CharacteristicPointType.SurfaceLevelOutside, CpSurfaceLevelOutside}, + {CharacteristicPointType.DikeToeAtRiver, CpDikeToeAtRiver}, + {CharacteristicPointType.ShoulderTopOutside, CpShoulderTopOutside}, + {CharacteristicPointType.ShoulderBaseOutside, CpShoulderBaseOutside}, + {CharacteristicPointType.DikeTopAtRiver, CpDikeTopAtRiver}, + {CharacteristicPointType.DikeLine, CpDikeLine}, + {CharacteristicPointType.TrafficLoadOutside, CpTrafficLoadOutside}, + {CharacteristicPointType.TrafficLoadInside, CpTrafficLoadInside}, + {CharacteristicPointType.DikeTopAtPolder, CpDikeTopAtPolder}, + {CharacteristicPointType.ShoulderBaseInside, CpShoulderBaseInside}, + {CharacteristicPointType.ShoulderTopInside, CpShoulderTopInside}, + {CharacteristicPointType.DikeToeAtPolder, CpDikeToeAtPolder}, + {CharacteristicPointType.DitchDikeSide, CpDitchDikeSide}, + {CharacteristicPointType.BottomDitchDikeSide, CpBottomDitchDikeSide}, + {CharacteristicPointType.BottomDitchPolderSide, CpBottomDitchPolderSide}, + {CharacteristicPointType.DitchPolderSide, CpDitchPolderSide}, + {CharacteristicPointType.SurfaceLevelInside, CpSurfaceLevelInside} + }; + return translationTable[characteristicPointType]; + } } } \ No newline at end of file Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r470 -r475 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 470) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 475) @@ -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.XmlInput; using Location = Deltares.DamEngine.Data.General.Location; @@ -38,6 +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) + }); + } + } + } return damProjectData; } Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs =================================================================== diff -u -r460 -r475 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 460) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 475) @@ -20,6 +20,7 @@ // All rights reserved. using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Io.XmlInput; using NUnit.Framework; @@ -123,6 +124,53 @@ public void CanConvertToCalculationResult(CalculationResult result, int calculationResult) { Assert.AreEqual(result, ConversionHelper.ConvertToCalculationResult(calculationResult)); + } + [Test] + [TestCase(ConversionHelper.CpNone, CharacteristicPointType.None)] + [TestCase(ConversionHelper.CpSurfaceLevelOutside, CharacteristicPointType.SurfaceLevelOutside)] + [TestCase(ConversionHelper.CpDikeToeAtRiver, CharacteristicPointType.DikeToeAtRiver)] + [TestCase(ConversionHelper.CpShoulderTopOutside, CharacteristicPointType.ShoulderTopOutside)] + [TestCase(ConversionHelper.CpShoulderBaseOutside, CharacteristicPointType.ShoulderBaseOutside)] + [TestCase(ConversionHelper.CpDikeTopAtRiver, CharacteristicPointType.DikeTopAtRiver)] + [TestCase(ConversionHelper.CpDikeLine, CharacteristicPointType.DikeLine)] + [TestCase(ConversionHelper.CpTrafficLoadOutside, CharacteristicPointType.TrafficLoadOutside)] + [TestCase(ConversionHelper.CpTrafficLoadInside, CharacteristicPointType.TrafficLoadInside)] + [TestCase(ConversionHelper.CpDikeTopAtPolder, CharacteristicPointType.DikeTopAtPolder)] + [TestCase(ConversionHelper.CpShoulderBaseInside, CharacteristicPointType.ShoulderBaseInside)] + [TestCase(ConversionHelper.CpShoulderTopInside, CharacteristicPointType.ShoulderTopInside)] + [TestCase(ConversionHelper.CpDikeToeAtPolder, CharacteristicPointType.DikeToeAtPolder)] + [TestCase(ConversionHelper.CpDitchDikeSide, CharacteristicPointType.DitchDikeSide)] + [TestCase(ConversionHelper.CpBottomDitchDikeSide, CharacteristicPointType.BottomDitchDikeSide)] + [TestCase(ConversionHelper.CpBottomDitchPolderSide, CharacteristicPointType.BottomDitchPolderSide)] + [TestCase(ConversionHelper.CpDitchPolderSide, CharacteristicPointType.DitchPolderSide)] + [TestCase(ConversionHelper.CpSurfaceLevelInside, CharacteristicPointType.SurfaceLevelInside)] + public void CanConvertInputPointType(int inputPointType, CharacteristicPointType characteristicPointType) + { + Assert.AreEqual(characteristicPointType, ConversionHelper.ConvertToDamPointType(inputPointType)); + } + [Test] + [TestCase(CharacteristicPointType.None, ConversionHelper.CpNone)] + [TestCase(CharacteristicPointType.SurfaceLevelOutside, ConversionHelper.CpSurfaceLevelOutside)] + [TestCase(CharacteristicPointType.DikeToeAtRiver, ConversionHelper.CpDikeToeAtRiver)] + [TestCase(CharacteristicPointType.ShoulderTopOutside, ConversionHelper.CpShoulderTopOutside)] + [TestCase(CharacteristicPointType.ShoulderBaseOutside, ConversionHelper.CpShoulderBaseOutside)] + [TestCase(CharacteristicPointType.DikeTopAtRiver, ConversionHelper.CpDikeTopAtRiver)] + [TestCase(CharacteristicPointType.DikeLine, ConversionHelper.CpDikeLine)] + [TestCase(CharacteristicPointType.TrafficLoadOutside, ConversionHelper.CpTrafficLoadOutside)] + [TestCase(CharacteristicPointType.TrafficLoadInside, ConversionHelper.CpTrafficLoadInside)] + [TestCase(CharacteristicPointType.DikeTopAtPolder, ConversionHelper.CpDikeTopAtPolder)] + [TestCase(CharacteristicPointType.ShoulderBaseInside, ConversionHelper.CpShoulderBaseInside)] + [TestCase(CharacteristicPointType.ShoulderTopInside, ConversionHelper.CpShoulderTopInside)] + [TestCase(CharacteristicPointType.DikeToeAtPolder, ConversionHelper.CpDikeToeAtPolder)] + [TestCase(CharacteristicPointType.DitchDikeSide, ConversionHelper.CpDitchDikeSide)] + [TestCase(CharacteristicPointType.BottomDitchDikeSide, ConversionHelper.CpBottomDitchDikeSide)] + [TestCase(CharacteristicPointType.BottomDitchPolderSide, ConversionHelper.CpBottomDitchPolderSide)] + [TestCase(CharacteristicPointType.DitchPolderSide, ConversionHelper.CpDitchPolderSide)] + [TestCase(CharacteristicPointType.SurfaceLevelInside, ConversionHelper.CpSurfaceLevelInside)] + public void CanConvertCharacteristicPointType(CharacteristicPointType characteristicPointType, int inputPointType) + { + Assert.AreEqual(inputPointType, ConversionHelper.ConvertToInputPointType(characteristicPointType)); + } } } Index: dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs =================================================================== diff -u -r466 -r475 --- dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 466) +++ dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 475) @@ -24,7 +24,7 @@ private Location[] locationsField; - private InputSurfaceLine[] surfaceLinesField; + private SurfaceLine[] surfaceLinesField; private InputDamProjectType damProjectTypeField; @@ -40,8 +40,8 @@ } /// - [System.Xml.Serialization.XmlArrayItemAttribute("SurfaceLine", IsNullable=false)] - public InputSurfaceLine[] SurfaceLines { + [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public SurfaceLine[] SurfaceLines { get { return this.surfaceLinesField; } @@ -958,14 +958,13 @@ [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] - public partial class InputSurfaceLine { + public partial class SurfaceLine { - private InputSurfaceLinePoint[] pointsField; + private SurfaceLinePoint[] pointsField; /// [System.Xml.Serialization.XmlArrayItemAttribute("Point", IsNullable=false)] - public InputSurfaceLinePoint[] Points { + public SurfaceLinePoint[] Points { get { return this.pointsField; } @@ -981,7 +980,7 @@ [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] - public partial class InputSurfaceLinePoint { + public partial class SurfaceLinePoint { private double xField; @@ -1044,12 +1043,4 @@ /// NWO, } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class SurfaceLine { - } }