Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSoilProfiles.cs =================================================================== diff -u -r5427 -r5613 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSoilProfiles.cs (.../FactoryForSoilProfiles.cs) (revision 5427) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSoilProfiles.cs (.../FactoryForSoilProfiles.cs) (revision 5613) @@ -991,7 +991,7 @@ } /// - /// Create a soil profile 2D with one layer + /// Create a soil profile 2D with two layers /// /// The 2D Soil Profile public static SoilProfile2D CreateSoilProfile2DWithTwoLayers() @@ -1029,7 +1029,7 @@ } /// - /// Creates 2D SoilProfile with two layers + /// Creates 2D SoilProfile with three layers /// /// The 2D Soil Profile public static SoilProfile2D CreateSoilProfile2DWithThreeLayers() @@ -1072,6 +1072,51 @@ } /// + /// -50 -30 -10 10 40 50 + /// |---------------------------------------------------| Level 10 m + /// | surface 1 | + /// | |---------------| |---------------| | Level 0 m + /// | | surface 2 | | surface 3 | | + /// | |-------------- | |---------------| | Level -10 m + /// | surface 1 | + /// |---------------------------------------------------| Level -20 m + /// + public static SoilProfile2D CreateSoilProfile2DWithThreeLayersOfWhichTwoAreInnerLoops() + { + var soilProfile2D = new SoilProfile2D + { + Geometry = new GeometryData + { + Left = -50, + Right = 50, + Bottom = -20 + } + }; + var soil1 = new Soil("Soil1", 11, 12); + Soil soil2 = new Soil("Soil2", 13, 14); + Soil soil3 = new Soil("Soil3", 13.1, 14.1); + + SoilLayer2D soilLayer1 = CreateRectangularSoilLayer2D(10, -20, -50, 50, soil1, soilProfile2D); + SoilLayer2D soilLayer2 = CreateRectangularSoilLayer2D(0, -10, -30, -10, soil2, soilProfile2D); + SoilLayer2D soilLayer3 = CreateRectangularSoilLayer2D(0, -10, 10, 40, soil3, soilProfile2D); + + soilProfile2D.Surfaces.Add(soilLayer1); + soilProfile2D.Surfaces.Add(soilLayer2); + soilProfile2D.Surfaces.Add(soilLayer3); + + soilProfile2D.Geometry.Loops.Add(soilLayer1.GeometrySurface.OuterLoop); + soilProfile2D.Geometry.Surfaces.Add(soilLayer1.GeometrySurface); + soilProfile2D.Geometry.Loops.Add(soilLayer2.GeometrySurface.OuterLoop); + soilProfile2D.Geometry.Surfaces.Add(soilLayer2.GeometrySurface); + soilProfile2D.Geometry.Loops.Add(soilLayer3.GeometrySurface.OuterLoop); + soilProfile2D.Geometry.Surfaces.Add(soilLayer3.GeometrySurface); + soilProfile2D.Geometry.Surfaces[0].InnerLoops.Add(soilLayer2.GeometrySurface.OuterLoop); + soilProfile2D.Geometry.Surfaces[0].InnerLoops.Add(soilLayer3.GeometrySurface.OuterLoop); + + return soilProfile2D; + } + + /// /// -50 -20 -10 0 35 60 /// |-----------------|--------------|-----------------------------| Level 10 m /// | surface 1 | surface 2 | surface 3 | @@ -1451,7 +1496,7 @@ } /// - /// Creates a surface line for a soil profile 2D at the requested postion. + /// Creates a surface line for a soil profile 2D at the requested position. /// /// ///