Я работаю с деревом AAABB в CGAL. Это в 2D, и у меня есть сегменты, хранящиеся в этом дереве. Теперь я хочу расширить сегменты на каждом конце, пока они не попадут в другой сегмент. Поэтому я попробовал RayShooting, и моя проблема в том, что независимо от того, что я пытаюсь (например, настройка исходной точки F.E.) Функция First_Intersection () CGAL дает мне исходную точку в результате, то есть первое пересечение-это начало лучшего, которое, очевидно, я хочу игнорировать. PrettyPrint-Override ">
Код: Выделить всё
std::optional
algorithm::nearest_intersection_in_direction(
const Point& origin,
const Vector& direction,
const Tree& tree,
const Segment& self_segment)
{
Ray ray(origin, origin + direction);
auto result = tree.first_intersection(ray);
if (result) {
if (const Point* ipoint = std::get_if(&(result->first))) {
// THIS POINT IS ALWAYS REACHED BUT ipoint HAS THE SAME COORDINATES AS ORIGIN
if (*ipoint != self_segment.source() && *ipoint != self_segment.target()) {
return *ipoint;
}
}
}
return std::nullopt;
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... oting-cgal
Мобильная версия