tmp update
This commit is contained in:
65
demo.cpp
65
demo.cpp
@@ -1,8 +1,11 @@
|
||||
#include "delaunay.h"
|
||||
#include "iostream"
|
||||
#include "fstream"
|
||||
#include "iomanip"
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
/*
|
||||
std::vector<vertex2dc> points(21);
|
||||
points[0].set(-0.8, -0.8, 0);
|
||||
points[1].set(0.4, -1.2, 1);
|
||||
@@ -25,6 +28,16 @@ int main(int argc, char const *argv[])
|
||||
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))
|
||||
{
|
||||
@@ -32,7 +45,7 @@ int main(int argc, char const *argv[])
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::vector<triangle> elements;
|
||||
std::vector<triangle*> elements;
|
||||
triangulation(points, elements);
|
||||
|
||||
if (fully_delaunay(elements, points))
|
||||
@@ -41,17 +54,51 @@ int main(int argc, char const *argv[])
|
||||
}
|
||||
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)
|
||||
// Write a Gmsh's .msh file
|
||||
std::ofstream outfile("demo.msh");
|
||||
outfile << "$MeshFormat" << std::endl << "2.2 0 8" << std::endl << "$EndMeshFormat "<<std::endl;
|
||||
outfile << "$Nodes" << std::endl << points.size() << std::endl;
|
||||
for (int i = 0; i < points.size(); i++)
|
||||
{
|
||||
std::cout << points[i].x << " " << points[i].y << " 0\n";
|
||||
outfile << points[i].id + 1 << " " << std::setprecision(16)
|
||||
<< points[i].x << " " << points[i].y << " 0.0" << std::endl;
|
||||
}
|
||||
|
||||
for (int i = 0; i < elements.size(); ++i)
|
||||
outfile<<"$EndNodes"<<std::endl;
|
||||
outfile << "$Elements" << std::endl << elements.size() <<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;
|
||||
outfile << i + 1 << " 2 0";
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
outfile << " " << elements[i]->vert[j]->id + 1;
|
||||
}
|
||||
outfile << std::endl;
|
||||
}
|
||||
outfile << "$EndElements"<< std::endl;
|
||||
outfile.close();
|
||||
|
||||
// write a neighbor file
|
||||
outfile.open("demo.neigh");
|
||||
outfile << elements.size() << std::endl;
|
||||
for (int i = 0; i < elements.size(); i++)
|
||||
{
|
||||
outfile << i + 1;
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
if (elements[i]->neigh[j] != nullptr)
|
||||
{
|
||||
outfile << " " << elements[i]->neigh[j]->id + 1;
|
||||
}
|
||||
else outfile << " -1";
|
||||
}
|
||||
outfile << std::endl;
|
||||
}
|
||||
outfile.close();
|
||||
|
||||
// destroy allocated memories
|
||||
for (int i = 0; i < elements.size(); i++)
|
||||
{
|
||||
delete elements[i];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user