2012-11-27 2 views
1

vcglib을 사용하여 점군을 기반으로 서페이스를 재구성하고 싶습니다.vcglib 예제를 사용할 때 어설 션 오류

trimesh_allocate : 나는 (제공된 예제 또한, 예를 들어/vcglib/응용 프로그램/샘플/trimesh_allocate를) 내 프로그램을 실행할 때마다 그러나 나는 다음과 같은 출력을 얻을 ../../../vcg/simplex/을 vertex/component.h : 50 : int vcg :: vertex :: EmptyCore :: cFlags() const [TT = MyUsedTypes] : 어설 션 '0'에 실패했습니다.

어떤 아이디어로 해결할 수 있습니까? Ubuntu 12.04에서 QT-Creator 2.4.1을 사용하고 있습니다. net 컴파일러 또는 링커 오류가 발생합니다. 위해 사전에 많은 MIRCO

답변

1

이러한 오류를 제거하는

덕분에 당신은 일반적으로 정점, 가장자리, 얼굴, 메시 정의의 정의를 변경해야합니다. 내가 사용하는 일이 예제를 얻을 수 :

class MyFace; 
class MyVertex; 

struct MyUsedTypes : public vcg::UsedTypes< vcg::Use<MyVertex>::AsVertexType, 
vcg::Use<MyFace>::AsFaceType>{}; 

class MyVertex : public vcg::Vertex< MyUsedTypes, vcg::vertex::Coord3f, vcg::vertex::Normal3f, vcg::vertex::VFAdj, vcg::vertex::BitFlags, vcg::vertex::Mark>{}; 
class MyFace : public vcg::Face < MyUsedTypes, vcg::face::VertexRef, vcg::face::Normal3f, vcg::face::FFAdj, vcg::face::Mark, vcg::face::VFAdj, vcg::face::BitFlags > {}; 
class MyMesh : public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> > {}; 

은 내가 vcg::xx::BitFlags는 정점과 얼굴을 모두 추가 할 필요가 그들이다 믿는다. 이것은 cFlags()에 대한 오류에서 볼 수 있습니다. 나는 당신의 솔루션을 시도

// WRONG WAY of iterating: FN() != m.face.size() if there are deleted elements 
/*for(int i=0;i<m.FN();++i) 
{ 
if(!fi->IsD()) 
    { 
    MyMesh::CoordType b = vcg::Barycenter(*fi); 
    } 
}*/ 
+1

:

는 또한, trimesh_allocate.cpp 예를 들어, 당신은 다음 절을 주석 처리해야합니다. 하지만 그것은 나를 위해 작동하지 않습니다 ... 하지만 다른 간단한 예제는 나를 위해 작동합니다. 메쉬에 Vertices를 삽입하는 방법을 알고 있습니까? 예제에서 설명한대로 피곤합니다. 하지만 400k 버텍스처럼 MyMesh :: VertexPointer ivp [400000];을 삽입하려고합니다. 프로그램이 오류없이 중단됩니다. 도와 줘서 고마워. –

+0

새로운 질문을하고 여기에 링크를 배치하면 답변을 드리겠습니다. – Deepfreeze

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 나는 [여기] 질문을 게시했습니다 (http://stackoverflow.com/questions/41628620/program-crashes-while-creating-vertexpointer-of-more-then-400k-vertex-in-vcg) –