code: public void union(float left, float top, float right, float bottom) {
          if ((left < right) && (bottom < top)) {
              if ((this.left < this.right) && (this.bottom < this.top)) {
                  if (this.left > left)
                      this.left = left;
                  if (this.top < top)
                      this.top = top;
                  if (this.right < right)
                      this.right = right;
                  if (this.bottom > bottom)
                      this.bottom = bottom;
              } else {
                  this.left = left;
                  this.top = top;
                  this.right = right;
                  this.bottom = bottom;
              }
          }
      }
docs: Update this Viewport to enclose itself and the specified viewport. If the specified viewport is empty, nothing is
  done. If this viewport is empty it is set to the specified viewport.
  
  @param left   The left edge being unioned with this viewport
  @param top    The top edge being unioned with this viewport
  @param right  The right edge being unioned with this viewport
  @param bottom The bottom edge being unioned with this viewport