00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_MAKE_DUMMY_P_EDGES_HH
00027 # define MLN_MAKE_DUMMY_P_EDGES_HH
00028
00034
00035
00036 # include <mln/core/concept/graph.hh>
00037 # include <mln/core/site_set/p_edges.hh>
00038 # include <mln/pw/cst.hh>
00039
00040
00041 namespace mln
00042 {
00043
00044 namespace make
00045 {
00046
00047
00054
00055 template <typename G, typename P>
00056 p_edges< G, pw::cst_<P> >
00057 dummy_p_edges(const Graph<G>& g_, const P& dummy_site);
00058
00059
00066
00067 template <typename G>
00068 p_edges<G>
00069 dummy_p_edges(const Graph<G>& g);
00070
00071
00072 # ifndef MLN_INCLUDE_ONLY
00073
00074
00075 template <typename G, typename P>
00076 p_edges<G,pw::cst_<P> >
00077 dummy_p_edges(const Graph<G>& g_, const P& dummy_site)
00078 {
00079 trace::entering("dummy_p_edges");
00080
00081 const G& g = exact(g_);
00082 mln_precondition(g.is_valid());
00083
00084 p_edges< G, pw::cst_<P> > pe(g, pw::cst(dummy_site));
00085
00086 trace::exiting("dummy_p_edges");
00087 return pe;
00088 }
00089
00090
00091 template <typename G>
00092 p_edges<G>
00093 dummy_p_edges(const Graph<G>& g)
00094 {
00095 return p_edges<G>(g);
00096 }
00097
00098
00099 # endif // ! MLN_INCLUDE_ONLY
00100
00101 }
00102
00103 }
00104
00105 #endif // ! MLN_MAKE_DUMMY_P_EDGES_HH