我想继续上一个被误解为与2D几何相关的问题,结果我得不到令人满意的答案(Share CGAL's geometry between processes in C++)并再次问它,但这次正确,突出显示,我是谈论3D Cgals多面体几何。
在CGAL手册中,我读到可以实例化HalfedgeDS。我想将它放在共享内存中,以便其他进程可以使用它(请注意,它必须在进程之间共享,而不是线程)。如何使我的自定义分配器适合我的需要,所以我可以把它作为Alloc参数?那么其他参数 - “特征”和“项目” - 通常你只需要使用顶级课程时就不必担心它。下面我发布了最有趣的片段,我在CGALs手册中找到了我认为可能有用的手册:
HalfedgeDS是一个类模板,将被使用 作为其他类模板的参数,例如CGAL :: Polyhedron_3。 用于实例化的模板参数 HalfedgeDS将由另一个班级提供 模板。因此,三个模板参数及其含义 是必须的。我们区分模板 HalfedgeDS及其实例化。
请注意,我只对与3D几何体相关的解决方案感兴趣。
答案 0 :(得分:1)
我猜你有兴趣使用CGAL::HalfedgeDS_list,这是Polyhedron类默认使用的boost interprocess allocator。作为HalfedgeDS概念的所有模型,它有一个分配器作为模板参数。
然后使用共享内存分配器(如{{3}})将完成这项工作。