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 SHCLAMPING_HPP
00028
#define SHCLAMPING_HPP
00029
00030
namespace SH {
00031
00037
template<
typename T>
00038 class ShClamped :
public T {
00039
public:
00040
ShClamped()
00041 : T()
00042 {
00043 m_node->traits().clamping(ShTextureTraits::SH_CLAMPED);
00044 }
00045
ShClamped(
int width)
00046 : T(width)
00047 {
00048 m_node->traits().clamping(ShTextureTraits::SH_CLAMPED);
00049 }
00050
ShClamped(
int width,
int height)
00051 : T(width, height)
00052 {
00053 m_node->traits().clamping(ShTextureTraits::SH_CLAMPED);
00054 }
00055
ShClamped(
int width,
int height,
int depth)
00056 : T(width, height, depth)
00057 {
00058 m_node->traits().clamping(ShTextureTraits::SH_CLAMPED);
00059 }
00060
00061
typedef ShClamped<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 ShUnclamped :
public T {
00073
public:
00074
ShUnclamped()
00075 : T()
00076 {
00077 m_node->traits().clamping(ShTextureTraits::SH_UNCLAMPED);
00078 }
00079 ShUnclamped(
int width)
00080 : T(width)
00081 {
00082 m_node->traits().clamping(ShTextureTraits::SH_UNCLAMPED);
00083 }
00084 ShUnclamped(
int width,
int height)
00085 : T(width, height)
00086 {
00087 m_node->traits().clamping(ShTextureTraits::SH_UNCLAMPED);
00088 }
00089 ShUnclamped(
int width,
int height,
int depth)
00090 : T(width, height, depth)
00091 {
00092 m_node->traits().clamping(ShTextureTraits::SH_UNCLAMPED);
00093 }
00094
00095
typedef ShUnclamped<typename T::rectangular_type> rectangular_type;
00096
typedef typename T::base_type base_type;
00097
typedef typename T::return_type return_type;
00098 };
00099
00100 }
00101
00102
#endif