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_GRAPH_TO_WIN_HH
00027 # define MLN_GRAPH_TO_WIN_HH
00028
00032
00033 # include <mln/core/concept/image.hh>
00034 # include <mln/core/image/graph_elt_window_if.hh>
00035
00036 namespace mln
00037 {
00038
00039 namespace graph
00040 {
00041
00048 template <typename I, typename M>
00049 graph_elt_window_if<mln_graph(I), mln_domain(I), M>
00050 to_win(const Image<I>& graph_image_, const Image<M>& graph_mask_image_);
00051
00052
00053 # ifndef MLN_INCLUDE_ONLY
00054
00055 template <typename I, typename M>
00056 graph_elt_window_if<mln_graph(I), mln_domain(I), M>
00057 to_win(const Image<I>& graph_image_, const Image<M>& graph_mask_image_)
00058 {
00059 trace::entering("graph::to_win");
00060
00061 const I& graph_image = exact(graph_image_);
00062 const M& graph_mask_image = exact(graph_mask_image_);
00063
00064 mln_precondition(graph_image.is_valid());
00065 mln_precondition(graph_mask_image.is_valid());
00066 mlc_equal(mln_value(M),bool)::check();
00067
00068 typedef graph_elt_window_if<mln_graph(I), mln_domain(I), M> win_t;
00069 win_t win(graph_mask_image);
00070
00071 trace::exiting("graph::to_win");
00072 return win;
00073 }
00074
00075 # endif // ! MLN_INCLUDE_ONLY
00076
00077
00078 }
00079
00080 }
00081
00082 #endif // ! MLN_GRAPH_TO_WIN_HH