如何设置2d CDT以允许截取约束?



我正在将2D CDT地形从不能拦截的约束更改为可以拦截的约束。

我改变了:

typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Constrained_Delaunay_triangulation_2<K> CDT;

typedef CGAL::Exact_predicates_exact_constructions_kernel EK;
typedef CGAL::Constrained_Delaunay_triangulation_2<EK,TDS,Itag> CDT;
typedef CGAL::Constrained_triangulation_plus_2<CDT> CDTP;

:

typedef typedef CDT::<...> 

typedef CDTP::<...>

当我使用类Point来获取点的坐标时,例如:

bool operator()(const Point & p1, const Point & p2) const
{
double x = p1.x();   //<--- Error on this line
...
}

编译器发出错误:

没有从CGAL::Lazy_exact_ntboost::multiprecision::mpq_rational到double的转换

我对这个问题做了研究,但没有成功地修复这个错误。谁能告诉我怎么修理它?

thanks in advance

Itag是控制约束交叉时代码行为的参数(参见文档)。因此,如果您使用EPICK有一个没有交集的工作代码,将Itag更改为Exact_predicates_tag是唯一需要的更改。

相关内容

  • 没有找到相关文章

最新更新