00001
00024 #ifndef _PANODATA_IMAGEGRAPH_H
00025 #define _PANODATA_IMAGEGRAPH_H
00026
00027 #include <hugin_shared.h>
00028
00029 #ifdef MAC_OS_X
00030
00031 #include <AssertMacros.h>
00032 #undef check
00033
00034 #endif
00035 #include <boost/graph/graph_traits.hpp>
00036 #include <boost/graph/adjacency_list.hpp>
00037 #include <boost/graph/properties.hpp>
00038
00039 #include <panodata/PanoramaData.h>
00040
00041
00042 namespace HuginBase
00043 {
00044
00050 typedef boost::adjacency_list<boost::vecS, boost::vecS,
00051 boost::undirectedS,
00052 boost::property<boost::vertex_color_t, boost::default_color_type> > CPGraph;
00053
00055 typedef std::vector< std::set<unsigned> > CPComponents;
00056
00057
00062 IMPEX void createCPGraph(const PanoramaData& pano, CPGraph & graph);
00063
00064 IMPEX int findCPComponents(const CPGraph & graph,
00065 CPComponents & comp);
00066
00067
00068
00069
00071 typedef boost::property<boost::edge_weight_t, float> OverlapEdgeProperty;
00072
00081 typedef boost::adjacency_list<boost::vecS, boost::vecS,
00082 boost::undirectedS,
00083 boost::property<boost::vertex_color_t, boost::default_color_type>,
00084 OverlapEdgeProperty> OverlapGraph;
00085
00086
00091 void createOverlapGraph(const PanoramaData& pano, OverlapGraph & graph);
00092
00093
00094 }
00095
00096 #endif // _H