【问题标题】:refining a mesh in VCG在 VCG 中细化网格
【发布时间】:2012-10-10 03:00:30
【问题描述】:

有没有人在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 经验的人的指点。

【问题讨论】:

    标签: c++ mesh vertex vcg


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我得到了一个 Refine 在 MingW GCC-3.4.5 http://pastebin.com/uYnCepEY 下工作的例子(终于!)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2019-05-09
        • 2013-06-25
        • 1970-01-01
        相关资源
        最近更新 更多