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 #ifndef IMG_IMAGE_STATE_BINOP_HH
00026 #define IMG_IMAGE_STATE_BINOP_HH
00027
00028 #include "dispatch.hh"
00029
00030 namespace ost { namespace img { namespace image_state { namespace binop {
00031
00032
00033 template<typename T1, class D1, typename T2, class D2>
00034 struct fnc_add_ip {
00035 void operator()(ImageStateImpl<T1,D1>* lhs, const ImageStateImpl<T2,D2>* rhs);
00036 };
00037
00038 typedef dispatch::binary_dispatch_ip<fnc_add_ip> add_ip;
00039
00040
00041 template<typename T1, class D1, typename T2, class D2>
00042 struct fnc_sub_ip {
00043 void operator()(ImageStateImpl<T1,D1>* lhs, const ImageStateImpl<T2,D2>* rhs);
00044 };
00045
00046 typedef dispatch::binary_dispatch_ip<fnc_sub_ip> sub_ip;
00047
00048
00049 template<typename T1, class D1, typename T2, class D2>
00050 struct fnc_mul_ip {
00051 void operator()(ImageStateImpl<T1,D1>* lhs, const ImageStateImpl<T2,D2>* rhs);
00052 };
00053
00054 typedef dispatch::binary_dispatch_ip<fnc_mul_ip> mul_ip;
00055
00056
00057 template<typename T1, class D1, typename T2, class D2>
00058 struct fnc_div_ip {
00059 void operator()(ImageStateImpl<T1,D1>* lhs, const ImageStateImpl<T2,D2>* rhs);
00060 };
00061
00062 typedef dispatch::binary_dispatch_ip<fnc_div_ip> div_ip;
00063
00064
00065 template<typename T1, class D1, typename T2, class D2>
00066 struct fnc_paste_ip {
00067 void operator()(ImageStateImpl<T1,D1>* lhs, const ImageStateImpl<T2,D2>* rhs);
00068 };
00069
00070 typedef dispatch::binary_dispatch_ip<fnc_paste_ip> paste_ip;
00071
00072 }}}}
00073
00074 #endif