#include "delaunay.h" #include "iostream" int main(int argc, char const *argv[]) { std::vector points(21); points[0].set(-0.8, -0.8, 0); points[1].set(0.4, -1.2, 1); points[2].set(1.2, -0.9, 2); points[3].set(1.6, 0.1, 3); points[4].set(2.5, 0.5, 4); points[5].set(4.1, 0.7, 5); points[6].set(5.7, 1.8, 6); points[7].set(5.1, 3.4, 7); points[8].set(2.5, 4.4, 8); points[9].set(1.2, 3.7, 9); points[10].set(-1.2, 3.9, 10); points[11].set(-3.2, 5.1, 11); points[12].set(-4.3, 2.9, 12); points[13].set(-3.1, 0.7, 13); points[14].set(-1.3, 0.6, 14); points[15].set(-2.1, 2.9, 15); points[16].set(0.6, 1.2, 16); points[17].set(0.1, 2.4, 17); points[18].set(2.4, 2.8, 18); points[19].set(3.5, 1.8, 19); points[20].set(3.6, 3.1, 20); if (duplicated_vertex(points)) { std::cerr << "Duplicated vertice detected.\n"; return 0; } std::vector elements; triangulation(points, elements); if (fully_delaunay(elements, points)) { std::clog << "The triangulation is fully delaunay.\n"; } else std::clog << "The triangulation is not fully delaunay\n"; std::cout << "OFF\n"; std::cout << points.size() << " " << elements.size() << " 0\n"; for (int i = 0; i < points.size(); ++i) { std::cout << points[i].x << " " << points[i].y << " 0\n"; } for (int i = 0; i < elements.size(); ++i) { std::cout << "3 " << elements[i].vert[0]->id << " " << elements[i].vert[1]->id << " " << elements[i].vert[2]->id << std::endl; } return 0; }