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);