private static Point[] GetPathPointsFromIntersectingVisibility(ObstaclePortEntrance sourceEntrance, ObstaclePortEntrance targetEntrance) {
     Point intersect;
     if (!StaticGraphUtility.SegmentsIntersect(sourceEntrance.MaxVisibilitySegment, targetEntrance.MaxVisibilitySegment, out intersect)) {
         return null;
     }
     if (sourceEntrance.HasGroupCrossingBeforePoint(intersect) || targetEntrance.HasGroupCrossingBeforePoint(intersect)) {
         return null;
     }
     return new[] {
             sourceEntrance.UnpaddedBorderIntersect,
             intersect,
             targetEntrance.UnpaddedBorderIntersect
     };
 }