Polyhedron_3上的CGAL :: do_intersect()

时间:2016-02-25 14:49:01

标签: computational-geometry cgal

我在Polygon_2类型上使用CGAL :: do_intersect()并且效果非常好:

bool Polygon_ac::isIntersecting(FormVirtual* secondForm){

return CGAL::do_intersect(*dynamic_cast<Polygon_2*>(this),
                          *dynamic_cast<Polygon_2*>(secondForm));

} 现在我会检测到交叉点,但在Polyhedron_3之间,它不起作用:

stl_iterator_base_types.h中的错误......

它应该有效还是有另一种方法来实现这个测试?

吉勒

1 个答案:

答案 0 :(得分:1)

它不应该工作。但是,CGAL/intersection_of_Polyhedra_3.h

中有一个未记录的函数
template <typename Polyhedron, typename OutputIterator>
OutputIterator
intersection_Polyhedron_3_Polyhedron_3(
  const Polyhedron& P,
  const Polyhedron& Q,
  OutputIterator out);

表示out std::vector<Point_3>代表PQ之间的交叉折线。使用计数输出迭代器,您可以轻松地执行所需的谓词。