【发布时间】:2018-10-29 00:18:55
【问题描述】:
我正在使用通过 pip 在 Python 3.6 中安装的 openmesh。我需要向网格的顶点添加自定义属性,以便在每个顶点存储一些数据。我的代码如下:
import openmesh as OM
import numpy as np
mesh = OM.TriMesh()
#Some vertices
vh0 = mesh.add_vertex(np.array([0,0,0]));
vh1 = mesh.add_vertex(np.array([1,0,0]));
vh2 = mesh.add_vertex(np.array([1,1,0]));
vh3 = mesh.add_vertex(np.array([0,1,0]));
#Some data
data = np.arange(mesh.n_vertices)
#Add custom property
for vh in mesh.vertices():
mesh.set_vertex_property('prop1', vh, data[vh.idx()])
#Check properties have been added correctly
print(mesh.vertex_property('prop1'))
OM.write_mesh('mesh.om',mesh)
打印返回[0, 1, 2, 3]。到目前为止,一切都很好。但是当我再次阅读网格时,自定义属性已经消失了:
mesh1 = OM.TriMesh()
mesh1 = OM.read_trimesh('mesh.om')
print(mesh1.vertex_property('prop1'))
返回[None, None, None, None]
我有两个猜测:
1 - 属性一开始没有保存
2 - 读者在读取文件mesh.om时不知道有自定义属性
有人知道如何在 Python 中使用 openmesh 正确保存和读取具有自定义顶点属性的网格吗?或者甚至有可能(以前有人做过吗?)?
是不是我的代码有问题?
感谢您的帮助,
查尔斯。
【问题讨论】:
标签: python python-3.x io openmesh customproperty