Я хотел бы использовать дерево AABB CGAL для вычисления пересечения между многими статическими сферами и лучами. Я довольно новичок в CGAL, и мне, возможно, понадобится какое-то руководство.
Поскольку не представляется прямой поддержки сфер в дереве AABB, я думаю, необходимо дополнить функциональность, создав AABB_sphere_primitive
. Разве это единственное, что необходимо для получения чего-то вроде AABB_tree / AABB_triangle_3_example.cpp с шарами вместо треугольников? Нужно ли также определять аналог Point_from_triangle_3_iterator_property_map
?
typedef CGAL::Simple_cartesian<double> K;
typedef K::FT FT;
typedef K::Point_3 Point;
typedef K::Plane_3 Plane;
typedef K::Sphere_3 Sphere; // <-- this is done already
typedef std::list<Sphere>::iterator Iterator;
typedef CGAL::AABB_sphere_primitive<K,Iterator> Primitive; // <---- must be defined newly
typedef CGAL::AABB_traits<K, Primitive> Traits;
typedef CGAL::AABB_tree<Traits> Tree;
Процедура пересечения сферы и луча уже где-то реализована (Spherical_kernel_intersections.h
?) И будет использоваться?
Спасибо за указатели.