public ShapeTileBox bounding_box(int p_from_corner_no,int p_to_corner_no){
  int from_corner_no=Math.max(p_from_corner_no,0);
  int to_corner_no=Math.min(p_to_corner_no,plaline_len(-2));
  double llx=Integer.MAX_VALUE;
  double lly=llx;
  double urx=Integer.MIN_VALUE;
  double ury=urx;
  for (int i=from_corner_no; i <= to_corner_no; ++i) {
    PlaPointFloat curr_corner=corner_approx(i);
    llx=Math.min(llx,curr_corner.v_x);
    lly=Math.min(lly,curr_corner.v_y);
    urx=Math.max(urx,curr_corner.v_x);
    ury=Math.max(ury,curr_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));
  return new ShapeTileBox(lower_left,upper_right);
}

public ShapeTileBox bounding_box ( int p_from_corner_no , int p_to_corner_no ) { int from_corner_no = Math . max ( p_from_corner_no , 0 ) ; int to_corner_no = Math . min ( p_to_corner_no , plaline_len ( - 2 ) ) ; double llx = Integer . MAX_VALUE ; double lly = llx ; double urx = Integer . MIN_VALUE ; double ury = urx ; for ( int i = from_corner_no ; i <= to_corner_no ; ++ i ) { PlaPointFloat curr_corner = corner_approx ( i ) ; llx = Math . min ( llx , curr_corner . v_x ) ; lly = Math . min ( lly , curr_corner . v_y ) ; urx = Math . max ( urx , curr_corner . v_x ) ; ury = Math . max ( ury , curr_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 ) ) ; return new ShapeTileBox ( lower_left , upper_right ) ; }
returns the smallest box containing the intersection points from index p_from_corner_no to index p_to_corner_no of the lines of this polyline
