Merge pull request #4461 from lrineau/Mesh_2-support_projection_traits_3-GF

Fix issue #4458 (Mesh_2 and Triangulation_2_projection_traits_3)
This commit is contained in:
Laurent Rineau 2020-03-05 14:52:31 +01:00
commit fb6007bebf
2 changed files with 45 additions and 4 deletions

View File

@ -111,10 +111,8 @@ public:
typedef typename Geom_traits::Compute_squared_distance_2
Compute_squared_distance_2;
Geom_traits traits; /** @warning traits with data!! */
Compute_squared_distance_2 squared_distance =
traits.compute_squared_distance_2_object();
this->traits.compute_squared_distance_2_object();
const Point_2& pa = fh->vertex(0)->point();
const Point_2& pb = fh->vertex(1)->point();
@ -165,7 +163,7 @@ public:
}
}
Compute_area_2 area_2 = traits.compute_area_2_object();
Compute_area_2 area_2 = this->traits.compute_area_2_object();
double area = 2*CGAL::to_double(area_2(pa, pb, pc));

View File

@ -0,0 +1,43 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Constrained_Delaunay_triangulation_2.h>
#include <CGAL/Delaunay_mesher_2.h>
#include <CGAL/Delaunay_mesh_face_base_2.h>
#include <CGAL/Delaunay_mesh_size_criteria_2.h>
#include <CGAL/Triangulation_2_projection_traits_3.h>
#include <iostream>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K1;
typedef CGAL::Triangulation_2_projection_traits_3<K1> K;
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, Tds> CDT;
typedef CGAL::Delaunay_mesh_size_criteria_2<CDT> Criteria;
typedef CDT::Vertex_handle Vertex_handle;
typedef CDT::Point Point;
int main()
{
K gt{ { 0, 0, 1} };
CDT cdt(gt);
Vertex_handle va = cdt.insert(Point(-4,0,0));
Vertex_handle vb = cdt.insert(Point(0,-1,0));
Vertex_handle vc = cdt.insert(Point(4,0,0));
Vertex_handle vd = cdt.insert(Point(0,1,0));
cdt.insert(Point(2, 0.6, 0));
cdt.insert_constraint(va, vb);
cdt.insert_constraint(vb, vc);
cdt.insert_constraint(vc, vd);
cdt.insert_constraint(vd, va);
std::cout << "Number of vertices: " << cdt.number_of_vertices() << std::endl;
std::cout << "Meshing the triangulation..." << std::endl;
CGAL::refine_Delaunay_mesh_2(cdt, Criteria(0.125, 0.5, gt));
std::cout << "Number of vertices: " << cdt.number_of_vertices() << std::endl;
}