Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs
===================================================================
diff -u -r3462d84f3304a35ba5ce26c7d3afc9c31cdf9205 -rc046d22cfc010414d21bda8cc15806530e315ca3
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 3462d84f3304a35ba5ce26c7d3afc9c31cdf9205)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision c046d22cfc010414d21bda8cc15806530e315ca3)
@@ -121,6 +121,23 @@
return soilModelObjectsForCalculation;
}
+ ///
+ /// Determines if the surfaceline of a calculation is instersecting with the section reference line.
+ ///
+ /// The calculation surface line.
+ /// The line segments that defines the reference line.
+ /// true when intersecting. false otherwise.
+ /// Thrown when contains no elements.
+ public static bool IsSurfaceLineIntersectionWithReferenceLineInSection(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable lineSegments)
+ {
+ if (surfaceLine == null)
+ {
+ return false;
+ }
+ var minimalDistance = lineSegments.Min(segment => segment.GetEuclideanDistanceToPoint(surfaceLine.ReferenceLineIntersectionWorldPoint));
+ return minimalDistance < 1.0e-6;
+ }
+
private static IPipingCalculationItem CreateCalculationGroup(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput)
{
var pipingCalculationGroup = new PipingCalculationGroup(surfaceLine.Name, true);