Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer2D.cs
===================================================================
diff -u -r4540 -r5061
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer2D.cs (.../SoilLayer2D.cs) (revision 4540)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer2D.cs (.../SoilLayer2D.cs) (revision 5061)
@@ -52,6 +52,23 @@
}
///
+ /// Creates a clone of the SoilLayer2D
+ ///
+ /// The cloned SoilLayer2D
+ public new SoilLayer2D Clone()
+ {
+ var clonedSoilLayer2D = new SoilLayer2D
+ {
+ Soil = Soil,
+ Name = Name,
+ IsAquifer = IsAquifer,
+ WaterpressureInterpolationModel = WaterpressureInterpolationModel,
+ GeometrySurface = GeometrySurface.Clone()
+ };
+ return clonedSoilLayer2D;
+ }
+
+ ///
/// Gets the geometry bounds.
///
/// the geometry bounds
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs
===================================================================
diff -u -r5013 -r5061
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs (.../SoilProfile2D.cs) (revision 5013)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2D.cs (.../SoilProfile2D.cs) (revision 5061)
@@ -20,7 +20,6 @@
// All rights reserved.
using System.Collections.Generic;
-using System.Linq;
using Deltares.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Standard.Language;
using Deltares.DamEngine.Data.Standard.Validation;
@@ -158,6 +157,25 @@
}
///
+ /// Clone the soil profile 2D
+ ///
+ /// The cloned SoilProfile2D
+ public SoilProfile2D Clone()
+ {
+ var clonedSoilProfile2D = new SoilProfile2D
+ {
+ Name = Name
+ };
+ foreach (SoilLayer2D surface in Surfaces)
+ {
+ SoilLayer2D clonedSurface = surface.Clone();
+ clonedSoilProfile2D.Surfaces.Add(clonedSurface);
+ }
+
+ return clonedSoilProfile2D;
+ }
+
+ ///
/// Returns a that represents this instance.
///
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometrySurface.cs
===================================================================
diff -u -r4540 -r5061
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometrySurface.cs (.../GeometrySurface.cs) (revision 4540)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometrySurface.cs (.../GeometrySurface.cs) (revision 5061)
@@ -22,6 +22,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Deltares.DamEngine.Data.Standard;
namespace Deltares.DamEngine.Data.Geometry;
@@ -186,4 +187,18 @@
bottomPoints.CalcPoints.Reverse();
return bottomPoints;
}
+
+ ///
+ /// Creates a clone of the geometry surface
+ ///
+ /// The cloned GeometrySurface
+ public GeometrySurface Clone()
+ {
+ var clonedGeometrySurface = new GeometrySurface()
+ {
+ OuterLoop = OuterLoop.Clone()
+ };
+ clonedGeometrySurface.InnerLoops.AddRange(InnerLoops.Select(loop => loop.Clone()).ToList());
+ return clonedGeometrySurface;
+ }
}
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryLoop.cs
===================================================================
diff -u -r5034 -r5061
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryLoop.cs (.../GeometryLoop.cs) (revision 5034)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geometry/GeometryLoop.cs (.../GeometryLoop.cs) (revision 5061)
@@ -21,6 +21,7 @@
using System;
using System.Collections.Generic;
+using Deltares.DamEngine.Data.Standard;
namespace Deltares.DamEngine.Data.Geometry;
@@ -241,4 +242,17 @@
public NotEnoughUniquePointsException()
: base("At least 3 unique points are required to determine if the loop is running clockwise.") {}
}
+
+ ///
+ /// Creates a clone of the geometry loop
+ ///
+ /// The cloned GeometryLoop
+ public override GeometryLoop Clone()
+ {
+ GeometryPointString clonedGeometryPointString = base.Clone();
+ GeometryLoop clonedGeometryLoop = new GeometryLoop();
+ clonedGeometryLoop.Points.AddRange(clonedGeometryPointString.Points);
+ clonedGeometryLoop.CurveList.AddRange(CurveList);
+ return clonedGeometryLoop;
+ }
}
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer.cs
===================================================================
diff -u -r4540 -r5061
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer.cs (.../SoilLayer.cs) (revision 4540)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilLayer.cs (.../SoilLayer.cs) (revision 5061)
@@ -78,6 +78,23 @@
public virtual WaterpressureInterpolationModel WaterpressureInterpolationModel { get; set; }
///
+ /// Creates a clone of the soil layer.
+ ///
+ /// The cloned soil layer
+ public virtual SoilLayer Clone()
+ {
+ var clonedSoilLayer = new SoilLayer()
+ {
+ Soil = Soil,
+ SoilName = SoilName,
+ IsAquifer = IsAquifer,
+ WaterpressureInterpolationModel = WaterpressureInterpolationModel
+ };
+ return clonedSoilLayer;
+ }
+
+
+ ///
/// Validates the layer.
///
///