findFarthestPointsSecond :: [Point] -> Int -> Int -> Point -> Double -> Point -> Range -> (Double, Range)
findFarthestPointsSecond srcContours count j pt max_dist start_pt right_slice
        | count == j = (max_dist, right_slice)                
        | otherwise  = findFarthestPointsSecond srcContours count (j + 1) (readPt srcContours (j + 1)) (fst dist_slice) start_pt (snd dist_slice)
        where 
                dist_slice = dist_sliceFunc j pt max_dist right_slice start_pt
findFarthestPointsSecond :: [Point] -> Int -> Int -> Point -> Double -> Point -> Range -> (Double, Range)
findFarthestPointsSecond srcContours count j pt max_dist start_pt right_slice
        | count == j = (max_dist, right_slice)                
        | otherwise  = findFarthestPointsSecond srcContours count (j + 1) (readPt srcContours (j + 1)) (fst dist_slice) start_pt (snd dist_slice)
        where 
                dist_slice = dist_sliceFunc j pt max_dist right_slice start_pt
findFarthestPointsSecond srcContours count j pt max_dist start_pt right_slice
        | count == j = (max_dist, right_slice)                
        | otherwise  = findFarthestPointsSecond srcContours count (j + 1) (readPt srcContours (j + 1)) (fst dist_slice) start_pt (snd dist_slice)
        where 
                dist_slice = dist_sliceFunc j pt max_dist right_slice start_pt