## Points and Rectangles

Points and Rectangles — Simple graphical data types

## Functions

gboolean | gdk_rectangle_intersect ()
void | gdk_rectangle_union ()
gboolean | gdk_rectangle_equal ()

## Types and Values

struct | GdkPoint
| GdkRectangle

## Includes

    #include <gdk/gdk.h>

## Description

GDK provides the GdkPoint and GdkRectangle data types for representing pixels and sets of pixels on the screen. Together with Cairo’s cairo_region_t data type, they make up the central types for representing graphical data.

A GdkPoint represents an x and y coordinate of a point.

A GdkRectangle represents the position and size of a rectangle. The intersection of two rectangles can be computed with `gdk_rectangle_intersect()`. To find the union of two rectangles use `gdk_rectangle_union()`.

cairo_region_t is usually used for managing clipping of graphical operations.

## Functions

### gdk_rectangle_intersect ()

    gboolean
    gdk_rectangle_intersect (const GdkRectangle *src1,
                             const GdkRectangle *src2,
                             GdkRectangle *dest);

Calculates the intersection of two rectangles. It is allowed for `dest` to be the same as either `src1` or `src2` . If the rectangles do not intersect, `dest` ’s width and height is set to 0 and its x and y values are undefined. If you are only interested in whether the rectangles intersect, but not in the intersecting area itself, pass `NULL` for `dest` .

#### Parameters

src1 | a GdkRectangle |
src2 | a GdkRectangle |
dest | return location for the intersection of `src1` and `src2` , or `NULL`. | [out caller-allocates][allow-none]

#### Returns

`TRUE` if the rectangles intersect.

### gdk_rectangle_union ()

    void
    gdk_rectangle_union (const GdkRectangle *src1,
                         const GdkRectangle *src2,
                         GdkRectangle *dest);

Calculates the union of two rectangles. The union of rectangles `src1` and `src2` is the smallest rectangle which includes both `src1` and `src2` within it. It is allowed for `dest` to be the same as either `src1` or `src2` .

Note that this function does not ignore 'empty' rectangles (ie. with zero width or height).

#### Parameters

src1 | a GdkRectangle |
src2 | a GdkRectangle |
dest | return location for the union of `src1` and `src2` . | [out]

### gdk_rectangle_equal ()

    gboolean
    gdk_rectangle_equal (const GdkRectangle *rect1,
                         const GdkRectangle *rect2);

Checks if the two given rectangles are equal.

#### Parameters

rect1 | a GdkRectangle |
rect2 | a GdkRectangle |

#### Returns

`TRUE` if the rectangles are equal.

Since: 3.20

## Types and Values

### struct GdkPoint

    struct GdkPoint {
      gint x;
      gint y;
    };

Defines the x and y coordinates of a point.

#### Members

gint `x`; | the x coordinate of the point. |
gint `y`; | the y coordinate of the point. |

### GdkRectangle

    typedef struct {
        int x, y;
        int width, height;
    } GdkRectangle;

Defines the position and size of a rectangle. It is identical to cairo_rectangle_int_t.