C++ VCG中的网格细化

C++ VCG中的网格细化,c++,mesh,vertex,vcg,C++,Mesh,Vertex,Vcg,有人在工厂里做过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 consta

有人在工厂里做过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)
{
模板
void TriSplit(typename TRIMESH_TYPE::FacePointer f,
typename TRIMESH_类型::面指针f1,typename TRIMESH_类型::面指针f2,
typename TRIMESH_类型::VertexPoint vB,中心点中心)
{
我的顶点、面和网格声明如下:

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> > { }
类innerMeshFace:公共面{
};
类myVertex:
公共顶点
{}
类myMesh:public tri::TriMesh{}

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

在与创建者交谈后,发现GCC如何编译库的特定部分是个问题。我不了解细节,但LLVM可以,GCC不行。它在Linux上运行良好,但正如我在在XCode中使用VCG时,我遇到了一些问题。这是他们短期内不会更新的内容,因此目前看来VCG网格细化在GCC 4.2上不起作用。

我在MingW GCC-3.4.5下得到了一个细化工作的示例(最后!)