tmp pdate
This commit is contained in:
		
							
								
								
									
										15
									
								
								delaunay.h
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								delaunay.h
									
									
									
									
									
								
							@@ -128,16 +128,16 @@ void triangulation(std::vector<vertex2dc> &in_verts, std::vector<triangle*> &out
 | 
			
		||||
	vertex2dc *tmp_vert = nullptr;
 | 
			
		||||
	std::vector<vertex2dc*> assit_vert;
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy - maxi_s); // lower left corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy - maxi_s, 99990); // lower left corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy - maxi_s); // lower right corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy - maxi_s, 99991); // lower right corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy + maxi_s); // upper right corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy + maxi_s, 99992); // upper right corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy + maxi_s); // upper left corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy + maxi_s, 99993); // upper left corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	triangle *old_tri = nullptr, *tmp_tri = nullptr;
 | 
			
		||||
@@ -316,6 +316,13 @@ void triangulation(std::vector<vertex2dc> &in_verts, std::vector<triangle*> &out
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		std::cout << "Insert time: " << i + 1 << std::endl;
 | 
			
		||||
		for (int e = 0; e < out_tris.size(); ++e)
 | 
			
		||||
		{
 | 
			
		||||
			std::cout << out_tris[e]->vert[0]->id << " " << out_tris[e]->vert[1]->id << " " << out_tris[e]->vert[2]->id << std::endl;
 | 
			
		||||
		}
 | 
			
		||||
		std::cout << "===================\n";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// remove any triangles has an assistant vertex from out_tris
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,8 @@
 | 
			
		||||
#include "cmath"
 | 
			
		||||
#include "vector"
 | 
			
		||||
 | 
			
		||||
#include "iostream"
 | 
			
		||||
 | 
			
		||||
#define ZERO 1e-5
 | 
			
		||||
 | 
			
		||||
// Start vertex definition
 | 
			
		||||
@@ -118,16 +120,16 @@ void triangulation(std::vector<vertex2dc> &in_verts, std::vector<triangle> &out_
 | 
			
		||||
	vertex2dc *tmp_vert = nullptr;
 | 
			
		||||
	std::vector<vertex2dc*> assit_vert;
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy - maxi_s); // lower left corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy - maxi_s, 99990); // lower left corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy - maxi_s); // lower right corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy - maxi_s, 99991); // lower right corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy + maxi_s); // upper right corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx + maxi_s, midy + maxi_s, 99992); // upper right corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy + maxi_s); // upper left corner
 | 
			
		||||
	tmp_vert = new vertex2dc(midx - maxi_s, midy + maxi_s, 99993); // upper left corner
 | 
			
		||||
	assit_vert.push_back(tmp_vert);
 | 
			
		||||
 | 
			
		||||
	triangle *tmp_tri = nullptr;
 | 
			
		||||
@@ -206,6 +208,13 @@ void triangulation(std::vector<vertex2dc> &in_verts, std::vector<triangle> &out_
 | 
			
		||||
			tmp_tri = cnst_tri[c];
 | 
			
		||||
			delete tmp_tri; tmp_tri = nullptr;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		std::cout << "Insert time: " << i + 1 << std::endl;
 | 
			
		||||
		for (int e = 0; e < exist_tri.size(); ++e)
 | 
			
		||||
		{
 | 
			
		||||
			std::cout << exist_tri[e]->vert[0]->id << " " << exist_tri[e]->vert[1]->id << " " << exist_tri[e]->vert[2]->id << std::endl;
 | 
			
		||||
		}
 | 
			
		||||
		std::cout << "===================\n";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// remove any triangles has an assistant vertex from exist_tri
 | 
			
		||||
							
								
								
									
										6
									
								
								demo.cpp
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								demo.cpp
									
									
									
									
									
								
							@@ -5,8 +5,7 @@
 | 
			
		||||
 | 
			
		||||
int main(int argc, char const *argv[])
 | 
			
		||||
{
 | 
			
		||||
	/*
 | 
			
		||||
	std::vector<vertex2dc> points(21);
 | 
			
		||||
	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);
 | 
			
		||||
@@ -14,6 +13,7 @@ int main(int argc, char const *argv[])
 | 
			
		||||
	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);
 | 
			
		||||
@@ -30,6 +30,7 @@ int main(int argc, char const *argv[])
 | 
			
		||||
	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);
 | 
			
		||||
@@ -38,6 +39,7 @@ int main(int argc, char const *argv[])
 | 
			
		||||
	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))
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								demo.msh
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								demo.msh
									
									
									
									
									
								
							@@ -5,19 +5,16 @@ $Nodes
 | 
			
		||||
7
 | 
			
		||||
1 -0.8 -0.8 0.0
 | 
			
		||||
2 0.4 -1.2 0.0
 | 
			
		||||
3 1.2 0.9 0.0
 | 
			
		||||
4 -0.4 0.5 0.0
 | 
			
		||||
5 0.2 -0.15 0.0
 | 
			
		||||
6 0.5 0.375 0.0
 | 
			
		||||
7 0.7 -0.15 0.0
 | 
			
		||||
3 1.2 -0.9 0.0
 | 
			
		||||
4 1.6 0.1 0.0
 | 
			
		||||
5 2.5 0.5 0.0
 | 
			
		||||
6 4.1 0.7 0.0
 | 
			
		||||
7 5.7 1.8 0.0
 | 
			
		||||
$EndNodes
 | 
			
		||||
$Elements
 | 
			
		||||
7
 | 
			
		||||
1 2 0 1 2 5
 | 
			
		||||
2 2 0 4 1 5
 | 
			
		||||
3 2 0 3 4 6
 | 
			
		||||
4 2 0 4 5 6
 | 
			
		||||
5 2 0 5 2 7
 | 
			
		||||
6 2 0 3 6 7
 | 
			
		||||
7 2 0 6 5 7
 | 
			
		||||
4
 | 
			
		||||
1 2 0 3 4 2
 | 
			
		||||
2 2 0 4 3 5
 | 
			
		||||
3 2 0 7 5 6
 | 
			
		||||
4 2 0 5 3 6
 | 
			
		||||
$EndElements
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								demo.neigh
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								demo.neigh
									
									
									
									
									
								
							@@ -1,8 +1,5 @@
 | 
			
		||||
7
 | 
			
		||||
1 -1 5 2
 | 
			
		||||
2 -1 1 4
 | 
			
		||||
3 -1 4 6
 | 
			
		||||
4 2 7 3
 | 
			
		||||
5 1 -1 7
 | 
			
		||||
6 3 7 -1
 | 
			
		||||
7 4 5 6
 | 
			
		||||
4
 | 
			
		||||
1 2 -1 -1
 | 
			
		||||
2 1 4 -1
 | 
			
		||||
3 -1 4 -1
 | 
			
		||||
4 2 -1 3
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								demo_back.off
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								demo_back.off
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
OFF
 | 
			
		||||
7 5 0
 | 
			
		||||
-0.8 -0.8 0.0
 | 
			
		||||
0.4 -1.2 0.0
 | 
			
		||||
1.2 -0.9 0.0
 | 
			
		||||
1.6 0.1 0.0
 | 
			
		||||
2.5 0.5 0.0
 | 
			
		||||
4.1 0.7 0.0
 | 
			
		||||
5.7 1.8 0.0
 | 
			
		||||
3 0 1 3
 | 
			
		||||
3 1 2 3
 | 
			
		||||
3 3 2 4
 | 
			
		||||
3 4 2 5
 | 
			
		||||
3 4 5 6
 | 
			
		||||
							
								
								
									
										76
									
								
								demo_backup.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								demo_backup.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
#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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										84
									
								
								log.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								log.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
Insert time: 1
 | 
			
		||||
0 99991 99992
 | 
			
		||||
99990 99991 0
 | 
			
		||||
99992 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 2
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
99991 99992 1
 | 
			
		||||
99992 99993 1
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 3
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
2 99993 1
 | 
			
		||||
99991 99992 2
 | 
			
		||||
99992 99993 2
 | 
			
		||||
1 99991 2
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 4
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
2 3 1
 | 
			
		||||
99991 99992 3
 | 
			
		||||
1 99991 2
 | 
			
		||||
99992 99993 3
 | 
			
		||||
99993 1 3
 | 
			
		||||
2 99991 3
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 5
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
2 3 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
4 99993 3
 | 
			
		||||
99993 1 3
 | 
			
		||||
2 99991 4
 | 
			
		||||
99991 99992 4
 | 
			
		||||
99992 99993 4
 | 
			
		||||
3 2 4
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 6
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
2 3 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
4 99993 3
 | 
			
		||||
99993 1 3
 | 
			
		||||
2 99991 5
 | 
			
		||||
99992 99993 4
 | 
			
		||||
3 2 4
 | 
			
		||||
99991 99992 5
 | 
			
		||||
99992 4 5
 | 
			
		||||
4 2 5
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 7
 | 
			
		||||
99990 99991 1
 | 
			
		||||
1 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
0 99990 1
 | 
			
		||||
2 3 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
4 99993 3
 | 
			
		||||
99993 1 3
 | 
			
		||||
2 99991 5
 | 
			
		||||
99992 99993 4
 | 
			
		||||
3 2 4
 | 
			
		||||
6 4 5
 | 
			
		||||
4 2 5
 | 
			
		||||
99991 99992 6
 | 
			
		||||
99992 4 6
 | 
			
		||||
5 99991 6
 | 
			
		||||
===================
 | 
			
		||||
							
								
								
									
										98
									
								
								log_backup.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								log_backup.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
			
		||||
Insert time: 1
 | 
			
		||||
99990 99991 0
 | 
			
		||||
99991 99992 0
 | 
			
		||||
99992 99993 0
 | 
			
		||||
99993 99990 0
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 2
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
99991 99992 1
 | 
			
		||||
99992 99993 1
 | 
			
		||||
99993 0 1
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 3
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
99991 99992 2
 | 
			
		||||
1 99991 2
 | 
			
		||||
99992 99993 2
 | 
			
		||||
99993 0 2
 | 
			
		||||
0 1 2
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 4
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
99991 99992 3
 | 
			
		||||
2 99991 3
 | 
			
		||||
99992 99993 3
 | 
			
		||||
99993 0 3
 | 
			
		||||
0 1 3
 | 
			
		||||
1 2 3
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 5
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
99993 0 3
 | 
			
		||||
0 1 3
 | 
			
		||||
1 2 3
 | 
			
		||||
99991 99992 4
 | 
			
		||||
2 99991 4
 | 
			
		||||
3 2 4
 | 
			
		||||
99992 99993 4
 | 
			
		||||
99993 3 4
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 6
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
99993 0 3
 | 
			
		||||
0 1 3
 | 
			
		||||
1 2 3
 | 
			
		||||
3 2 4
 | 
			
		||||
99992 99993 4
 | 
			
		||||
99993 3 4
 | 
			
		||||
99991 99992 5
 | 
			
		||||
99992 4 5
 | 
			
		||||
2 99991 5
 | 
			
		||||
4 2 5
 | 
			
		||||
===================
 | 
			
		||||
Insert time: 7
 | 
			
		||||
99993 99990 0
 | 
			
		||||
99990 99991 1
 | 
			
		||||
0 99990 1
 | 
			
		||||
1 99991 2
 | 
			
		||||
99993 0 3
 | 
			
		||||
0 1 3
 | 
			
		||||
1 2 3
 | 
			
		||||
3 2 4
 | 
			
		||||
99993 3 4
 | 
			
		||||
2 99991 5
 | 
			
		||||
4 2 5
 | 
			
		||||
99992 99993 6
 | 
			
		||||
99993 4 6
 | 
			
		||||
99991 99992 6
 | 
			
		||||
5 99991 6
 | 
			
		||||
4 5 6
 | 
			
		||||
===================
 | 
			
		||||
OFF
 | 
			
		||||
7 5 0
 | 
			
		||||
-0.8 -0.8 0.0
 | 
			
		||||
0.4 -1.2 0.0
 | 
			
		||||
1.2 -0.9 0.0
 | 
			
		||||
1.6 0.1 0.0
 | 
			
		||||
2.5 0.5 0.0
 | 
			
		||||
4.1 0.7 0.0
 | 
			
		||||
5.7 1.8 0.0
 | 
			
		||||
3 0 1 3
 | 
			
		||||
3 1 2 3
 | 
			
		||||
3 3 2 4
 | 
			
		||||
3 4 2 5
 | 
			
		||||
3 4 5 6
 | 
			
		||||
		Reference in New Issue
	
	Block a user