首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于exact_constructions内核的3D凸包CGAL::halfspace_intersection_3

基于exact_constructions内核的3D凸包CGAL::halfspace_intersection_3
EN

Stack Overflow用户
提问于 2015-07-23 06:39:36
回答 1查看 95关注 0票数 0

我想将CGAL Exact_predicates_exact_constructions_kernel与3D Convex Hulls函数CGAL::halfspace_intersection_3 (CGAL版本.4.6.1),这是我的简单测试:

代码语言:javascript
复制
#include "CGAL/Exact_predicates_exact_constructions_kernel.h"
#include "CGAL/Convex_hull_3/dual/halfspace_intersection_3.h"

typedef CGAL::Exact_predicates_exact_constructions_kernel  K;
typedef K::Plane_3                                         Plane;
typedef K::Point_3                                         Point;
typedef CGAL::Polyhedron_3<K>                              Polyhedron_3;

int main (void) {

    std::list<Plane> planes;
    Polyhedron_3 P;

    CGAL::halfspace_intersection_3(planes.begin(),
                                   planes.end(),
                                   P,
                                   boost::make_optional(Point(0, 0, 0)) );

    return 0;
}

但是我在编译时得到了这个错误:

代码语言:javascript
复制
In file included from /CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h:27:0,
                 from /test/halfspace_intersection_3.cpp:2:
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h: In instantiation of ‘class CGAL::Convex_hull_3::Convex_hull_filtered_traits_dual_3<CGAL::Epeck>’:
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:266:15:   required from ‘class CGAL::Convex_hull_3::Convex_hull_traits_dual_3<CGAL::Epeck, true>’
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/halfspace_intersection_3.h:259:32:   required from ‘void CGAL::halfspace_intersection_3(PlaneIterator, PlaneIterator, Polyhedron&, const boost::optional<typename Polyhedron::Vertex::Point_3>&) [with PlaneIterator = std::_List_iterator<CGAL::Plane_3<CGAL::Epeck> >; Polyhedron = CGAL::Polyhedron_3<CGAL::Epeck>; typename Polyhedron::Vertex::Point_3 = CGAL::Point_3<CGAL::Epeck>]’
/test/halfspace_intersection_3.cpp:18:73:   required from here
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:193:21: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Exact_traits;
                     ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:201:21: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_exact_dual;
                     ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:210:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Equal_3;
                                             ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:216:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Collinear_3;
                                             ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:222:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Coplanar_3;
                                             ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:228:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Less_distance_to_point_3;
                                             ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:234:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Has_on_positive_side_3;
                                             ^
/CGAL-4.6.1/include/CGAL/Convex_hull_3/dual/Convex_hull_traits_dual_3.h:240:45: error: no type named ‘Exact_kernel_rt’ in ‘class CGAL::Epeck’
                     Converter_approx_dual > Less_signed_distance_to_plane_3;
                                             ^
make[2]: *** [CMakeFiles/TestCGAL.dir/halfspace_intersection_3.cpp.o] Error 1

是否可以将精确的构造内核与3D凸包CGAL::halfspace_intersection_3一起使用?请给我一点提示好吗?非常感谢

EN

回答 1

Stack Overflow用户

发布于 2015-07-23 15:19:38

这个版本的CGAL确实有一个bug。修复程序在this commit中。

请注意,由于您希望使用具有精确结构的内核,因此最好使用CGAL::halfspace_intersection_with_constructions_3,它应该更快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31575266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档