使用任意平面在CGAL中进行2D Delaunay三角剖分

时间:2014-06-27 04:01:45

标签: 2d triangulation cgal delaunay

我是使用CGAL的新手,我想知道CGAL是否支持使用任意平面对3D点进行2D Delaunay三角测量。关于CGAL文档的示例仅列出Projection_traits_xy_3<R>Projection_traits_yz_3<R>Projection_traits_xz_3<R>,换句话说,在xy平面,yz平面和xz平面上投影。有没有什么方法可以定义任意投影平面而不是使用xy,yz和xz平面?

感谢,

1 个答案:

答案 0 :(得分:4)

有一个template < class Kernel > class Triangulation_2_filtered_projection_traits_3没有记录,并在标题中定义:CGAL/Triangulation_2_filtered_projection_traits_3.h

从平面法线构造traits类,并将特征传递给三角剖分。

以下内容应该有效:

 typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
 typedef CGAL::Triangulation_2_filtered_projection_traits_3<K> P_traits;
 typedef CGAL::Delaunay_triangulation_2< P_traits > DT2;
 std::vector< K::Point_3 > points
 P_traits traits( K::Vector_3(1,1,1) );
 DT2 dt2(traits);
 dt2.insert(points.begin(), points.end());