2013-03-11 1 views
1

그래서 프로젝트에 OpenMesh 라이브러리를 사용하고 있으며 EdgeHandle e 메서드로 전달됩니다. 이 모서리에 두 얼굴이 합쳐진 것을 볼 수 있습니까? 나는 온라인으로 보았지만 openMesh에 대한 문서는 매우 드물고 EdgeHandle에 대한 자료는 더 드문 경우입니다. 그것은이 다루기 어렵지 않다openmesh EdgeHandle 클래스

답변

0

,

HalfedgeHandle halfedge_handle(VertexHandle _vh) const { 
    return vertex(_vh).halfedge_handle_; 
} 

이 기능을 사용하여, 당신은 edge_handle와 반 모서리 핸들을 생성 할 수 있습니다. 할 수 있습니다.

mymesh.face_handle(_hh); 
mesh.face_handle(mesh.opposite_halfedge_handle(_hh)); 

두 개의 face_handle이 필요합니다.

2

그래, OpenMesh "문서"는 꽤 심해지고 있습니다. 다음 작품 나를 위해 거기에있는 물건을 사용 http://openmesh.org/Documentation/OpenMesh-2.4-Documentation/classOpenMesh_1_1Concepts_1_1KernelT.html

: 그러나, 틴틴으로 언급 face_handle 검색에서, 나는 유용한 기능의 큰 숫자를 제공합니다 거기에 숨겨진이 페이지를 발견

FaceHandle a = mesh.face_handle(mesh.halfedge_handle(e,0)); 
FaceHandle b = mesh.face_handle(mesh.halfedge_handle(e,1)); 

(기술적으로, 함수 호출에서 오른쪽면을 묶었으므로 필자와 똑같이 시도하지 않았습니다. 오른쪽면은 FaceHandle의 형식을 반환해야합니다.)

+0

, 이것은 원래 메쉬 객체가 매개 변수로 전달되거나 전역 변수라고 가정합니다 할 수 있는. – Ren

+2

코드에서 가장자리 'e'에 두 개의 인시던트면이 있다고 가정합니다. 만약 그것이 없다면 (즉 경계 경계 인 경우),'mesh.halfedge_handle()'은'mesh.face_handle()'에 전달 될 때 정의되지 않은 행동을 일으키는 잘못된 핸들을 반환합니다. 그래서 당신은'mesh.halfedge_handle (e, i) .is_valid()'를 검사 할 수 있습니다. –

관련 문제