уточнение сетки в VCG

#c #mesh #vertex #vcg

#c #сетка #вершина #vcg

Вопрос:

Кто-нибудь делал уточнение trimesh в библиотеке VCG? Я бы добавил это в качестве тега, но у меня пока недостаточно высокая репутация. Каждый раз, когда я включаю любую из библиотек уточнения, я получаю следующие ошибки:

 ../../../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, были бы очень признательны.

Ответ №1:

После разговора с создателями выясняется, что это проблема в том, как GCC компилирует эту конкретную часть библиотеки. Я не понимаю деталей, но LLVM с этим справляется, GCC — нет. Он отлично работает в Linux, но когда я работал с ним в XCode, у меня возникли проблемы. Это то, что они не собираются обновлять в ближайшее время, так что, похоже, на данный момент VCG mesh-refining не работает в GCC 4.2.

Ответ №2:

Я получил пример уточнения, работающий (наконец-то!) под MinGW GCC-3.4.5http://pastebin.com/uYnCepEY