pgRouting  2.2
pgRouting extends the PostGIS / PostgreSQL geospatial database to provide geospatial routing functionality.
 All Classes Functions Variables Pages
edge_visitors.hpp
1 /*PGR-GNU*****************************************************************
2 
3 Copyright (c) 2015 pgRouting developers
4 Mail: project@pgrouting.org
5 
6 ------
7 
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12 
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 
22 ********************************************************************PGR-GNU*/
23 #ifndef EDGE_VISITORS_HPP
24 #define EDGE_VISITORS_HPP
25 
26 #include <iosfwd>
27 #include <boost/config.hpp>
28 #include <boost/version.hpp>
29 
30 #if BOOST_VERSION > 103900
31 #include <boost/property_map/property_map.hpp>
32 #else
33 #include <boost/property_map.hpp>
34 #endif
35 
36 #include <boost/graph/graph_traits.hpp>
37 #include <boost/limits.hpp>
38 
39 #if BOOST_VERSION <= 14700
40 #include <boost/graph/detail/is_same.hpp>
41 #else
42 #include <boost/type_traits/is_same.hpp>
43 #endif
44 
45 namespace boost
46 {
47  // Event Tags
48 
49  namespace detail
50  {
51  // For partial specialization workaround
52  enum event_edge_visitor_enum
53  {
54  on_initialize_edge_num, on_start_edge_num,
55  on_discover_edge_num, on_finish_edge_num
56  };
57  }
58 
59  struct on_initialize_edge { enum { num = detail::on_initialize_edge_num }; };
60  struct on_start_edge { enum { num = detail::on_start_edge_num }; };
61  struct on_discover_edge { enum { num = detail::on_discover_edge_num }; };
62  struct on_finish_edge { enum { num = detail::on_finish_edge_num }; };
63 
64 }
65 
66 #endif