我是使用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平面?
感谢,
答案 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());