.\" Automatically generated by Pandoc 3.1.6.2
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "al_triangulate_polygon" "3" "" "Allegro reference manual" ""
.hy
.SH NAME
.PP
al_triangulate_polygon - Allegro 5 API
.SH SYNOPSIS
.IP
.nf
\f[C]
#include
bool al_triangulate_polygon(
const float* vertices, size_t vertex_stride, const int* vertex_counts,
void (*emit_triangle)(int, int, int, void*), void* userdata)
\f[R]
.fi
.SH DESCRIPTION
.PP
Divides a simple polygon into triangles, with zero or more other simple
polygons subtracted from it - the holes.
The holes cannot touch or intersect with the outline of the main
polygon.
Simple means the polygon does not have to be convex but must not be
self-overlapping.
.PP
\f[I]Parameters:\f[R]
.IP \[bu] 2
vertices - Interleaved array of (x, y) vertex coordinates for each of
the polygons, including holes.
.IP \[bu] 2
vertex_stride - distance (in bytes) between successive pairs of vertices
in the array.
.IP \[bu] 2
vertex_counts - Number of vertices for each polygon.
The number of vertices in the main polygon is given by vertex_counts[0]
and must be at least three.
Subsequent elements indicate the number of vertices in each hole.
The array must be terminated with an element with value zero.
.IP \[bu] 2
emit_triangle - a function to be called for every set of three points
that form a triangle.
The function is passed the indices of the points in \f[V]vertices\f[R]
and \f[V]userdata\f[R].
.IP \[bu] 2
userdata - arbitrary data to be passed to emit_triangle.
.SH SINCE
.PP
5.1.0
.SH SEE ALSO
.PP
al_draw_filled_polygon_with_holes(3)