+static void write_out_data(struct triangulateio *out) {
+ FILE *node = fopen("tile.node", "w");
+ fprintf(node, "%d 2 %d 0\n",
+ out->numberofpoints, out->numberofpointattributes);
+ for (int i = 0; i < out->numberofpoints; i++) {
+ fprintf(node, "%d %.6f %.6f %.2f\n",
+ i, out->pointlist[2*i], out->pointlist[2*i + 1], 0.0);
+ }
+ fclose(node);
+
+ FILE *ele = fopen("tile.ele", "w");
+ fprintf(ele, "%d 3 0\n", out->numberoftriangles);
+ for (int i = 0; i < out->numberoftriangles; i++) {
+ fprintf(ele, "%d ", i);
+ for (int j = 0; j < out->numberofcorners; j++) {
+ fprintf(ele, "%d ", out->trianglelist[i * out->numberofcorners + j]);
+ }
+ for (int j = 0; j < out->numberoftriangleattributes; j++) {
+ fprintf(ele, "%.6f ",
+ out->triangleattributelist[i
+ * out->numberoftriangleattributes
+ + j]
+ );
+ }
+ fprintf(ele, "\n");
+ }
+ fclose(ele);
+
+ FILE *fp = fopen("tile.poly", "w");
+ fprintf(fp, "0 2 1 0\n");
+ fprintf(fp, "%d 0\n", out->numberofsegments);
+ for (int i = 0; i < out->numberofsegments; ++i) {
+ fprintf(fp, "%d %d %d\n",
+ i, out->segmentlist[2*i], out->segmentlist[2*i + 1]);
+ }
+ fprintf(fp, "%d\n", out->numberofholes);
+ for (int i = 0; i < out->numberofholes; i++) {
+ fprintf(fp, "%d %.6f %.6f\n",
+ i, out->holelist[2*i], out->holelist[2*i + 1]);
+ }
+ fprintf(fp, "%d\n", out->numberofregions);
+ for (int i = 0; i < out->numberofregions; i++) {
+ fprintf(fp, "%d %.6f %.6f %.6f\n",
+ i, out->regionlist[4*i], out->regionlist[4*i + 1],
+ out->regionlist[4*i + 2]);
+ }
+}
+
+