public ShapeTileBox bounding_box(){
  if (bounding_box != null)   return bounding_box;
  PlaPointFloat start_corner=start_point_approx();
  PlaPointFloat end_corner=end_point_approx();
  double llx=Math.min(start_corner.v_x,end_corner.v_x);
  double lly=Math.min(start_corner.v_y,end_corner.v_y);
  double urx=Math.max(start_corner.v_x,end_corner.v_x);
  double ury=Math.max(start_corner.v_y,end_corner.v_y);
  PlaPointInt lower_left=new PlaPointInt(Math.floor(llx),Math.floor(lly));
  PlaPointInt upper_right=new PlaPointInt(Math.ceil(urx),Math.ceil(ury));
  bounding_box=new ShapeTileBox(lower_left,upper_right);
  return bounding_box;
}

public ShapeTileBox bounding_box ( ) { if ( bounding_box != null ) return bounding_box ; PlaPointFloat start_corner = start_point_approx ( ) ; PlaPointFloat end_corner = end_point_approx ( ) ; double llx = Math . min ( start_corner . v_x , end_corner . v_x ) ; double lly = Math . min ( start_corner . v_y , end_corner . v_y ) ; double urx = Math . max ( start_corner . v_x , end_corner . v_x ) ; double ury = Math . max ( start_corner . v_y , end_corner . v_y ) ; PlaPointInt lower_left = new PlaPointInt ( Math . floor ( llx ) , Math . floor ( lly ) ) ; PlaPointInt upper_right = new PlaPointInt ( Math . ceil ( urx ) , Math . ceil ( ury ) ) ; bounding_box = new ShapeTileBox ( lower_left , upper_right ) ; return bounding_box ; }
calculates the smallest surrounding box of this line segmant
