2012-10-09 2 views
2

2D 형상과 관련하여 오해 된 이전 질문을 계속하고 싶습니다. 결과적으로 만족스러운 대답을 얻지 못하고 (Share CGAL's geometry between processes in C++) 다시 한 번 물어보십시오.하지만 이번에는 강조하고 싶습니다. 3D Cgals 다면체 기하학.CGAL의 Halfedge 구조를 공유 메모리에 할당하는 방법은 무엇입니까?

나는 CGAL 설명서에서 HalfedgeDS를 인스턴스화 할 수 있음을 읽었습니다. 다른 프로세스에서 사용할 수 있도록 공유 메모리에 배치하려고합니다 (스레드가 아니라 프로세스간에 공유해야 함). 내 필요에 맞는 사용자 정의 할당자를 만드는 방법, 그래서 그것을 Alloc 매개 변수로 넣을 수 있습니까? 그리고 "Traits"및 "Items"와 같은 다른 매개 변수는 무엇보다도 최상위 수준 클래스 만 사용하면 걱정할 필요가 없습니다.

HalfedgeDS가, 클래스 템플릿이며, 다른 클래스 템플릿 인수로 사용됩니다 : 난 내가 도움이 될 수있는 생각 CGALs 설명서, UIN 발견 한 것으로, 가장 흥미로운 조각을 게시 아래 예제 CGAL :: Polyhedron_3. HalfedgeDS를 인스턴스화하기위한 템플릿 매개 변수는이 다른 클래스 템플릿에 의해 제공됩니다. 따라서 세 가지 템플릿 매개 변수와 그 의미는 입니다. 우리는 템플릿 HalfedgeDS와 그것의 인스턴스화를 구별합니다.

3D 형상과 관련된 솔루션에만 관심이 있습니다.

답변

1

Polyhedron 클래스에서 기본적으로 사용하는 CGAL::HalfedgeDS_list을 사용하고 싶습니다. HalfedgeDS 개념의 모든 모델로서 템플릿 매개 변수로서 할당자를 가지고 있습니다.

그런 다음 공유 메모리 할당 자 (예 : boost interprocess allocator)를 사용하면 작업이 수행됩니다.

+0

귀하의 대답은이 질문과 이전 질문에서 요약 한 문제의 훌륭한 요약입니다. 불행히도 당신은 새로운 것을 쓰지 않았다 : ( –

+0

@ danilo2 부스트 "interprocess allocator"로 시도한 적이 있습니까?이 할당자가 질문에 대답하지 않습니까? – PiotrNycz

+0

이 할당자를 사용할 수는 있지만 "특성" 및 "항목"매개 변수. 문제는 내가 HalfedgeDS 초기화하려면이 매개 변수로 전달해야합니다 (또는 공유 메모리 Halfedge 컨테이너 CGAL :: Polyhedron_3) –

관련 문제