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_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_IF_HH
00027 # define MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_IF_HH
00028
00032
00033 # include <mln/core/neighb.hh>
00034 # include <mln/core/internal/is_masked_impl_selector.hh>
00035 # include <mln/core/image/graph_elt_window_if.hh>
00036
00037
00038 namespace mln
00039 {
00040
00042 template <typename G, typename S, typename I>
00043 struct graph_elt_neighborhood_if
00044 : public neighb< graph_elt_window_if<G,S,I> >
00045 {
00046 typedef neighb< graph_elt_window_if<G,S,I> > super_;
00047
00051 graph_elt_neighborhood_if();
00053 graph_elt_neighborhood_if(const Image<I>& mask);
00055
00057 const I& mask() const;
00058
00059 };
00060
00061
00062 # ifndef MLN_INCLUDE_ONLY
00063
00064
00065 template <typename G, typename S, typename I>
00066 inline
00067 graph_elt_neighborhood_if<G,S,I>::graph_elt_neighborhood_if()
00068 {
00069 }
00070
00071
00072 template <typename G, typename S, typename I>
00073 inline
00074 graph_elt_neighborhood_if<G,S,I>::graph_elt_neighborhood_if(const Image<I>& mask)
00075 {
00076 this->hook_win_().change_mask(mask);
00077 }
00078
00079
00080 template <typename G, typename S, typename I>
00081 inline
00082 const I&
00083 graph_elt_neighborhood_if<G,S,I>::mask() const
00084 {
00085 return this->hook_win_().mask();
00086 }
00087
00088
00089 # endif // ! MLN_INCLUDE_ONLY
00090
00091 }
00092
00093 #endif // ! MLN_CORE_IMAGE_GRAPH_ELT_NEIGHBORHOOD_IF_HH