如何使用CGAL::triangulate_polyhedron



我正在尝试使用未记录的函数CGAL::triangulate_polyhedron。但我收到了很多错误。这是我的简单代码:

#include <CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h>
#include <CGAL/point_generators_3.h>
#include <CGAL/algorithm.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/convex_hull_3.h>
#include <CGAL/triangulate_polyhedron.h>
#include <vector>
typedef CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt K;
typedef CGAL::Polyhedron_3<K> Polyhedron_3;
typedef K::Segment_3 Segment_3;
// define point creator
typedef K::Point_3 Point_3;
typedef CGAL::Creator_uniform_3<double, Point_3> PointCreator;

int main() {
    CGAL::Random_points_in_sphere_3<Point_3, PointCreator> gen(100.0);
    // generate 250 points randomly on a sphere of radius 100.0
    // and copy them to a vector
    std::vector<Point_3> points;
    CGAL::cpp11::copy_n(gen, 250, std::back_inserter(points));
    // define polyhedron to hold convex hull
    Polyhedron_3 poly;
    // compute convex hull of non-colinear points
    CGAL::convex_hull_3(points.begin(), points.end(), poly);
    CGAL::triangulate_polyhedron<Polyhedron_3>(poly);
    return 0;
}

以下是(示例)错误:

/CGALtest/include/CGAL/Triangulation_2_filtered_project_trailts_3.h:36:error:"CGAL::Triangulation _2_filtered _project_Trailts_3>::K{aka struct-CGAL::Simple_cartesian}"中没有名为"Exact_kernel"的类型typedef typename K::Exact_kernel Exact_kernel;^/CGALtest/include/CGAL/Triangulation_2_filtered_project_trailts_3.h:39:42:错误:"CGAL::Triangulation _2_filtered _project_Trailts_3>::K{aka struct-CGAL::Simple_cartesian}"中没有名为"近似内核"的类型typedef typename K::近似内核近似内核;^/CGALtest/include/CGAL/Triangulation_2_filtered_project_trailts_3.h:40:27:错误:"CGAL::Triangulation _2_filtered _project_Trailts_3>::K{aka struct-CGAL::Simple_cartesian}"中没有名为"C2E"的类型typedef typename K::C2E C2E;

更像上面的。。。。

加上这个:

/usr/include/c++/4.8/cmath:494:5:注意:模板参数推导/替换失败:。。。/usr/include/c++/4.8/cmath:494:5:错误:"struct__gnu_cxx::__enable_if"中没有名为"__type"的类型在文件中,包含自/home/hamed/workspace/CGALtest/include/CGAL/triangulate_polyhedron.h:32:0,

任何帮助都将不胜感激!

<CGAL/triangulation_polyhedron.h>中的函数没有文档记录,因为它们还没有准备好广泛使用。该标头应该仅由多面体演示使用。

出现编译错误是因为函数模板CGAL::triangulate_polyhedron要求多面体使用的内核是CGAL::Exact_predicates_inexact_triangulation_kernel

正如Sébastien所指出的,无论如何,CGAL::convex_hull_3的输出是一个具有已经三角化的面的多面体。

相关内容

  • 没有找到相关文章

最新更新