c++ - 在 VCG 中细化网格

标签 c++ mesh vertex vcg

有人在VCG library 做过trimesh 精炼吗? ?我会将其添加为标签,但我的声誉还不够高。每次我包含任何精炼库时,我都会收到以下错误:

../../../addons/ofxVCGLib/vcglib/vcg/complex/trimesh/refine.h:880:0 
../../../addons/ofxVCGLib/vcglib/vcg/complex/trimesh/refine.h:880: error: expected 
unqualified-id before numeric constant

在这条线上:

typename TRIMESH_TYPE::FacePointer FF0;

包含那个的定义(请原谅巨大的 c/p)看起来像这样:

template<class TRIMESH_TYPE, class CenterPoint>
void TriSplit(typename TRIMESH_TYPE::FacePointer f,
                            typename TRIMESH_TYPE::FacePointer f1,typename TRIMESH_TYPE::FacePointer f2,
                            typename TRIMESH_TYPE::VertexPointer vB, CenterPoint    Center)
{

我的顶点、面和网格声明如下:

class innerMeshFace:public Face<myTypes, face::FFAdj, face::Mark, face::VertexRef, face::BitFlags, face::Normal3f, face::InfoOcf> {

};

class myVertex: 
public Vertex<myTypes, vertex::Coord3f, vertex::BitFlags, vertex::TexCoord2f, vertex::Normal3f, vertex::Mark, vertex::Color4b, vertex::VFAdj, vertex::InfoOcf>  
{}

class myMesh:public tri::TriMesh< vector<myVertex>, vector<innerMeshFace> > { }

所以我不确定我是否误解了其中的内容。我在代码的其他地方使用了 myMesh::FacePointer,我认为模板堆中缺少某些东西。在我尝试包含 refine.h 之前,这一切都工作正常(即编译并执行它应该做的事情)。非常感谢任何有 VCG 经验的人的指点。

最佳答案

在与创建者交谈后,发现这是 GCC 如何编译库的特定部分的问题。我不了解细节,但 LLVM 可以,GCC 不行。它在 Linux 上运行良好,但当我在 XCode 中使用它时,我遇到了问题。这是他们不会很快更新的东西,所以目前看来 VCG 网格优化不适用于 GCC 4.2。

关于c++ - 在 VCG 中细化网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906552/

相关文章:

Three.js:将面法线从局部空间转换为世界空间

c++ - 如何检测图片中的 window 或门?

java - 用简单的图案创建一个 OpenCV Mat

c# - 如何在 WPF 3D 中使用顶点处的值对网格着色?

opengl - glVertexAttribPointer 内置顶点属性,如 gl_Vertex、gl_Normal

mysql - 如何为从 MYSQL 数据库检索到的一个顶点插入 settooltiptext

c++ - Qt connect 无法识别 lambda 表达式

c++ - 打破 vulkan 以测试调试回调是否设置正确的好方法是什么?

c# - 使用不同颜色的 Material 绘制网格

c++ - CGAL 中的表面网格生成代码,未编译