OpenMesh入门 验证(关于遍历)

时间:2024-04-08 18:59:58

用3dmax画了网格,如下:

OpenMesh入门 验证(关于遍历)

输出为obj文件,如下:

# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# 创建的文件:06.07.2018 12:16:29


#
# object Rectangle001
#


v  10.0000 0.0000 0.0000
v  10.0000 -10.0000 0.0000
v  15.0000 -5.0000 0.0000
v  -10.0000 10.0000 0.0000
v  -15.0000 5.0000 0.0000
v  -10.0000 0.0000 0.0000
v  -10.0000 -10.0000 0.0000
v  -5.0000 -15.0000 0.0000
v  0.0000 -10.0000 0.0000
v  5.0000 15.0000 0.0000
v  0.0000 10.0000 0.0000
v  10.0000 10.0000 0.0000
v  15.0000 5.0000 0.0000
v  20.0000 10.0000 0.0000
v  5.0000 -15.0000 0.0000
v  10.0000 -20.0000 0.0000
v  -15.0000 -5.0000 0.0000
v  -20.0000 -10.0000 0.0000
v  -10.0000 20.0000 0.0000
v  -5.0000 15.0000 0.0000
v  5.0000 -5.0000 0.0000
v  15.0000 -15.0000 0.0000
v  20.0000 -10.0000 0.0000
v  10.0000 20.0000 0.0000
v  15.0000 15.0000 0.0000
v  5.0000 5.0000 0.0000
v  -5.0000 -5.0000 0.0000
v  -15.0000 -15.0000 0.0000
v  -10.0000 -20.0000 0.0000
v  -5.0000 5.0000 0.0000
v  -15.0000 15.0000 0.0000
v  -20.0000 10.0000 0.0000
v  20.0000 -20.0000 0.0000
v  0.0000 0.0000 0.0000
v  0.0000 -20.0000 0.0000
v  20.0000 0.0000 0.0000
v  0.0000 20.0000 0.0000
v  20.0000 20.0000 0.0000
v  -20.0000 -20.0000 0.0000
v  -20.0000 0.0000 0.0000
v  -20.0000 20.0000 0.0000
# 41 vertices


g Rectangle001
f 1 2 3 
f 4 5 6 
f 7 8 9 
f 10 11 12 
f 12 13 14 
f 15 16 2 
f 17 18 7 
f 19 4 20 
f 9 2 21 
f 2 22 23 
f 24 12 25 
f 26 1 12 
f 6 7 27 
f 28 29 7 
f 4 30 11 
f 31 32 4 
f 16 33 22 
f 27 9 34 
f 35 15 9 
f 1 36 13 
f 34 21 1 
f 3 23 36 
f 20 11 37 
f 11 34 26 
f 37 10 24 
f 25 14 38 
f 18 39 28 
f 30 6 34 
f 40 17 6 
f 29 35 8 
f 41 31 19 
f 32 40 5 
f 15 2 9 
f 35 16 15 
f 22 33 23 
f 16 22 2 
f 29 8 7 
f 8 35 9 
f 6 27 34 
f 7 9 27 
f 21 2 1 
f 9 21 34 
f 11 26 12 
f 34 1 26 
f 13 36 14 
f 1 13 12 
f 2 23 3 
f 1 3 36 
f 4 6 30 
f 30 34 11 
f 19 20 37 
f 4 11 20 
f 10 12 24 
f 37 11 10 
f 12 14 25 
f 24 25 38 
f 17 7 6 
f 40 18 17 
f 39 29 28 
f 18 28 7 
f 32 5 4 
f 5 40 6 
f 41 32 31 
f 31 4 19 
# 64 faces

文件中规定的点、面关系如下(红色为点索引、蓝色为面索引):

OpenMesh入门 验证(关于遍历)


使用openmesh读取网格文件后,通过各种迭代器,查看各种相邻关系

1、VertexVertexIter

点到点的迭代器,可迭代指定节点的单环邻域节点:如,对点0的单环遍历,将依次输出点:2-1-20-33-25-11-12-35

2、FaceFaceIter

面到面的迭代器,可迭代指定面的单环邻域面:如,对面0的单环遍历,将依次输出面:47-40-46

那么问题来了:怎么实现 2-环 甚至 N-环 遍历?

that's all,How about iterate 2-rings or N-rings?