mirror of https://github.com/CGAL/cgal
fix images: combine 2 in one, and make bigger gifs as they were unreadble
This commit is contained in:
parent
b7af4a58fd
commit
023e22e28f
|
|
@ -2,7 +2,7 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Range_segment_tree_traits_set_2` is a range and segment tree traits class for the
|
||||
2-dimensional point class from the \cgal kernel. The class is
|
||||
|
|
@ -34,7 +34,7 @@ std::pair<Key, Key> Interval;
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Range_segment_tree_traits_set_3` is a range and segment tree traits class for the 3-dimensional
|
||||
point class from the \cgal kernel.
|
||||
|
|
@ -66,7 +66,7 @@ std::pair<Key, Key> Interval;
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Range_tree_traits_map_2` is a range tree traits class for the
|
||||
2-dimensional point class from the \cgal kernel, where data of
|
||||
|
|
@ -100,7 +100,7 @@ std::pair<R::Point_2, R::Point_2 > Interval;
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Range_tree_traits_map_3` is a range and segment tree traits class for the 3-dimensional
|
||||
point class from the \cgal kernel, where data of
|
||||
|
|
@ -134,7 +134,7 @@ std::pair<R::Point_3, R::Point_3> Interval;
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Segment_tree_traits_map_2` is a segment tree traits class for the
|
||||
2-dimensional point class from the \cgal kernel, where data of
|
||||
|
|
@ -168,7 +168,7 @@ std::pair<std::pair<Key,Key>,T> Interval;
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
The class `Segment_tree_traits_map_3` is a segment tree traits class for the 3-dimensional
|
||||
point class from the \cgal kernel, where data of
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDSearchStructure
|
||||
|
||||
\brief A \f$ d\f$-dimensional range tree stores points and can be used to determine all
|
||||
points that lie inside a given \f$ d\f$-dimensional interval.
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDSearchStructure
|
||||
|
||||
An object of the class `Range_tree_k` is a \f$ k\f$-dimensional range tree
|
||||
that can store k-dimensional keys of type `Key`.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDSearchStructure
|
||||
|
||||
\brief A \f$ d\f$-dimensional segment tree stores \f$ d\f$-dimensional intervals and can be used to find all intervals that enclose, partially overlap, or contain a query interval, which may be a point.
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDSearchStructure
|
||||
|
||||
An object of the class `Segment_tree_k` is a \f$ k\f$-dimensional segment tree
|
||||
that can store k-dimensional intervals of type `Interval`.
|
||||
|
|
|
|||
|
|
@ -14,11 +14,10 @@ classes for the data items (`Data` and `Window`).
|
|||
Example
|
||||
--------------
|
||||
|
||||
The following figures show a number of rectangles and a \f$ 2\f$-dimensional
|
||||
The following figures show a number of rectangles and a 2-dimensional
|
||||
segment tree built on them.
|
||||
|
||||
\image html segment_ex2.gif "Two dimensional interval data."
|
||||
\image html segment_ex4.gif "Two dimensional segment tree according to the interval data."
|
||||
\image html segment_ex2.gif "Two dimensional interval data and the corresponding segment tree."
|
||||
*/
|
||||
template< typename Data, typename Window >
|
||||
class Tree_anchor : public Tree_base {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
`tree_interval_traits` is a template class
|
||||
that provides an interface to data items. It is similar to
|
||||
|
|
@ -142,7 +142,7 @@ static bool comp(Key& key1, Key& key2);
|
|||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
\ingroup PkgRangeSegmentTreesD
|
||||
\ingroup PkgRangeSegmentTreesDTraitsClasses
|
||||
|
||||
`tree_point_traits` is a template class
|
||||
that provides an interface to data items.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
/// \defgroup PkgRangeSegmentTreesD dD Range and Segment Trees
|
||||
/// \defgroup PkgRangeSegmentTreesDConcepts Concepts
|
||||
/// \ingroup PkgRangeSegmentTreesD
|
||||
|
||||
/// \defgroup PkgRangeSegmentTreesDTraitsClasses Traits Classes
|
||||
/// \ingroup PkgRangeSegmentTreesD
|
||||
|
||||
/// \defgroup PkgRangeSegmentTreesDSearchStructure Search Structures
|
||||
/// \ingroup PkgRangeSegmentTreesD
|
||||
|
||||
/*!
|
||||
\addtogroup PkgRangeSegmentTreesD
|
||||
\todo check generated documentation
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ functions are non trivial.
|
|||
|
||||
The design concept is illustrated in the figure below.
|
||||
|
||||
\image html rsd.gif
|
||||
\image html rsd.gif Design of the range and segment tree data structure. The symbol triangle means that the lower class is derived from the upper class.
|
||||
|
||||
E.g. in order to define a two dimensional multilayer tree, which
|
||||
consists of a range tree in the first dimension and a segment
|
||||
|
|
@ -290,26 +290,12 @@ interval (`window_query`).
|
|||
|
||||
The pictures below show a two-dimensional and a \f$d\f$-dimensional range tree.
|
||||
|
||||
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=650>
|
||||
<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH=50% NOWRAP COLSPAN=2>
|
||||
<A NAME="User:fig:range.eps"><img border=0 src="./range2.gif" alt="A two-dimensional range tree"></A>
|
||||
</TD>
|
||||
<A NAME="User:fig:d-range.eps"><TD ALIGN=LEFT VALIGN=TOP WIDTH=50%><img border=0 src="./d-range.gif" alt="A d-dimensional range tree"></A>
|
||||
</TD></TR></TABLE>
|
||||
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=650>
|
||||
<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH=45% COLSPAN=2>
|
||||
A two-dimensional range tree. The
|
||||
tree is a binary search tree on the first dimension. Each
|
||||
sublayer tree of a vertex <span class="math">v</span> is a binary search tree on the
|
||||
second
|
||||
dimension. The data items in a sublayer tree of <span class="math">v</span> are
|
||||
all data items of the subtree of <span class="math">v</span>
|
||||
</TD><TD ALIGN=LEFT VALIGN=TOP WIDTH=50%>
|
||||
A d-dimensional range tree. For
|
||||
each layer of the tree, one
|
||||
sublayer tree is illustrated.
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
\image html range2.gif "A two and a d-dimensional range tree."
|
||||
|
||||
The 2-dimensional tree is a binary search tree on the first dimension. Each sublayer tree of a vertex `v` is a binary search tree on the second dimension. The data items in a sublayer tree of `v` are all data items of the subtree of `v`.
|
||||
|
||||
For the d-dimensional range tree, the figure shows one sublayer tree for each
|
||||
layer of the tree.
|
||||
|
||||
The tree can be built in \f$ O(n\log^{d-1} n)\f$ time and
|
||||
needs \f$ O(n\log^{d-1} n)\f$ space. The \f$ d\f$-dimensional points that lie in the
|
||||
|
|
@ -317,7 +303,7 @@ needs \f$ O(n\log^{d-1} n)\f$ space. The \f$ d\f$-dimensional points that lie in
|
|||
where \f$ n\f$ is the total number of points and \f$ k\f$ is the number of
|
||||
reported points.
|
||||
|
||||
\subsection secrange_tree_ex Example for Range Tree on Map-like Data
|
||||
\subsection secrange_tree_ex Example for %Range Tree on Map-like Data
|
||||
|
||||
The following example program uses the predefined `Range_tree_2` data structure together with the predefined traits
|
||||
class `Range_tree_map_traits_2` which has two template
|
||||
|
|
@ -434,32 +420,19 @@ contained in a given \f$ d\f$-dimensional interval (`window_query`).
|
|||
An example of a one-dimensional segment tree and an example
|
||||
of a two-dimensional segment tree are shown below.
|
||||
|
||||
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=650>
|
||||
<TR>
|
||||
<A NAME="User:fig:segment2.eps"></A>
|
||||
<TD ALIGN=LEFT VALIGN=TOP WIDTH=50% NOWRAP COLSPAN=2>
|
||||
<img border=0 src="./segment2.gif" alt="A one-dimensional segment
|
||||
tree">
|
||||
</TD>
|
||||
<A NAME="User:fig:d-segment.eps"></A>
|
||||
<TD ALIGN=LEFT VALIGN=TOP WIDTH=50%><img border=0
|
||||
src="./d-segment.gif" alt="A d-dimensional segment tree">
|
||||
</TD></TR></TABLE>
|
||||
\image html segment2.gif "A one and a two dimensional segment tree"
|
||||
|
||||
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=650>
|
||||
<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH=50% COLSPAN=2>
|
||||
A one-dimensional segment
|
||||
tree. The segments and the corresponding elementary intervals
|
||||
For the one-dimensional segment
|
||||
tree the segments and the corresponding elementary intervals
|
||||
are shown below the tree. The arcs from the nodes point to
|
||||
their subsets.
|
||||
</TD><TD ALIGN=LEFT VALIGN=TOP WIDTH=45%>
|
||||
A two-dimensional segment
|
||||
tree. The first layer of the tree is built according to the
|
||||
|
||||
For the two-dimensional segment
|
||||
tree we see that the first layer of the tree is built according to the
|
||||
elementary intervals of the first dimension. Each
|
||||
sublayer tree of a vertex <span class="math">v</span> is a segment tree according to
|
||||
the second dimension of all data items of <span class="math">v</span>.
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
sublayer tree of a vertex `v` is a segment tree according to
|
||||
the second dimension of all data items of `v`.
|
||||
|
||||
|
||||
The tree can be built in \f$ O(n\log^{d} n)\f$ time and
|
||||
needs \f$ O(n\log^{d} n)\f$ space.
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 21 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 10 KiB |
Loading…
Reference in New Issue