mirror of https://github.com/CGAL/cgal
69 lines
1.5 KiB
C++
69 lines
1.5 KiB
C++
/*!
|
|
\ingroup PkgSpatialSearchingDConcepts
|
|
\cgalConcept
|
|
|
|
\cgalAdvancedConcept
|
|
\cgalAdvancedBegin
|
|
The concept `Splitter` defines the requirements for a function object class implementing a splitting rule.
|
|
\cgalAdvancedEnd
|
|
|
|
\cgalHasModel `CGAL::Fair<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Median_of_rectangle<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Median_of_max_spread<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Midpoint_of_rectangle<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Midpoint_of_max_spread<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Sliding_fair<Traits, SpatialSeparator>`
|
|
\cgalHasModel `CGAL::Sliding_midpoint<Traits, SpatialSeparator>`
|
|
|
|
*/
|
|
|
|
class Splitter {
|
|
public:
|
|
|
|
/// \name Types
|
|
/// The parameters `aspect_ratio` and `bucket_size` define the way in which \f$k\f$ - \f$d\f$ tree is constructed.
|
|
/// @{
|
|
|
|
/*!
|
|
Number type.
|
|
*/
|
|
typedef unspecified_type FT;
|
|
|
|
/*!
|
|
Separator.
|
|
*/
|
|
typedef unspecified_type Separator;
|
|
|
|
/*!
|
|
Typedef to an instantiation of `CGAL::Point_container<Traits>`.
|
|
*/
|
|
typedef unspecified_type Container;
|
|
|
|
/// @}
|
|
|
|
/// \name Operations
|
|
/// @{
|
|
|
|
/*!
|
|
Returns the maximal ratio between the largest and smallest side
|
|
of a cell allowed for fair splitting.
|
|
*/
|
|
FT aspect_ratio() const;
|
|
|
|
/*!
|
|
Returns the bucket size of the leaf nodes.
|
|
*/
|
|
unsigned int bucket_size() const;
|
|
|
|
/*!
|
|
|
|
Sets up `sep` and splits points of `c0` into `c0` and `c1` using `sep`.
|
|
Container `c0` should contain at least two points and `c1` must be empty.
|
|
|
|
*/
|
|
void operator()(Separator& sep, Container& c0, Container& c1) const;
|
|
|
|
/// @}
|
|
|
|
}; /* end Splitter */
|