Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs =================================================================== diff -u -r4284 -r4293 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs (.../SoilProfile2DDataModel.cs) (revision 4284) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs (.../SoilProfile2DDataModel.cs) (revision 4293) @@ -49,7 +49,7 @@ foreach (PersistableLayer layer in geometry.Layers) { CreateCurvesFromLayer(layer, soilProfile2D.Geometry.Curves); - var surface = CreateSurfacesFromLayer(layer, soilProfile2D.Geometry.Surfaces); + GeometrySurface surface = CreateSurfacesFromLayer(layer, soilProfile2D.Geometry.Surfaces); foreach (PersistablePoint point in layer.Points) { if (!IsPointPresent(point, soilProfile2D.Geometry.Points)) @@ -75,8 +75,6 @@ soilProfile2D.Surfaces.Add(soilLayer2D); } - soilProfile2D.Geometry.RegenerateGeometry(); - return soilProfile2D; } @@ -119,10 +117,20 @@ for (var i = 0; i < layer.Points.Count(); i++) { surface.OuterLoop.Points.Add(new GeometryPoint(layer.Points.ElementAt(i).X, 0, layer.Points.ElementAt(i).Z)); + + for (var j = 0; j < layer.Points.Count(); j++) + { + GeometryCurve curve = CreateCurveFromLayer(layer, j); + if (!IsCurvePresent(curve, surface.OuterLoop.CurveList)) + { + surface.OuterLoop.CurveList.Add(curve); + } + } + surface.Name = layer.Label; } - //To Do: Add inner loops + // ToDo: Add inner loops geometrySurface.Add(surface); return surface; @@ -132,23 +140,29 @@ { for (var i = 0; i < layer.Points.Count(); i++) { - GeometryCurve curve; - if (i == layer.Points.Count() - 1) - { - curve = CreateCurve(layer.Points.ElementAt(i), layer.Points.ElementAt(0)); - } - else - { - curve = CreateCurve(layer.Points.ElementAt(i), layer.Points.ElementAt(i + 1)); - } - + GeometryCurve curve = CreateCurveFromLayer(layer, i); if (!IsCurvePresent(curve, geometryCurves)) { geometryCurves.Add(curve); } } } + private GeometryCurve CreateCurveFromLayer(PersistableLayer layer, int index) + { + GeometryCurve curve; + if (index == layer.Points.Count() - 1) + { + curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(0)); + } + else + { + curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(index + 1)); + } + + return curve; + } + private GeometryCurve CreateCurve(PersistablePoint firstPoint, PersistablePoint secondPoint) { return new GeometryCurve Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs =================================================================== diff -u -r4254 -r4293 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 4254) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 4293) @@ -68,7 +68,7 @@ Assert.That(soilProfile2D.Geometry.Surfaces.Count, Is.EqualTo(3)); - GeometrySurface surface = soilProfile2D.Geometry.Surfaces.ElementAt(0); + GeometrySurface surface = soilProfile2D.Surfaces.ElementAt(0).GeometrySurface; Assert.That(surface.OuterLoop.CurveList, Is.EqualTo(new List { new(new GeometryPoint(12, 0, -5), new GeometryPoint(12, 0, 5)), @@ -77,7 +77,7 @@ new(new GeometryPoint(15, 0, -5), new GeometryPoint(12, 0, -5)) }).Using(new GeometryCurveEqualityComparer())); - surface = soilProfile2D.Geometry.Surfaces.ElementAt(1); + surface = soilProfile2D.Surfaces.ElementAt(1).GeometrySurface; Assert.That(surface.OuterLoop.CurveList, Is.EqualTo(new List { new(new GeometryPoint(10, 0, -10), new GeometryPoint(10, 0, 10)), @@ -86,12 +86,13 @@ new(new GeometryPoint(20, 0, -10), new GeometryPoint(10, 0, -10)) }).Using(new GeometryCurveEqualityComparer())); - surface = soilProfile2D.Geometry.Surfaces.ElementAt(2); + surface = soilProfile2D.Surfaces.ElementAt(2).GeometrySurface; Assert.That(surface.OuterLoop.CurveList, Is.EqualTo(new List { new(new GeometryPoint(15, 0, 5), new GeometryPoint(18, 0, 5)), new(new GeometryPoint(18, 0, 5), new GeometryPoint(18, 0, -5)), - new(new GeometryPoint(18, 0, -5), new GeometryPoint(15, 0, 5)) + new(new GeometryPoint(18, 0, -5), new GeometryPoint(15, 0, 5)), + new(new GeometryPoint(15, 0, 5), new GeometryPoint(15, 0, 5)) }).Using(new GeometryCurveEqualityComparer())); Assert.That(soilProfile2D.Geometry.SurfaceLine.Points, Is.EqualTo(new List @@ -112,7 +113,8 @@ new(new GeometryPoint(20, 0, -10), new GeometryPoint(10, 0, -10)), new(new GeometryPoint(15, 0, 5), new GeometryPoint(18, 0, 5)), new(new GeometryPoint(18, 0, 5), new GeometryPoint(18, 0, -5)), - new(new GeometryPoint(18, 0, -5), new GeometryPoint(15, 0, 5)) + new(new GeometryPoint(18, 0, -5), new GeometryPoint(15, 0, 5)), + new(new GeometryPoint(15, 0, 5), new GeometryPoint(15, 0, 5)) }).Using(new GeometryCurveEqualityComparer())); } } \ No newline at end of file