CGAL-使用corefine布尔运算在顶点上保留属性

时间:2019-11-19 22:02:36

标签: computational-geometry cgal

我对CGAL相对较新,因此,如果我没有明显的解决方法,请原谅我。

我遵循以下示例进行了corefine + boolean操作后在多面体网格的面上保留属性:

https://github.com/CGAL/cgal/blob/master/Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp

我想知道是否有可能构造类似地在多面网格的顶点上运行的Visitor结构。理想情况下,我想将属性值(双精度向量)从原始网格插入到新的布尔输出顶点上,但是我可以满足于估算最近的邻居值。

我遇到的困难是,Visitor中重载的after_subface_created和after_face_copy函数在为目标面设置半边结构之前就已运行,因此,我不确定如何访问目标面的顶点。有没有办法在corefinement中使用Visitor结构来做到这一点?

1 个答案:

答案 0 :(得分:1)

在旧版本的代码中,我曾经有一个访问者来处理顶点的创建/复制,但是由于缺乏时间,它没有被反向移植。您试图做的是一个很好的解决方法,但是您应该使用访问者来收集信息(例如填写地图[input face] -> std::vector<output face>)并在算法完成后处理该地图。