1 // Boost.Geometry Index
2 //
3 // Rtree utilities view
4 //
5 // Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
6 //
7 // Use, modification and distribution is subject to the Boost Software License,
8 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
10 
11 #ifndef BOOST_GEOMETRY_INDEX_DETAIL_RTREE_UTILITIES_VIEW_HPP
12 #define BOOST_GEOMETRY_INDEX_DETAIL_RTREE_UTILITIES_VIEW_HPP
13 
14 namespace boost { namespace geometry { namespace index {
15 
16 namespace detail { namespace rtree { namespace utilities {
17 
18 template <typename Rtree>
19 class view
20 {
21 public:
22     typedef typename Rtree::size_type size_type;
23 
24     typedef typename Rtree::translator_type translator_type;
25     typedef typename Rtree::value_type value_type;
26     typedef typename Rtree::options_type options_type;
27     typedef typename Rtree::box_type box_type;
28     typedef typename Rtree::allocators_type allocators_type;
29 
view(Rtree const & rt)30     view(Rtree const& rt) : m_rtree(rt) {}
31 
32     template <typename Visitor>
apply_visitor(Visitor & vis) const33     void apply_visitor(Visitor & vis) const
34     {
35         m_rtree.apply_visitor(vis);
36     }
37 
38     // This will most certainly be removed in the future
translator() const39     translator_type translator() const
40     {
41         return m_rtree.translator();
42     }
43 
44     // This will probably be removed in the future
depth() const45     size_type depth() const
46     {
47         return m_rtree.depth();
48     }
49 
50 private:
51     view(view const&);
52     view & operator=(view const&);
53 
54     Rtree const& m_rtree;
55 };
56 
57 }}} // namespace detail::rtree::utilities
58 
59 }}} // namespace boost::geometry::index
60 
61 #endif // BOOST_GEOMETRY_INDEX_DETAIL_RTREE_UTILITIES_VIEW_HPP
62