class_docstr: Class representing a bounding box (a rectangular area) that
  encloses some objects.
class_docstr_tok: ["Class","representing","a","bounding","box","(","a","rectangular","area",")","that","encloses","some","objects","."]
docstr: Replaces this bounding box with the union of itself and
  another.
  
  Example::
  
      >>> box1 = BoundingBox(10, 20, 50, 60)
      >>> box2 = BoundingBox(70, 40, 100, 90)
      >>> box1 |= box2
      >>> print(box1)
      BoundingBox(10.0, 20.0, 100.0, 90.0)
docstr_tok: ["Replaces","this","bounding","box","with","the","union","of","itself","and","another",".","Example",":",":",">",">",">","box1","=","BoundingBox","(","10",",","20",",","50",",","60",")",">",">",">","box2","=","BoundingBox","(","70",",","40",",","100",",","90",")",">",">",">","box1","|=","box2",">",">",">","print","(","box1",")","BoundingBox","(","10.0",",","20.0",",","100.0",",","90.0",")"]
code: def __ior__(self, other):
      """Replaces this bounding box with the union of itself and
      another.
  
      Example::
  
          >>> box1 = BoundingBox(10, 20, 50, 60)
          >>> box2 = BoundingBox(70, 40, 100, 90)
          >>> box1 |= box2
          >>> print(box1)
          BoundingBox(10.0, 20.0, 100.0, 90.0)
      """
      self._left = min(self._left, other._left)
      self._top = min(self._top, other._top)
      self._right = max(self._right, other._right)
      self._bottom = max(self._bottom, other._bottom)
      return self
  
imports: from collections import defaultdict
  from math import atan2, cos, hypot, sin
  from typing import NamedTuple
  from igraph.utils import consecutive_pairs
label_desc: Use image node_id 1 for calling the BoundingBox obj's underlying member method code with example usage: obj.__ior__(other) and returns: self