2011-05-06 2 views
0

누구든지 VCG library에서 삼제 정제를 한 적이 있습니까? 나는 그것을 태그로 추가 하겠지만 아직 충분한 평판은 없다. 때마다 나는 다음과 같은 오류를 얻을 발견 라이브러리 중 하나를 포함VCG에서 메쉬 정제

typename TRIMESH_TYPE::FacePointer FF0; 

(거대한 C/P 변명) 것을 포함하는 정의는 다음과 같습니다이 줄에

../../../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 

이 :

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는 그렇지 않다. 그것은 리눅스에서 잘 작동하지만 나는 Xcode에서 문제를 겪고있었습니다. 곧 업데이트 될 예정이 아니기 때문에 VCG 메시 정제가 GCC 4.2에서 작동하지 않는 것처럼 보입니다.