Also, this splitting rule maintains an upper bound on the maximal allowed ratio of the longest and shortest side of a rectangle (the value of this upper bound is set in the constructor of the fair splitting rule). Among the splits that satisfy this bound, it selects the one one in which the points have the largest spread. It then considers the most extreme cuts that would be allowed by the aspect ratio bound. This is done by dividing the longest side of the rectangle by the aspect ratio bound. If the median cut lies between these extreme cuts, then we use the median cut. If not, then consider the extreme cut that is closer to the median. If all the points lie to one side of this cut, then we slide the cut until it hits the first point. This may violate the aspect ratio bound, but will never generate empty cells.
#include <CGAL/Splitters.h>
Expects for the first template argument a model of the concept SearchTraits, for example CGAL::Cartesian_d<double>.
Expects for the second template argument a model of the concept Separator. It has as default value the type, CGAL::Plane_separator<Traits::FT>
Traits::FT | FT; | Number type. |
Sliding_fair<Traits, SpatialSeparator> s ( unsigned int bucket_size, FT aspect_ratio=FT(3)); | |
Constructor.
|
FT | s.aspect_ratio () | Returns the maximal ratio between the largest and smallest side of a cell allowed for fair splitting. |
unsigned int | s.bucket_size () | Returns the bucket size of the leaf nodes. |