我目前正在编译一个Qt项目,它将OpenMesh和CUDA集成在一起。由于我必须使用nvcc编译该项目,我从OpenMesh中发现了一个错误:
J:\OpenMesh2.4\include\OpenMesh/Core/System/compiler.hh(109) : fatal error C1189:
#error : "You have to define _USE_MATH_DEFINES in the compiler settings!"
由于编译器是nvcc而不是vc编译器,即使我在“预处理器定义”中添加宏,错误仍然会出现。我只是想知道是否有办法为nvcc添加这
如何处理此错误?我将NOMINMAX添加到预处理器定义中,但它就是不起作用。那么解决方案是什么呢?
错误如下。
ClCompile:
1> tricall.c
1> Detected min macro! OpenMesh does not compile with min/max macros active! Please add a define NOMINMAX to your compiler flags or add #undef min before including OpenMesh headers !
1>d:\programfiles\c_librar
在OpenMesh中,一旦一个命名的属性被添加到一个元素中,它将是永久的,就像解释的一样,该属性在属性管理器的作用域中幸存下来。我的问题是,如何删除这类财产的名称?
到目前为止,我试图由物业经理删除,甚至这次都失败了:
auto face_props = OpenMesh::FProp<FaceProp>(mesh, "face_props");
mesh.remove_property(face_props);
有错误
error: no matching function for call to ‘OpenMesh::TriMesh_ArrayKernelT&l
在OpenMesh文档中没有着色人脸的例子。我应该使用哪个函数将fh0涂成绿色?(我试过mesh.set_color,但没有成功。你可以看到我对代码第二部分的尝试)
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, 0])
vh2 = mesh.add_vertex([2, 1, 0])
vh3 = mesh.add
我的目标是找出一个点是否存在于一个三维多边形中。在这里做这件事是我要做的:
荷载obj网格
from openmesh import *
points = []
triangles = []
mesh = read_trimesh(filename)
for (x, y, z) in mesh.points():
points.append((float(x), float(y), float(z)))
for (v0, v1, v2) in mesh.face_vertex_indices():
triangles.append((int(v0), int(v1), in
我正在尝试实现一个算法,从半边结构中删除一个边和一个顶点。如需插图,请参阅附图:
我知道有一些库,如Openmesh和CGAL等,可以帮助我实现这一点,但我计划自己实现它。
我最初的想法如下:
1. Find out the half edges associated with that edge
2. Find out all the faces associated with each half edge
3. Find out all the edges and vertices corresponds to each face
4. Not sure how to