如何在CGAL用户手册中运行细分示例

时间:2014-05-22 23:22:12

标签: cgal

好的,所以我最终安装了CGAL并设法运行了一些示例。现在我需要运行下面的代码,我在CGAL SubDivision手册(http://doc.cgal.org/latest/Subdivision_method_3/index.html#Chapter_3D_Surface_Subdivision_Methods)中找到了代码:

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Subdivision_method_3.h>
#include <iostream>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
using namespace std;
using namespace CGAL;
int main(int argc, char **argv) {
    if (argc != 2) {
        cout << "Usage: DooSabin_subdivision d < filename" << endl;
        cout << " d: the depth of the subdivision (0 < d < 10)" << endl;
        cout << " filename: the input mesh (.off)" << endl;
        return 0;
}
    int d = argv[1][0] - '0';
    Polyhedron P;
    cin >> P; // read the .off
    Subdivision_method_3::DooSabin_subdivision(P,d);
    cout << P; // write the .off
    return 0;
}

我该如何正确运行?我可以成功地执行可执行文件(使用cmake),并使用一个参数(即&gt; ./ subd 3)运行它。

然后我应该为off文件提供一个文件名。所以我下载了一个示例模型(airplane_open.off),但是当我输入名称时,它不会从文件中读取,而是创建一个具有三个零值的多面体实例(默认构造函数?)。

有什么建议?我实际上对斯坦福兔子模型和sqrt3细分算法感兴趣,但如果上面的代码运行,我可以进行必要的修改以使用兔子。

我正在使用mac和终端。

1 个答案:

答案 0 :(得分:2)

如使用输出中所述,您必须致电

./subd 3 < airplane_open.off

&LT;从给定文件重定向标准输入。

纪尧姆