/// \defgroup PkgSearchStructuresRef Reference Manual
/// \defgroup PkgSearchStructuresConcepts Concepts
/// \ingroup PkgSearchStructuresRef

/// \defgroup PkgSearchStructuresTraitsClasses Traits Classes
/// \ingroup PkgSearchStructuresRef

/// \defgroup PkgSearchStructuresSearchStructure Search Structures
/// \ingroup PkgSearchStructuresRef

/*!
\addtogroup PkgSearchStructuresRef
\cgalPkgDescriptionBegin{dD Range and Segment Trees,PkgSearchStructures}
\cgalPkgPicture{segment_tree.png}
\cgalPkgSummaryBegin
\cgalPkgAuthor{Gabriele Neyer}
\cgalPkgDesc{%Range and segment trees allow to perform window queries on point sets, and to enumerate all ranges enclosing a query point. The provided data structures  are static and they are optimized for fast queries.}
\cgalPkgManuals{Chapter_dD_Range_and_Segment_Trees,PkgSearchStructuresRef}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{0.9}
\cgalPkgBib{cgal:n-rstd}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

This chapter presents the \cgal range tree and  segment tree data structures.

The range tree is theoretically superior to the \f$ Kd\f$-tree, but the
latter often seems to perform better.
However, the range tree as implemented in \cgal is more flexible than the
\f$ Kd\f$-tree implementation, in that it enables to layer together range trees
and segment trees in the same data structure.

\cgalClassifedRefPages

\cgalCRPSection{Concepts}

- `RangeSegmentTreeTraits_k`
- `Sublayer`

\cgalCRPSection{Traits Classes}

- `CGAL::Range_segment_tree_set_traits_2<R>`
- `CGAL::Range_segment_tree_set_traits_3<R>`
- `CGAL::Range_tree_map_traits_2<R,T>`
- `CGAL::Range_tree_map_traits_3<R,T>`
- `CGAL::Segment_tree_map_traits_2<R,T>`
- `CGAL::Segment_tree_map_traits_3<R,T>`
- `CGAL::tree_interval_traits`
- `CGAL::tree_point_traits`

\cgalCRPSection{Search Structure Classes}

- `CGAL::Range_tree_d<Data, Window, Traits>`
- `CGAL::Range_tree_k<Traits>`
- `CGAL::Segment_tree_d<Data, Window, Traits>`
- `CGAL::Segment_tree_k<Traits>`
- `CGAL::Tree_anchor<Data, Window>`

*/

