public DsnRectangle union(DsnRectangle p_other){
  double[] result_coor=new double[4];
  result_coor[0]=Math.min(this.coor[0],p_other.coor[0]);
  result_coor[1]=Math.min(this.coor[1],p_other.coor[1]);
  result_coor[2]=Math.max(this.coor[2],p_other.coor[2]);
  result_coor[3]=Math.max(this.coor[3],p_other.coor[3]);
  return new DsnRectangle(this.layer,result_coor);
}

public DsnRectangle union ( DsnRectangle p_other ) { double [ ] result_coor = new double [ 4 ] ; result_coor [ 0 ] = Math . min ( this . coor [ 0 ] , p_other . coor [ 0 ] ) ; result_coor [ 1 ] = Math . min ( this . coor [ 1 ] , p_other . coor [ 1 ] ) ; result_coor [ 2 ] = Math . max ( this . coor [ 2 ] , p_other . coor [ 2 ] ) ; result_coor [ 3 ] = Math . max ( this . coor [ 3 ] , p_other . coor [ 3 ] ) ; return new DsnRectangle ( this . layer , result_coor ) ; }
creates the smallest rectangle containing this rectangle and p_other
