#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