From 023e22e28f46ebb9045c102f5dad4d5aca372dc8 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Wed, 12 Sep 2012 07:38:02 +0000 Subject: [PATCH] fix images: combine 2 in one, and make bigger gifs as they were unreadble --- .../CGAL/Range_segment_tree_traits.h | 12 ++-- .../doc/SearchStructures/CGAL/Range_tree_d.h | 5 +- .../doc/SearchStructures/CGAL/Range_tree_k.h | 2 +- .../SearchStructures/CGAL/Segment_tree_d.h | 4 +- .../SearchStructures/CGAL/Segment_tree_k.h | 2 +- .../doc/SearchStructures/CGAL/Tree_base.h | 5 +- .../doc/SearchStructures/CGAL/Tree_traits.h | 4 +- .../SearchStructures/PackageDescription.txt | 7 ++ .../doc/SearchStructures/SearchStructures.txt | 61 +++++------------- .../doc/SearchStructures/fig/range2.gif | Bin 2191 -> 5331 bytes .../doc/SearchStructures/fig/segment2.gif | Bin 1598 -> 21911 bytes .../doc/SearchStructures/fig/segment_ex2.gif | Bin 1407 -> 10258 bytes 12 files changed, 43 insertions(+), 59 deletions(-) diff --git a/SearchStructures/doc/SearchStructures/CGAL/Range_segment_tree_traits.h b/SearchStructures/doc/SearchStructures/CGAL/Range_segment_tree_traits.h index f573fd59ee9..412d191dffa 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Range_segment_tree_traits.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Range_segment_tree_traits.h @@ -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 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 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 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 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,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 diff --git a/SearchStructures/doc/SearchStructures/CGAL/Range_tree_d.h b/SearchStructures/doc/SearchStructures/CGAL/Range_tree_d.h index ed6944cb9b6..715c1eaf460 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Range_tree_d.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Range_tree_d.h @@ -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 -------------- diff --git a/SearchStructures/doc/SearchStructures/CGAL/Range_tree_k.h b/SearchStructures/doc/SearchStructures/CGAL/Range_tree_k.h index 3be43886a92..89ae7102fc9 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Range_tree_k.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Range_tree_k.h @@ -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`. diff --git a/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_d.h b/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_d.h index b24573facfc..4bda0f7a94a 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_d.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_d.h @@ -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 -------------- diff --git a/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_k.h b/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_k.h index 73b0a7da167..de7b64c0fd1 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_k.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Segment_tree_k.h @@ -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`. diff --git a/SearchStructures/doc/SearchStructures/CGAL/Tree_base.h b/SearchStructures/doc/SearchStructures/CGAL/Tree_base.h index 8672c701647..6c911ad7cdf 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Tree_base.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Tree_base.h @@ -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 { diff --git a/SearchStructures/doc/SearchStructures/CGAL/Tree_traits.h b/SearchStructures/doc/SearchStructures/CGAL/Tree_traits.h index f64a36dce95..1c6894e72df 100644 --- a/SearchStructures/doc/SearchStructures/CGAL/Tree_traits.h +++ b/SearchStructures/doc/SearchStructures/CGAL/Tree_traits.h @@ -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. diff --git a/SearchStructures/doc/SearchStructures/PackageDescription.txt b/SearchStructures/doc/SearchStructures/PackageDescription.txt index 1b9ad035d27..6677ab21009 100644 --- a/SearchStructures/doc/SearchStructures/PackageDescription.txt +++ b/SearchStructures/doc/SearchStructures/PackageDescription.txt @@ -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 diff --git a/SearchStructures/doc/SearchStructures/SearchStructures.txt b/SearchStructures/doc/SearchStructures/SearchStructures.txt index 41116c36882..53488f55e2d 100644 --- a/SearchStructures/doc/SearchStructures/SearchStructures.txt +++ b/SearchStructures/doc/SearchStructures/SearchStructures.txt @@ -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. - - -
-A two-dimensional range tree -A d-dimensional range tree -
- - -
-A two-dimensional range tree. The -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 - -A d-dimensional range tree. For -each layer of the tree, one -sublayer tree is illustrated. -
+\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. - - - - - -
-A one-dimensional segment
-tree -A d-dimensional segment tree -
+\image html segment2.gif "A one and a two dimensional segment tree" - - -
-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. - -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 v is a segment tree according to -the second dimension of all data items of v. -
+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. diff --git a/SearchStructures/doc/SearchStructures/fig/range2.gif b/SearchStructures/doc/SearchStructures/fig/range2.gif index 4020afb28e3d1341d710d68b3b408a06729d6708..79468641daf8b630c7fbf2fbbbcc4710b2828fe2 100644 GIT binary patch literal 5331 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

AZOd7w7MM9cSVof_qEre6* zi=h^Qx+bQ?4+V~wxZG+~a>6x^J@Z=;_s0SZ+}Z<^+bMPJA<6Bp>RL(aExA%15A2gKs>Q@4 zcNq7$>M^t?F6Se=9hYmx9)TT+GIbft6|5V{HR<@?sN3^RjbR^gpe4RBy?o*;HrCDyp9SkUi)7$g|4mpOsLW%bzb^>k*o| zd!t+k*zFBGV;_7jJNUwQ@Rj?ZQ_7%A{h-_UpvT@InSIDxcF5Ow$lrY^FlC5R vKg1U@J`}b$6u~|mB|98rJRIjfoRBh{SU;RRKAgHYoW?$q;hsxF14#c5rU1jm literal 2191 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 literal 1598 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 Na*~v+r1A;?06T;9!v6pO