Как разместить CGAL Halfedge struture в разделяемой памяти?

Я хочу продолжить мой предыдущий вопрос, который был неправильно понят как связанный с 2D геометрией, и в результате я не получаю удовлетворительного ответа (Делить геометрию CGAL между процессами в C ++) и спросите еще раз, но на этот раз правильно, выделив, я говорю о многогранной геометрии 3D Cgals.

В руководстве CGAL я прочитал, что можно создать экземпляр HalfedgeDS. Я хочу поместить его в разделяемую память, чтобы другой процесс мог использовать его (обратите внимание, он должен быть разделен между процессами, а не потоками). Как сделать мой собственный распределитель, который соответствует моим потребностям, чтобы я мог поместить его в качестве параметра Alloc? А что касается других параметров — «Черты» и «Предметы» — обычно вам не нужно беспокоиться об этом, когда вы используете только классы высшего уровня. Ниже я публикую наиболее интересный фрагмент, который я нашел в руководстве по CGAL, которое, я думаю, может быть полезным:

HalfedgeDS является шаблоном класса и будет использоваться
в качестве аргумента для других шаблонов классов, например CGAL :: Polyhedron_3.
Параметры шаблона для создания экземпляра
HalfedgeDS будет предоставлен этим другим классом
шаблон. Следовательно, три параметра шаблона и их значение
обязательны. Различаем шаблон
HalfedgeDS и его реализация.

Обратите внимание, что меня интересуют только решения, связанные с трехмерной геометрией.

2

Решение

Я думаю, что вы заинтересованы в использовании CGAL :: HalfedgeDS_list, который используется по умолчанию классом Многогранник. Как и вся модель концепции HalfedgeDS, она имеет распределитель в качестве параметра шаблона.

Затем с помощью распределителя общей памяти (например, увеличить межпроцессный распределитель) сделаю работу.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector