Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs =================================================================== diff -u -r3893 -r4000 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs (.../SoilProfile2D.cs) (revision 3893) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs (.../SoilProfile2D.cs) (revision 4000) @@ -32,15 +32,15 @@ /// public class SoilProfile2D : SoilProfile { - protected GeometryData geometry = new GeometryData(); protected readonly List surfaces = new List(); + protected GeometryData geometry = new GeometryData(); /// /// Initializes a new instance of the class. /// public SoilProfile2D() { - Name = LocalizationManager.GetTranslatedText(this, "DefaultNameSoilProfile2D"); + Name = LocalizationManager.GetTranslatedText(this, "DefaultNameSoilProfile2D"); } /// @@ -72,7 +72,7 @@ } set { - geometry = value; + geometry = value; } } @@ -86,13 +86,12 @@ const double diff = 0.001; if (Geometry.Surfaces.Count == 0) { - - foreach (var soilLayer2D in Surfaces) + foreach (SoilLayer2D soilLayer2D in Surfaces) { var loop = new GeometryLoop(); var isStartPoint = true; - GeometryCurve curve = new GeometryCurve(); - foreach (var outerLoopCalcPoint in soilLayer2D.GeometrySurface.OuterLoop.CalcPoints) + var curve = new GeometryCurve(); + foreach (Point2D outerLoopCalcPoint in soilLayer2D.GeometrySurface.OuterLoop.CalcPoints) { Geometry.Points.Add(outerLoopCalcPoint); loop.CalcPoints.Add(outerLoopCalcPoint); @@ -108,8 +107,10 @@ curve = new GeometryCurve(); curve.HeadPoint = outerLoopCalcPoint; } + isStartPoint = false; } + curve.EndPoint = loop.CurveList.First().HeadPoint; Geometry.Curves.Add(curve); loop.CurveList.Add(curve); @@ -122,6 +123,7 @@ Geometry.Right = Geometry.MaxGeometryPointsX; Geometry.Left = Geometry.MinGeometryPointsX; } + var soilProfile = new SoilProfile1D { Name = "Generated at x = " + x + " from " + Name @@ -131,17 +133,18 @@ { x = Geometry.Right - diff; } + if (x < Geometry.Left) { x = Geometry.Left + diff; } - + detector.DetermineMaterials(x); if (detector.LayerList.Count > 0) { soilProfile.BottomLevel = detector.LayerList[detector.LayerList.Count - 1].EndPoint.Z; - for (int i = 0; i < detector.LayerList.Count; i++) + for (var i = 0; i < detector.LayerList.Count; i++) { var layer = new SoilLayer1D(detector.LayerList[i].Soil, detector.LayerList[i].StartPoint.Z) { @@ -150,7 +153,7 @@ soilProfile.Layers.Add(layer); } } - + return soilProfile; } @@ -161,16 +164,16 @@ /// Surface public SoilLayer2D GetSoilLayer(Point2D point) { - for (int i = 0; i < Surfaces.Count; i++) + for (var i = 0; i < Surfaces.Count; i++) { SoilLayer2D surface = Surfaces[i]; GeometryLoop surfaceLine = surface.GeometrySurface.OuterLoop; if (surfaceLine.IsPointInLoopArea(point)) { - bool found = true; + var found = true; // if point lies in an innerloop it belongs to another area - foreach (var innerloop in surface.GeometrySurface.InnerLoops) + foreach (GeometryLoop innerloop in surface.GeometrySurface.InnerLoops) { if (innerloop.IsPointInLoopArea(point)) {