CGAL的三角数据访问

Triangulation_2 < Traits,TDS > 是CGAL中描述二维三角形剖分的一个模板类。实例化时, 它的第一个模板参数要传入一个几何核心类, 第二个模板参数是一个三角剖分的数据结构类(这个参数有一个默认的值)。这个模板类定义了三角剖分的基本用户接口, 它也是其它三角剖分类(如Delaunay_triangulation_2、Regular_triangulation_2)的基类。 因此它是基于CGAL进行二维三角形网格生成和优化算法开发,必须要掌握好这个类。

如图·,对于三角面f来说,它一共有三个顶点、三条边,还有三个相邻的三角面。顶点index排序按照逆时针,并且相邻面neighbor face和边Edge的index分别与对面的顶点index保持一致(如下图neighbor(i), Edge(i)与点i在空间上相对)。


在CGAL中,一个三角形面有三个顶点和三个相邻三角面的数据(不显式地存在边的数据,这也是我觉得很CGAL中很bug的一件事,太不实用了!)。用一个三角面的内部访问函数vertex(i), neighbor(i)来获取相应的顶点、相邻三角面,其数据类型分别为Vertex_handle, Face_handle. 通过这几个指针类型,可以访问到对应的数据。


顶点数据访问

  • CDT::Point pt = vh->point(); 其中vh是数据指针Vertex_handle,具体访问x, y值就可以通过pt.x(), pt.y()来访问。注意,和一般的点数据不同,以上的x, y数据访问多一个括号!(表示通过成员函数访问成员变量,而不能直接访问其内部的成员变量)
  • 三个顶点的数据可以通过访问一个三角面的属性:用Face_handle fh; fh->vertex(i), i=0,1,2,来访问,而且0,1,2分别按照逆
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值