Index: DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/PersistableGeometry.cs =================================================================== diff -u -r5288 -r5352 --- DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/PersistableGeometry.cs (.../PersistableGeometry.cs) (revision 5288) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/PersistableGeometry.cs (.../PersistableGeometry.cs) (revision 5352) @@ -37,6 +37,7 @@ public class PersistableSurface { public PersistableOuterLoop OuterLoop { get; set; } + public List InnerLoops { get; set; } } /// @@ -48,6 +49,14 @@ } /// +/// Persistable Innerloop object (for json serialization) +/// +public class PersistableInnerLoop +{ + public List Curves { get; set; } +} + +/// /// Persistable Curve object (for json serialization) /// public class PersistableCurve @@ -63,4 +72,21 @@ { public double X { get; set; } public double Z { get; set; } +} + +/// +/// Persistable Surfaceline object (for json serialization) +/// +public class PersistableSurfaceLine +{ + public List Points { get; set; } +} + +/// +/// Persistable Geometry with Surfaceline object (for json serialization) +/// +public class PersistableGeometryWithSurfaceLine +{ + public PersistableGeometry Geometry { get; set; } + public PersistableSurfaceLine SurfaceLine { get; set; } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporterHelper.cs =================================================================== diff -u -r5288 -r5352 --- DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporterHelper.cs (.../GeometryExporterHelper.cs) (revision 5288) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporterHelper.cs (.../GeometryExporterHelper.cs) (revision 5352) @@ -65,4 +65,21 @@ return persistableGeometry; } + + /// + /// Create a persistable geometry object from a GeometryData object + /// + /// + /// + public static PersistableSurfaceLine CreateFromGeometryPointString(GeometryPointString surfaceLine) + { + return new PersistableSurfaceLine + { + Points = surfaceLine.CalcPoints.Select(point => new PersistablePoint() + { + X = point.X, + Z = point.Z + }).ToList() + }; + } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporter.cs =================================================================== diff -u -r5288 -r5352 --- DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporter.cs (.../GeometryExporter.cs) (revision 5288) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/GeometryExport/GeometryExporter.cs (.../GeometryExporter.cs) (revision 5352) @@ -48,6 +48,31 @@ } /// + /// Export the geometry to a json file + /// + /// + /// + /// + public static void ExportWithSurfaceLineToJsonFile(GeometryData geometry, GeometryPointString surfaceLine, string fileName) + { + var jsonSerializerOptions = new JsonSerializerOptions + { + WriteIndented = true + }; + PersistableGeometry persistableGeometry = GeometryExporterHelper.CreateFromGeometryData(geometry); + //string output = JsonSerializer.Serialize(persistableGeometry, jsonSerializerOptions); + PersistableSurfaceLine persistableSurfaceLine = GeometryExporterHelper.CreateFromGeometryPointString(surfaceLine); + PersistableGeometryWithSurfaceLine persistableGeometryWithSurfaceLine = new PersistableGeometryWithSurfaceLine + { + Geometry = persistableGeometry, + SurfaceLine = persistableSurfaceLine + }; + string output = JsonSerializer.Serialize(persistableGeometryWithSurfaceLine, jsonSerializerOptions); + // Save output to text file + File.WriteAllText(fileName, output); + } + + /// /// Export the geometry to a text file /// /// @@ -104,4 +129,26 @@ writer.WriteLine("[END SURFACES]"); } } + + public static void ExportSurfacelineToFile(GeometryPointString surfaceLine, string fileName) + { + using (var writer = new StreamWriter(fileName)) + { + // Export points + writer.WriteLine("[BEGIN POINTS] " + surfaceLine.Points.Count); + foreach (GeometryPoint point in surfaceLine.Points) + { + writer.WriteLine($"{point.X}, {point.Z}"); + } + writer.WriteLine("[END POINTS]"); + + // Export calc points + writer.WriteLine("[BEGIN CALC POINTS] " + surfaceLine.CalcPoints.Count); + foreach (Point2D calcPoint in surfaceLine.CalcPoints) + { + writer.WriteLine($"{calcPoint.X}, {calcPoint.Z}"); + } + writer.WriteLine("[END CALC POINTS]"); + } + } } \ No newline at end of file