Рэй стреляет в CGALC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Рэй стреляет в CGAL

Сообщение Anonymous »

First_Intersection () функция CGAL возвращает происхождение лучей каждый раз вместо реального первого пересечения (с игнорированной исходной точкой, как и должно быть).
Я работаю с деревом 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;
}
У кого -нибудь есть идея, почему ree tree.first_intersection (ray) Всегда дает точку, которая равна self_segment.source ?


Подробнее здесь: https://stackoverflow.com/questions/796 ... oting-cgal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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