@Override public int hashCode(){
  int result=23;
  long l=Double.doubleToLongBits(this.top);
  result=37 * result + (int)(l ^ (l >>> 32));
  l=Double.doubleToLongBits(this.bottom);
  result=37 * result + (int)(l ^ (l >>> 32));
  l=Double.doubleToLongBits(this.left);
  result=37 * result + (int)(l ^ (l >>> 32));
  l=Double.doubleToLongBits(this.right);
  result=37 * result + (int)(l ^ (l >>> 32));
  return result;
}

@ Override public int hashCode ( ) { int result = 23 ; long l = Double . doubleToLongBits ( this . top ) ; result = 37 * result + ( int ) ( l ^ ( l > > > 32 ) ) ; l = Double . doubleToLongBits ( this . bottom ) ; result = 37 * result + ( int ) ( l ^ ( l > > > 32 ) ) ; l = Double . doubleToLongBits ( this . left ) ; result = 37 * result + ( int ) ( l ^ ( l > > > 32 ) ) ; l = Double . doubleToLongBits ( this . right ) ; result = 37 * result + ( int ) ( l ^ ( l > > > 32 ) ) ; return result ; }
returns a hash code for this object .
