Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs =================================================================== diff -u -r6586 -r7077 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs (.../SoilProfile2DSurfaceLineHelper.cs) (revision 6586) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs (.../SoilProfile2DSurfaceLineHelper.cs) (revision 7077) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2025. All rights reserved. +// Copyright (C) Stichting Deltares 2026. All rights reserved. // // This file is part of the Dam Engine. // @@ -23,9 +23,10 @@ using System.Collections.Generic; using System.Linq; using Deltares.DamEngine.Data.Geometry; -//using Deltares.DamEngine.Data.GeometryExport; for Debugging purposes only. using Deltares.DamEngine.Data.Standard; +//using Deltares.DamEngine.Data.GeometryExport; for Debugging purposes only. + namespace Deltares.DamEngine.Data.Geotechnics; /// @@ -81,7 +82,7 @@ { return null; } - + if (defaultSoil == null) { return null; @@ -105,11 +106,11 @@ var result = new SoilProfile2D { Name = soilProfile2D.Name, - Geometry = CreateNewGeometryForSoilProfile2DByCombiningItsGeometryWithSurfaceLine(clonedSurfaceLine, + Geometry = CreateNewGeometryForSoilProfile2DByCombiningItsGeometryWithSurfaceLine(clonedSurfaceLine, clonedProfile.Geometry) - }; + }; - RemoveGeometryDataOfSoilProfileAboveSurfaceLine(clonedSurfaceLine, ref result); + RemoveGeometryDataOfSoilProfileAboveSurfaceLine(clonedSurfaceLine, ref result); ReconstructSurfaces(ref result, clonedProfile.Geometry.Left, clonedProfile.Geometry.Right, oldSurfaces, defaultSoil); ReconstructPreConsolidations(ref result, clonedProfile); result.Geometry.Rebox(); @@ -195,7 +196,7 @@ resultGeometry.NewlyEffectedPoints.AddRange(resultGeometry.Points); resultGeometry.NewlyEffectedCurves.AddRange(resultGeometry.Curves); - resultGeometry.Surfaces.Clear(); + resultGeometry.Surfaces.Clear(); resultGeometry.Loops.Clear(); resultGeometry.Curves.Clear(); resultGeometry.Points.Clear(); @@ -344,7 +345,7 @@ result.DeleteLoosePoints(); } - private static void ReconstructSurfaces(ref SoilProfile2D result, double oldLeftLimit, double oldRightLimit, + private static void ReconstructSurfaces(ref SoilProfile2D result, double oldLeftLimit, double oldRightLimit, List oldSurfaces, Soil defaultSoil) { result.Surfaces.Clear(); @@ -355,7 +356,7 @@ GeometrySurface = surface, Soil = defaultSoil }; - + SoilLayer2D layerFromOldSurfaces = SoilProfile2D.DetermineOriginalLayerFromOldSurfaces(surface, oldSurfaces); if (layerFromOldSurfaces != null && layerFromOldSurfaces.Soil != null) { @@ -366,9 +367,9 @@ if (layerFromOldSurfaces == null) { - SoilLayer2D oldLayer = DetermineLayerIfSurfaceIsLeftOrRightOfOldSurfaces(surface, oldSurfaces, oldLeftLimit, + SoilLayer2D oldLayer = DetermineLayerIfSurfaceIsLeftOrRightOfOldSurfaces(surface, oldSurfaces, oldLeftLimit, oldRightLimit); - + if (oldLayer != null) { soilLayer2D.IsAquifer = oldLayer.IsAquifer; @@ -384,6 +385,7 @@ soilLayer2D.Soil = defaultSoil; } } + result.Surfaces.Add(soilLayer2D); } } @@ -396,14 +398,14 @@ } } - private static SoilLayer2D DetermineLayerIfSurfaceIsLeftOrRightOfOldSurfaces(GeometrySurface surface, - List oldSurfaces, double oldLeftLimit, double oldRightLimit) + private static SoilLayer2D DetermineLayerIfSurfaceIsLeftOrRightOfOldSurfaces(GeometrySurface surface, + List oldSurfaces, double oldLeftLimit, double oldRightLimit) { Point2D point = surface.DetermineValidTestPointBasedOnNewSurface(); // Check if the new surface is left or right of the old surfaces, if not just return null. if (!SoilProfile2D.IsSurfaceLeftOrRightOfOldSurfaces(point, oldSurfaces)) { - return null; + return null; } SoilLayer2D soilLayer = null; @@ -426,7 +428,7 @@ return soilLayer; } } - + // Check if first two right points of the new surface have identical x values (they are vertical). // If so, check these points are on the left boundary of the original geometry (so before extending) // Then this surface is extended to the left side of the geometry and only then use material to its right. @@ -444,5 +446,4 @@ return soilLayer; } - } \ No newline at end of file