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
00027 #ifndef SHWRAP_HPP
00028 #define SHWRAP_HPP
00029
00030 namespace SH {
00031
00037 template<typename T>
00038 class ShWrapClamp : public T {
00039 public:
00040 ShWrapClamp()
00041 : T()
00042 {
00043 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP);
00044 }
00045 ShWrapClamp(int width)
00046 : T(width)
00047 {
00048 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP);
00049 }
00050 ShWrapClamp(int width, int height)
00051 : T(width, height)
00052 {
00053 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP);
00054 }
00055 ShWrapClamp(int width, int height, int depth)
00056 : T(width, height, depth)
00057 {
00058 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP);
00059 }
00060
00061 typedef ShWrapClamp<typename T::rectangular_type> rectangular_type;
00062 typedef typename T::base_type base_type;
00063 typedef typename T::return_type return_type;
00064 };
00065
00071 template<typename T>
00072 class ShWrapClampToEdge : public T {
00073 public:
00074 ShWrapClampToEdge()
00075 : T()
00076 {
00077 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP_TO_EDGE);
00078 }
00079 ShWrapClampToEdge(int width)
00080 : T(width)
00081 {
00082 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP_TO_EDGE);
00083 }
00084 ShWrapClampToEdge(int width, int height)
00085 : T(width, height)
00086 {
00087 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP_TO_EDGE);
00088 }
00089 ShWrapClampToEdge(int width, int height, int depth)
00090 : T(width, height, depth)
00091 {
00092 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_CLAMP_TO_EDGE);
00093 }
00094
00095 typedef ShWrapClampToEdge<typename T::rectangular_type> rectangular_type;
00096 typedef typename T::base_type base_type;
00097 typedef typename T::return_type return_type;
00098 };
00099
00105 template<typename T>
00106 class ShWrapRepeat : public T {
00107 public:
00108 ShWrapRepeat()
00109 : T()
00110 {
00111 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_REPEAT);
00112 }
00113 ShWrapRepeat(int width)
00114 : T(width)
00115 {
00116 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_REPEAT);
00117 }
00118 ShWrapRepeat(int width, int height)
00119 : T(width, height)
00120 {
00121 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_REPEAT);
00122 }
00123 ShWrapRepeat(int width, int height, int depth)
00124 : T(width, height, depth)
00125 {
00126 this->m_node->traits().wrapping(ShTextureTraits::SH_WRAP_REPEAT);
00127 }
00128
00129 typedef ShWrapRepeat<typename T::rectangular_type> rectangular_type;
00130 typedef typename T::base_type base_type;
00131 typedef typename T::return_type return_type;
00132 };
00133
00134 }
00135
00136 #endif