Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs =================================================================== diff -u -r5922 -r5950 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 5922) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 5950) @@ -267,10 +267,10 @@ Assert.That(geometry.Surfaces, Has.Count.EqualTo(12)); Assert.That(geometry.Left, Is.EqualTo(xSoilProfile2DOrigin)); Assert.That(soilProfiles[0].Surfaces[0].GeometrySurface.OuterLoop.GetMinX(),Is.EqualTo(xSoilProfile2DOrigin)); - ValidationResult[] validationResults = SoilProfile2DImporter.ValidateGeometry(geometry); + ValidationResult[] validationResults = geometry.ValidateGeometry(); Assert.That(validationResults, Has.Length.EqualTo(0)); geometry = soilProfiles.ElementAt(1).Geometry; - validationResults = SoilProfile2DImporter.ValidateGeometry(geometry); + validationResults = geometry.ValidateGeometry(); Assert.That(validationResults, Has.Length.EqualTo(0)); } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs =================================================================== diff -u -r5922 -r5950 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 5922) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 5950) @@ -95,78 +95,6 @@ } /// - /// Validates the geometry (replaces the one in GeometryData as that does pointer compares instead of location compares). - /// - /// - /// List of validation errors - public static ValidationResult[] ValidateGeometry(Deltares.Geometry.GeometryData geometry) - { - List validationResultList = new List(); - List looseCurves = GetLooseCurves(geometry); - List overhangPoints = GetOverhangPoints(geometry); - if (looseCurves.Count > 0) - { - validationResultList.Add(new ValidationResult(ValidationResultType.Error, - LocalizationManager.GetTranslatedText(geometry, "Loose lines are not allowed"), looseCurves[0])); - } - else if (overhangPoints.Count > 0) - { - validationResultList.Add(new ValidationResult(ValidationResultType.Error, - LocalizationManager.GetTranslatedText(geometry, "Overhangs are not allowed"), overhangPoints[0])); - } - return validationResultList.ToArray(); - } - - private static Deltares.Geometry.GeometryCurve FindFirstConnectingCurveByPoint( - GeometryPoint point, - Deltares.Geometry.GeometryCurve inputCurve, - List searchCurves) - { - var searchCurve = searchCurves.Where((Func) - (curve => curve != inputCurve)).FirstOrDefault((Func) - (curve => curve.HeadPoint.LocationEquals(point))); - if (searchCurve == null) - { - searchCurve = searchCurves.Where((Func) - (curve => curve != inputCurve)).FirstOrDefault((Func) - (curve => curve.EndPoint.LocationEquals(point))); - } - - return searchCurve; - } - - private static List GetLooseCurves(Deltares.Geometry.GeometryData geometry) - { - List looseCurves = new List(); - foreach (Deltares.Geometry.GeometryCurve curve in geometry.Curves) - { - bool flag1 = FindFirstConnectingCurveByPoint(curve.HeadPoint, curve, geometry.Curves) != null; - bool flag2 = FindFirstConnectingCurveByPoint(curve.EndPoint, curve, geometry.Curves) != null; - if (!flag1 || !flag2) - looseCurves.Add(curve); - } - return looseCurves; - } - - private static List GetOverhangPoints(Deltares.Geometry.GeometryData geometry) - { - var surfaceLine = geometry.SurfaceLine; - List overhangPoints = new List(); - if (surfaceLine.Points == null || surfaceLine.Points.Count < 2) - return overhangPoints; - if (surfaceLine.Points.First().X > surfaceLine.Points.Last().X) - surfaceLine.Points.Reverse(); - double x = surfaceLine.Points.First().X; - for (int index = 1; index < surfaceLine.Points.Count; ++index) - { - if (x > surfaceLine.Points[index].X) - overhangPoints.Add(surfaceLine.Points[index - 1]); - x = surfaceLine.Points[index].X; - } - return overhangPoints; - } - - /// /// Reads a soil profile. /// /// The directory to read the from.