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_FUN_META_HUE_HH
00027 # define MLN_FUN_META_HUE_HH
00028
00032
00033 # include <mln/value/hsl.hh>
00034 # include <mln/value/hsi.hh>
00035 # include <mln/fun/meta/impl.hh>
00036
00037 namespace mln
00038 {
00039
00040 namespace meta
00041 {
00042
00043 template <class H>
00044 struct hue : impl< hue<H> >
00045 {
00046 typedef H value;
00047 };
00048
00049 }
00050
00051 template <class H, class S, class I>
00052 struct function< meta::hue< value::hsi_<H, S, I> > >
00053 : public Function_v2v<function< meta::hue < value::hsi_<H, S, I> > > >
00054 {
00055 typedef value::hsi_<H, S, I> value;
00056
00057 typedef H result;
00058 H read(const value& h);
00059
00060 typedef H& lresult;
00061 H& write(value& h);
00062 };
00063
00064 template <class H, class S, class L>
00065 struct function< meta::hue< value::hsl_<H, S, L> > >
00066 : public Function_v2v<function< meta::hue < value::hsl_<H, S, L> > > >
00067 {
00068 typedef value::hsl_<H, S, L> value;
00069
00070 typedef H result;
00071 H read(const value& h);
00072
00073 typedef H& lresult;
00074 H& write(value& h);
00075 };
00076
00077
00078 # ifndef MLN_INCLUDE_ONLY
00079
00080 template <class H, class S, class I>
00081 inline
00082 H
00083 function< meta::hue< value::hsi_<H, S, I> > >::read(const value& h)
00084 {
00085 return h.hue();
00086 }
00087
00088 template <class H, class S, class I>
00089 inline
00090 H&
00091 function< meta::hue< value::hsi_<H, S, I> > >::write(value& h)
00092 {
00093 return h.hue();
00094 }
00095
00096
00097 template <class H, class S, class L>
00098 inline
00099 H
00100 function< meta::hue< value::hsl_<H, S, L> > >::read(const value& h)
00101 {
00102 return h.hue();
00103 }
00104
00105 template <class H, class S, class L>
00106 inline
00107 H&
00108 function< meta::hue< value::hsl_<H, S, L> > >::write(value& h)
00109 {
00110 return h.hue();
00111 }
00112
00113
00114 # endif // ! MLN_INCLUDE_ONLY
00115
00116
00117 }
00118
00119 #endif // ! MLN_FUN_META_HUE_HH