CGAL三角剖分——自定义顶点信息
在进行三角剖分时,有时需要对顶点进行一些自定义的操作,例如给定一些额外信息、修改其坐标等。本文将介绍如何使用CGAL库实现添加自定义顶点信息的功能。
首先,需要定义一个顶点类,用于存储自定义的数据。可以在顶点类中添加所需的成员变量和方法。例如,以下代码定义了一个名为My_vertex的顶点类,并添加了一个名为weight的double类型成员变量:
struct My_vertex {
double weight;
// other data members and methods
};
然后,在创建三角剖分对象时,需要指定顶点类型。以下代码示例创建了一个使用My_vertex作为顶点类型的三角剖分对象:
#include <CGAL/Delaunay_triangulation_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_vertex_base_with_info_2<My_vertex, K> Vb;
typedef CGAL::Triangulation_data_structure_2<Vb> Tds;
typedef CGAL::Delaunay_triangulation_2<K, Tds> Delaunay;
Delaunay dt;
以上代码中,Triangulation_vertex_base_with_info_2是CGAL库提供的一个顶点基类