# Region

Region — Representing a pixel-aligned area

## class Region()

Region is a simple graphical data type representing an area of integer-aligned rectangles. They are often used on raster surfaces to track areas of interest, such as change or clip areas.

class `cairo.``Region`([rectangle_int|rectangle_ints])
  Parameters

    rectangle_int (`RectangleInt` or [`RectangleInt`]) – a rectangle or a list of rectangle

  Allocates a new empty region object or a region object with the containing rectangle(s).

  New in version 1.11.0.

  `copy`()
    Returns

      A newly allocated `Region`.

    Raises

      Error – if memory cannot be allocated.

    Allocates a new Region object copying the area from original.

  `get_extents`()
    Returns

      The bounding rectangle of region

    Return type

      RectangleInt

  `num_rectangles`()
    Returns

      The number of rectangles contained in region

    Return type

      int

  `get_rectangle`(nth)
    Parameters

      nth (int) – a number indicating which rectangle should be returned

    Returns

      The nth rectangle from the region

    Return type

      RectangleInt

  `is_empty`()
    Returns

      Whether region is empty

    Return type

      bool

  `contains_point`(x, y)
    Parameters

      - x (int) – The x coordinate of a point

      - y (int) – The y coordinate of a point

    Returns

      Whether (x , y) is contained in the region

    Return type

      bool

  `contains_rectangle`(rectangle)
    Parameters

      rectangle (RectangleInt) –

    Returns

      region overlap

    Return type

      cairo.RegionOverlap

    Checks whether rectangle is inside, outside or partially contained in region

  `equal`(region)
    Parameters

      region (Region) –

    Returns

      Whether both regions contained the same coverage

    Return type

      bool

  `translate`(dx, dy)
    Parameters

      - dx (int) – Amount to translate in the x direction

      - dy (int) – Amount to translate in the y direction

    Translates region by (dx , dy ).

  `intersect`(other)
    Parameters

      other (`Region` or `RectangleInt`) –

    Returns

      The intersection of the region and the passed region or rectangle

    Return type

      Region

  `subtract`(other)
    Parameters

      other (`Region` or `RectangleInt`) –

    Returns

      The result of the subtraction of the region and the passed region or rectangle

    Return type

      Region

  `union`(other)
    Parameters

      other (`Region` or `RectangleInt`) –

    Returns

      The union of the region and the passed region or rectangle

    Return type

      Region

  `xor`(other)
    Parameters

      other (`Region` or `RectangleInt`) –

    Returns

      The exclusive difference of the region and the passed region or rectangle

    Return type

      Region

## class RectangleInt()

RectangleInt is a data structure for holding a rectangle with integer coordinates.

class `cairo.``RectangleInt`(x=0, y=0, width=0, height=0)
  Parameters

    - x (int) – X coordinate of the left side of the rectangle

    - y (int) – Y coordinate of the the top side of the rectangle

    - width (int) – width of the rectangle

    - height (int) – height of the rectangle

  Allocates a new RectangleInt object.

  New in version 1.11.0.

  `x`

    `int`

  `y`

    `int`

  `width`

    `int`

  `height`

    `int`