У меня есть 3D-сетка реконструированной сцены с закрытыми отверстиями (областями с отсутствующей геометрией) в файле obj. Я использовал фильтр Close Holes в MeshLab для восстановления геометрии в областях отверстий.
Эта сетка имеет 7728 вершин и 2864 грани. Для работы с геометрией сетки я использую библиотеку OpenMesh.
Я следую официальному руководству на привязках OpenMesh Python. Я использую методы mesh.vf() и mesh.vv() для получения соседних вершин и граней для каждой вершины. Удивительно, я получаю 6141 вершину без соседей - методы mesh.vf() и mesh.vv() возвращают пустые списки. Это странно, поскольку с помощью mesh.faces() получается 2864 лица.
Кроме того, я использовал следующий код для получения списка всех вершин сетки.
unique_vertices = []
all_vertices = []
print('Total number of faces: ', len(mesh.faces()))
for fh in mesh.faces():
# print('face ', fh.idx())
for vh in mesh.fv(fh):
# print('vertex ', vh.idx())
all_vertices.append(vh)
# print('')
unique_vertices = list(set(all_vertices))
Этот код возвращает 8592 уникальных вершины.
Знаете ли вы, в чем может быть причина такого странного поведения OpenMesh API?