77 lines
1.8 KiB
C++
77 lines
1.8 KiB
C++
#include "delaunay_backup.h"
|
|
#include "iostream"
|
|
#include "fstream"
|
|
#include "iomanip"
|
|
|
|
int main(int argc, char const *argv[])
|
|
{
|
|
std::vector<vertex2dc> points(7);
|
|
|
|
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);
|
|
*/
|
|
|
|
/*
|
|
std::vector<vertex2dc> points(7);
|
|
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(-0.4, 0.5, 3);
|
|
points[4].set(0.2, -0.15, 4);
|
|
points[5].set(0.5, 0.375, 5);
|
|
points[6].set(0.7, -0.15, 6);
|
|
*/
|
|
|
|
if (duplicated_vertex(points))
|
|
{
|
|
std::cerr << "Duplicated vertice detected.\n";
|
|
return 0;
|
|
}
|
|
|
|
std::vector<triangle> 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";
|
|
|
|
// Write a OFF file
|
|
std::cout << "OFF\n";
|
|
std::cout << points.size() << " " << elements.size() << " 0\n";
|
|
for (int i = 0; i < points.size(); i++)
|
|
{
|
|
std::cout << std::setprecision(16) << points[i].x << " " << points[i].y << " 0.0" << std::endl;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
|