如何连接两个 CGAL::P oint_set_3 而不重复



我有很多CGAL::P oint_set_3,有没有一种快速将它们写入一个ply文件的方法?

我目前所做的是使用 Point_set_3::join(( 将它们连接在一起,然后使用 CGAL::write_ply_points((。但它会复制所有条目并花费大量时间。

有什么方法可以避免复制条目吗?

谢谢。

请参阅下面的代码示例

typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_3 Point_3;
typedef CGAL::Point_set_3<Point_3> Point_set;
Point_set ps1, ps2;
// insert points
ps1 += ps2 // merge point_set, duplicate happens here
CGAL::write_ply_points(...); // write ply to disk

我找到了一个解决方案:

  1. 创建一个标准::矢量<标准::p空气><Point_3,Vector_3>>;

  2. 使用标准::移动在每个point_set、push_back点和法线上进行迭代器;

  3. 使用创建的矢量写入 ply 文件。

函数write_ply_points()写入流。 因此,您可以使用不同的点集多次调用它。

相关内容

  • 没有找到相关文章

最新更新