CGAL Используйте одну и ту же точку Point_2 для 2D-линейных и 2D-круговых операций.C++

Программы на C++. Форум разработчиков
Anonymous
CGAL Используйте одну и ту же точку Point_2 для 2D-линейных и 2D-круговых операций.

Сообщение Anonymous »

Я пытаюсь определить, можно ли использовать одни и те же объекты Point_2 в CGAL для вычисления пересечений с Polygon_2 и Circle_2.
У меня есть следующее:

Код: Выделить всё

    typedef CGAL::Exact_predicates_inexact_constructions_kernel                                             LinearKernel;
typedef CGAL::Algebraic_kernel_for_circles_2_2                                        AlgebraicKernel;
typedef CGAL::Filtered_bbox_circular_kernel_2   CircularKernel;
typedef CGAL::Polygon_2                                                                   Polygon2;
typedef LinearKernel::Point_2                                                                           Point2;
typedef LinearKernel::Line_2                                                                            Line2;
typedef LinearKernel::Segment_2                                                                         Segment2;
typedef CGAL::Circle_2                                                                  Circle2;
typedef CircularKernel::Point_2                                                                         CPoint2;
typedef CircularKernel::Line_2                                                                          CLine2;
typedef CircularKernel::Segment_2                                                                       CSegment2;
Но мне хочется чего-то большего

Код: Выделить всё

typedef CGAL::Exact_predicates_inexact_constructions_kernel                                             LinearKernel;
typedef CGAL::Algebraic_kernel_for_circles_2_2                                        AlgebraicKernel;
typedef CGAL::Filtered_bbox_circular_kernel_2   CircularKernel;
typedef CGAL::Polygon_2                                                                   Polygon2;
typedef LinearKernel::Point_2                                                                           Point2;
typedef LinearKernel::Line_2                                                                            Line2;
typedef LinearKernel::Segment_2                                                                         Segment2;
typedef CGAL::Circle_2                                                                  Circle2;
Например, предположим, что вам нужно определить, пересекается ли линия с многоугольником, а также с другим кругом. Для этого мы можем использовать CGAL::intersection(). Однако, если я использую Line_2 из последних определений с Circle_2, я получаю ошибку компилятора.
Альтернативно, есть ли способ легко преобразовать ядро?

Подробнее здесь: https://stackoverflow.com/questions/786 ... operations

Вернуться в «C++»