### Method

# Gsk Path foreach_intersection

since: 4.20

#### Declaration [src]

    gboolean
    gsk_path_foreach_intersection (
      GskPath* path1,
      GskPath* path2,
      GskPathIntersectionFunc func,
      gpointer user_data
    )

#### Description [src]

Finds intersections between two paths.

This function finds intersections between `path1` and `path2`, and calls `func` for each of them, in increasing order for `path1`.

If `path2` is not provided or equal to `path1`, the function finds non-trivial self-intersections of `path1`.

When segments of the paths coincide, the callback is called once for the start of the segment, with `GSK_PATH_INTERSECTION_START`, and once for the end of the segment, with `GSK_PATH_INTERSECTION_END`. Note that other intersections may occur between the start and end of such a segment.

If `func` returns `FALSE`, the iteration is stopped.

Available since: 4.20

#### Parameters

`path2`

  Type: `GskPath`

  The second path.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`func`

  Type: `GskPathIntersectionFunc`

  The function to call for intersections.

`user_data`

  Type: `gpointer`

  User data passed to `func`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

#### Return value

Type: `gboolean`

`FALSE` if `func` returned FALSE`,`TRUE` otherwise.