vcg函数值_VCGLib中邻接关系的实现

本文介绍了VCGLib库中如何维护面-面、顶点-面的邻接关系,包括FFAdj属性和VFAdj属性的使用。详细阐述了Pos和Jumping Pos的概念,以及它们在三角网格中的迭代操作,提供了示例代码展示如何在邻接面上进行迭代。
摘要由CSDN通过智能技术生成

VCGLib中邻接关系的维护依赖于各种单形中存储的相关信息。在VCGLib中几乎所有的算法实现都假设存在vcg::face::VertexRef,该属性存储了三个指向顶点对象的指针,可以通过V()函数访问。

面-面邻接关系

面之间的邻接关系存储于vcg::face::FFAdj(正四面体为vcg::face::TTAdj),该属性通过边来记录面之间的邻接关系。下图显示了两个三角形面:

图中顶点编号从0到2,以逆时针顺序编号,边i(i=0..2)的两个端点分别为i和(i+1)%3,因此图中面f0和面f1的公共边对f0而言是0,对f1而言是1。

对于面f的每个边e,vcg::face::FFAdj存储以下信息: FFp(e):指向共享边e的面的指针,若e是border,则该指针指向自己;

FFi(e):在指向的面中e的索引。

例如在上图中,有: f1->FFp(1) == f0

f1->FFi(1) == 0

f0->FFp(0) == f1

f0->FFi(0) == 1

VCGLib中对于非流形的情况也有考虑,因为只是想简单了解,没有看。

Pos

三角网格中,Pos为一三元组,pos = {v,e,f},e是f的边,v是e的端点。下图以小三角形的形式显示了三角网格中的一些pos,在每个面中,每个小三角形指向一个顶点,倚靠一条边。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值