bool LL_SHARED intersection_of_line_segments_in_two_dimensions(LineSegment first_segment,
                                                                LineSegment second_segment,
                                                                float* x,float* y)
 {
     float intersection_point_x,intersection_point_y;
     if(intersection_of_lines_in_two_dimensions(first_segment,second_segment,
                                                &intersection_point_x,&intersection_point_y))
     {
         if(x and y)
         {
             *x=intersection_point_x;
             *y=intersection_point_y;
         }
         return ((first_segment.in_range(0,intersection_point_x)
                 and first_segment.in_range(1,intersection_point_y))
                 and (second_segment.in_range(0,intersection_point_x)
                 and second_segment.in_range(1,intersection_point_y)));
     }
     return false;
 }