이러한 오류를 제거하는
덕분에 당신은 일반적으로 정점, 가장자리, 얼굴, 메시 정의의 정의를 변경해야합니다. 내가 사용하는 일이 예제를 얻을 수 :
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);
}
}*/
:
는 또한,
trimesh_allocate.cpp
예를 들어, 당신은 다음 절을 주석 처리해야합니다. 하지만 그것은 나를 위해 작동하지 않습니다 ... 하지만 다른 간단한 예제는 나를 위해 작동합니다. 메쉬에 Vertices를 삽입하는 방법을 알고 있습니까? 예제에서 설명한대로 피곤합니다. 하지만 400k 버텍스처럼 MyMesh :: VertexPointer ivp [400000];을 삽입하려고합니다. 프로그램이 오류없이 중단됩니다. 도와 줘서 고마워. –새로운 질문을하고 여기에 링크를 배치하면 답변을 드리겠습니다. – Deepfreeze
안녕하세요. 답장을 보내 주셔서 감사합니다. 나는 [여기] 질문을 게시했습니다 (http://stackoverflow.com/questions/41628620/program-crashes-while-creating-vertexpointer-of-more-then-400k-vertex-in-vcg) –