gpt4 book ai didi

c++ - 如何使用 CGAL::triangulate_polyhedron

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:40 25 4
gpt4 key购买 nike

我正在尝试使用未记录的函数 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_projection_traits_3.h:38:36: 错误:‘CGAL::Triangulation_2_filtered_projection_traits_3 >::K {aka struct CGAL::Simple_cartesian}’中没有名为‘Exact_kernel’的类型 typedef 类型名 K::Exact_kernel Exact_kernel; ^/CGALtest/include/CGAL/Triangulation_2_filtered_projection_traits_3.h:39:42: 错误:‘CGAL::Triangulation_2_filtered_projection_traits_3 >::K {aka struct CGAL::Simple_cartesian}’中没有名为‘Approximate_kernel’的类型 typedef 类型名 K::Approximate_kernel Approximate_kernel; ^/CGALtest/include/CGAL/Triangulation_2_filtered_projection_traits_3.h:40:27: 错误:‘CGAL::Triangulation_2_filtered_projection_traits_3 >::K {aka struct CGAL::Simple_cartesian}’中没有名为‘C2E’的类型 typedef 类型名 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>中的函数没有记录,因为它们还没有准备好被广泛使用。该 header 应该仅供 Polyhedron 演示使用。

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

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

关于c++ - 如何使用 CGAL::triangulate_polyhedron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com