如何在共享内存中分配CGAL Half Edge结构?

时间:2012-10-09 20:04:41

标签: c++ geometry ipc shared-memory cgal

我想继续上一个被误解为与2D几何相关的问题,结果我得不到令人满意的答案(Share CGAL's geometry between processes in C++)并再次问它,但这次正确,突出显示,我是谈论3D Cgals多面体几何。

在CGAL手册中,我读到可以实例化HalfedgeDS。我想将它放在共享内存中,以便其他进程可以使用它(请注意,它必须在进程之间共享,而不是线程)。如何使我的自定义分配器适合我的需要,所以我可以把它作为Alloc参数?那么其他参数 - “特征”和“项目” - 通常你只需要使用顶级课程时就不必担心它。下面我发布了最有趣的片段,我在CGALs手册中找到了我认为可能有用的手册:

  

HalfedgeDS是一个类模板,将被使用   作为其他类模板的参数,例如CGAL :: Polyhedron_3。   用于实例化的模板参数   HalfedgeDS将由另一个班级提供   模板。因此,三个模板参数及其含义   是必须的。我们区分模板   HalfedgeDS及其实例化。

请注意,我只对与3D几何体相关的解决方案感兴趣。

1 个答案:

答案 0 :(得分:1)

我猜你有兴趣使用CGAL::HalfedgeDS_list,这是Polyhedron类默认使用的boost interprocess allocator。作为HalfedgeDS概念的所有模型,它有一个分配器作为模板参数。

然后使用共享内存分配器(如{{3}})将完成这项工作。