OpenMesh 随机访问一个人脸属性

问题描述

我可以在下面的代码输出一个点的坐标,但无法访问 face 属性。我是不是用错了方法

import openmesh as om
import numpy as np

mesh = om.TriMesh()

# add a a couple of vertices to the mesh
vh0 = mesh.add_vertex([0,1,0])
vh1 = mesh.add_vertex([1,0])
vh2 = mesh.add_vertex([2,0])
vh3 = mesh.add_vertex([0,-1,0])
vh4 = mesh.add_vertex([2,0])

# add a couple of faces to the mesh
fh0 = mesh.add_face(vh0,vh1,vh2)
fh1 = mesh.add_face(vh1,vh3,vh4)
fh2 = mesh.add_face(vh0,vh1)

# add another face to the mesh,this time using a list
vh_list = [vh2,vh4]
fh3 = mesh.add_face(vh_list)

#  0 ==== 2
#  |\  0 /|
#  | \  / |
#  |2  1 3|
#  | /  \ |
#  |/  1 \|
#  3 ==== 4

# get the point with vertex handle vh0
point = mesh.point(vh0)

# get all points of the mesh
point_array = mesh.points()


for x in mesh.vertices():
    print(x) 
    print(x.idx())
    print(mesh.point(x))

    
for x in mesh.faces():
    print(x) 
    print(x.idx())
    #print(mesh.face(x))    <== THIS LINE THROWS ERROR

解决方法

face_array = mesh.face_vertex_indices()

这是有效的方法。