00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020 #ifndef SHINTERP_HPP
00021 #define SHINTERP_HPP
00022
00023 namespace SH {
00024
00031 template<int L, typename T>
00032 class ShInterp : public T {
00033 public:
00034 static int level() {
00035 if (L >= 2) return 3; else return L;
00036 }
00037
00038 ShInterp()
00039 : T()
00040 {
00041 this->m_node->traits().interpolation(level());
00042 }
00043 ShInterp(int width)
00044 : T(width)
00045 {
00046 this->m_node->traits().interpolation(level());
00047 }
00048 ShInterp(int width, int height)
00049 : T(width, height)
00050 {
00051 this->m_node->traits().interpolation(level());
00052 }
00053 ShInterp(int width, int height, int depth)
00054 : T(width, height, depth)
00055 {
00056 this->m_node->traits().interpolation(level());
00057 }
00058
00059 typedef typename T::return_type return_type;
00060
00061 };
00062
00063 }
00064
00065 #endif