我有很多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
我找到了一个解决方案:
-
创建一个标准::矢量<标准::p空气><Point_3,Vector_3>>;
-
使用标准::移动在每个point_set、push_back点和法线上进行迭代器;
-
使用创建的矢量写入 ply 文件。
函数write_ply_points()
写入流。 因此,您可以使用不同的点集多次调用它。