#include <iostream>
#include "triangle/triangle.h"
int main() {
triangulateio in, out;
in.numberofpoints = 4;
in.pointlist = (REAL*)malloc(2 * in.numberofpoints * sizeof(REAL));
// Definir tus vértices aquí (x, y)...
in.pointlist[0] = 0.0;
in.pointlist[1] = 0.0;
in.pointlist[2] = 1.0;
in.pointlist[3] = 0.0;
in.pointlist[4] = 1.0;
in.pointlist[5] = 1.0;
in.pointlist[6] = 0.0;
in.pointlist[7] = 1.0;
in.numberofsegments = 4;
in.segmentlist = (int*)malloc(2 * in.numberofsegments * sizeof(int));
// Definir los segmentos (índices de los vértices)...
in.segmentlist[0] = 0;
in.segmentlist[1] = 1;
in.segmentlist[2] = 1;
in.segmentlist[3] = 2;
in.segmentlist[4] = 2;
in.segmentlist[5] = 3;
in.segmentlist[6] = 3;
in.segmentlist[7] = 0;
out.pointlist = (REAL*)NULL;
out.pointattributelist = (REAL*)NULL;
out.pointmarkerlist = (int*)NULL;
out.trianglelist = (int*)NULL;
out.triangleattributelist = (REAL*)NULL;
out.segmentlist = (int*)NULL;
out.segmentmarkerlist = (int*)NULL;
char options[] = "pze";
triangulate(options, &in, &out, (struct triangulateio*)NULL);
std::cout << "Número de triángulos: " << out.numberoftriangles << std::endl;
// Imprimir o utilizar los resultados según tus necesidades...
// Liberar memoria
free(in.pointlist);
free(in.segmentlist);
free(out.pointlist);
free(out.pointattributelist);
free(out.pointmarkerlist);
free(out.trianglelist);
free(out.triangleattributelist);
free(out.segmentlist);
free(out.segmentmarkerlist);
return 0;
}