Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ShTexCoord.hpp

00001 // WARNING - DO NOT EDIT THIS FILE: 00002 // This file was automatically generated from scripts/ShTexCoord.hpp.py. 00003 // If you wish to change it, edit that file instead. 00004 // 00005 // --- 00006 // 00007 // Sh: A GPU metaprogramming language. 00008 // 00009 // Copyright (c) 2003 University of Waterloo Computer Graphics Laboratory 00010 // Project administrator: Michael D. McCool 00011 // Authors: Zheng Qin, Stefanus Du Toit, Kevin Moule, Tiberiu S. Popa, 00012 // Michael D. McCool 00013 // 00014 // This software is provided 'as-is', without any express or implied 00015 // warranty. In no event will the authors be held liable for any damages 00016 // arising from the use of this software. 00017 // 00018 // Permission is granted to anyone to use this software for any purpose, 00019 // including commercial applications, and to alter it and redistribute it 00020 // freely, subject to the following restrictions: 00021 // 00022 // 1. The origin of this software must not be misrepresented; you must 00023 // not claim that you wrote the original software. If you use this 00024 // software in a product, an acknowledgment in the product documentation 00025 // would be appreciated but is not required. 00026 // 00027 // 2. Altered source versions must be plainly marked as such, and must 00028 // not be misrepresented as being the original software. 00029 // 00030 // 3. This notice may not be removed or altered from any source 00031 // distribution. 00033 00034 #ifndef SH_SHTEXCOORD_HPP 00035 #define SH_SHTEXCOORD_HPP 00036 00037 #include "ShAttrib.hpp" 00038 namespace SH { 00039 00044 template<int N, ShBindingType Binding, typename T=float, bool Swizzled=false> 00045 class ShTexCoord : public ShAttrib<N, Binding, T, Swizzled> { 00046 public: 00047 ShTexCoord(); 00048 ShTexCoord(const ShGeneric<N, T>& other); 00049 ShTexCoord(const ShTexCoord<N, Binding, T, Swizzled>& other); 00050 ShTexCoord(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg); 00051 explicit ShTexCoord(T data[N]); 00052 00053 ~ShTexCoord(); 00054 00055 ShTexCoord& operator=(const ShGeneric<N, T>& other); 00056 ShTexCoord& operator=(const ShTexCoord<N, Binding, T, Swizzled>& other); 00057 00058 ShTexCoord& operator=(const ShProgram& prg); 00059 00060 ShTexCoord& operator+=(const ShGeneric<N, T>& right); 00061 ShTexCoord& operator-=(const ShGeneric<N, T>& right); 00062 ShTexCoord& operator*=(const ShGeneric<N, T>& right); 00063 ShTexCoord& operator/=(const ShGeneric<N, T>& right); 00064 ShTexCoord& operator%=(const ShGeneric<N, T>& right); 00065 ShTexCoord& operator*=(T); 00066 ShTexCoord& operator/=(T); 00067 ShTexCoord& operator%=(T); 00068 ShTexCoord& operator+=(T); 00069 ShTexCoord& operator-=(T); 00070 ShTexCoord& operator+=(const ShGeneric<1, T>&); 00071 ShTexCoord& operator-=(const ShGeneric<1, T>&); 00072 ShTexCoord& operator*=(const ShGeneric<1, T>&); 00073 ShTexCoord& operator/=(const ShGeneric<1, T>&); 00074 ShTexCoord& operator%=(const ShGeneric<1, T>&); 00075 ShTexCoord<1, Binding, T, true> operator()(int) const; 00076 ShTexCoord<2, Binding, T, true> operator()(int, int) const; 00077 ShTexCoord<3, Binding, T, true> operator()(int, int, int) const; 00078 ShTexCoord<4, Binding, T, true> operator()(int, int, int, int) const; 00079 ShTexCoord<1, Binding, T, true> operator[](int) const; 00080 00081 template<int N2> 00082 ShTexCoord<N2, Binding, T, true> swiz(int indices[]) const; 00083 00084 ShTexCoord operator-() const; 00085 typedef T ValueType; 00086 static const int typesize = N; 00087 static const ShBindingType binding_type = Binding; 00088 static const ShSemanticType semantic_type = SH_TEXCOORD; 00089 00090 typedef ShTexCoord<N, SH_INPUT, T> InputType; 00091 typedef ShTexCoord<N, SH_OUTPUT, T> OutputType; 00092 typedef ShTexCoord<N, SH_INOUT, T> InOutType; 00093 typedef ShTexCoord<N, SH_TEMP, T> TempType; 00094 typedef ShTexCoord<N, SH_CONST, T> ConstType; 00095 private: 00096 typedef ShAttrib<N, Binding, T, Swizzled> ParentType; 00097 }; 00098 00099 template<ShBindingType Binding, typename T, bool Swizzled> 00100 class ShTexCoord<1, Binding, T, Swizzled> : public ShAttrib<1, Binding, T, Swizzled> { 00101 public: 00102 ShTexCoord(); 00103 ShTexCoord(const ShGeneric<1, T>& other); 00104 ShTexCoord(const ShTexCoord<1, Binding, T, Swizzled>& other); 00105 ShTexCoord(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg); 00106 explicit ShTexCoord(T data[1]); 00107 00108 ShTexCoord(T); 00109 00110 ~ShTexCoord(); 00111 00112 ShTexCoord& operator=(const ShGeneric<1, T>& other); 00113 ShTexCoord& operator=(const ShTexCoord<1, Binding, T, Swizzled>& other); 00114 00115 ShTexCoord& operator=(T other); 00116 00117 ShTexCoord& operator=(const ShProgram& prg); 00118 00119 ShTexCoord& operator+=(const ShGeneric<1, T>& right); 00120 ShTexCoord& operator-=(const ShGeneric<1, T>& right); 00121 ShTexCoord& operator*=(const ShGeneric<1, T>& right); 00122 ShTexCoord& operator/=(const ShGeneric<1, T>& right); 00123 ShTexCoord& operator%=(const ShGeneric<1, T>& right); 00124 ShTexCoord& operator*=(T); 00125 ShTexCoord& operator/=(T); 00126 ShTexCoord& operator%=(T); 00127 ShTexCoord& operator+=(T); 00128 ShTexCoord& operator-=(T); 00129 ShTexCoord<1, Binding, T, true> operator()(int) const; 00130 ShTexCoord<2, Binding, T, true> operator()(int, int) const; 00131 ShTexCoord<3, Binding, T, true> operator()(int, int, int) const; 00132 ShTexCoord<4, Binding, T, true> operator()(int, int, int, int) const; 00133 ShTexCoord<1, Binding, T, true> operator[](int) const; 00134 00135 template<int N2> 00136 ShTexCoord<N2, Binding, T, true> swiz(int indices[]) const; 00137 00138 ShTexCoord operator-() const; 00139 typedef T ValueType; 00140 static const int typesize = 1; 00141 static const ShBindingType binding_type = Binding; 00142 static const ShSemanticType semantic_type = SH_TEXCOORD; 00143 00144 typedef ShTexCoord<1, SH_INPUT, T> InputType; 00145 typedef ShTexCoord<1, SH_OUTPUT, T> OutputType; 00146 typedef ShTexCoord<1, SH_INOUT, T> InOutType; 00147 typedef ShTexCoord<1, SH_TEMP, T> TempType; 00148 typedef ShTexCoord<1, SH_CONST, T> ConstType; 00149 private: 00150 typedef ShAttrib<1, Binding, T, Swizzled> ParentType; 00151 }; 00152 00153 template<ShBindingType Binding, typename T, bool Swizzled> 00154 class ShTexCoord<2, Binding, T, Swizzled> : public ShAttrib<2, Binding, T, Swizzled> { 00155 public: 00156 ShTexCoord(); 00157 ShTexCoord(const ShGeneric<2, T>& other); 00158 ShTexCoord(const ShTexCoord<2, Binding, T, Swizzled>& other); 00159 ShTexCoord(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg); 00160 explicit ShTexCoord(T data[2]); 00161 00162 ShTexCoord(T, T); 00163 ShTexCoord(const ShGeneric<1, T>&, const ShGeneric<1, T>&); 00164 00165 ~ShTexCoord(); 00166 00167 ShTexCoord& operator=(const ShGeneric<2, T>& other); 00168 ShTexCoord& operator=(const ShTexCoord<2, Binding, T, Swizzled>& other); 00169 00170 ShTexCoord& operator=(const ShProgram& prg); 00171 00172 ShTexCoord& operator+=(const ShGeneric<2, T>& right); 00173 ShTexCoord& operator-=(const ShGeneric<2, T>& right); 00174 ShTexCoord& operator*=(const ShGeneric<2, T>& right); 00175 ShTexCoord& operator/=(const ShGeneric<2, T>& right); 00176 ShTexCoord& operator%=(const ShGeneric<2, T>& right); 00177 ShTexCoord& operator*=(T); 00178 ShTexCoord& operator/=(T); 00179 ShTexCoord& operator%=(T); 00180 ShTexCoord& operator+=(T); 00181 ShTexCoord& operator-=(T); 00182 ShTexCoord& operator+=(const ShGeneric<1, T>&); 00183 ShTexCoord& operator-=(const ShGeneric<1, T>&); 00184 ShTexCoord& operator*=(const ShGeneric<1, T>&); 00185 ShTexCoord& operator/=(const ShGeneric<1, T>&); 00186 ShTexCoord& operator%=(const ShGeneric<1, T>&); 00187 ShTexCoord<1, Binding, T, true> operator()(int) const; 00188 ShTexCoord<2, Binding, T, true> operator()(int, int) const; 00189 ShTexCoord<3, Binding, T, true> operator()(int, int, int) const; 00190 ShTexCoord<4, Binding, T, true> operator()(int, int, int, int) const; 00191 ShTexCoord<1, Binding, T, true> operator[](int) const; 00192 00193 template<int N2> 00194 ShTexCoord<N2, Binding, T, true> swiz(int indices[]) const; 00195 00196 ShTexCoord operator-() const; 00197 typedef T ValueType; 00198 static const int typesize = 2; 00199 static const ShBindingType binding_type = Binding; 00200 static const ShSemanticType semantic_type = SH_TEXCOORD; 00201 00202 typedef ShTexCoord<2, SH_INPUT, T> InputType; 00203 typedef ShTexCoord<2, SH_OUTPUT, T> OutputType; 00204 typedef ShTexCoord<2, SH_INOUT, T> InOutType; 00205 typedef ShTexCoord<2, SH_TEMP, T> TempType; 00206 typedef ShTexCoord<2, SH_CONST, T> ConstType; 00207 private: 00208 typedef ShAttrib<2, Binding, T, Swizzled> ParentType; 00209 }; 00210 00211 template<ShBindingType Binding, typename T, bool Swizzled> 00212 class ShTexCoord<3, Binding, T, Swizzled> : public ShAttrib<3, Binding, T, Swizzled> { 00213 public: 00214 ShTexCoord(); 00215 ShTexCoord(const ShGeneric<3, T>& other); 00216 ShTexCoord(const ShTexCoord<3, Binding, T, Swizzled>& other); 00217 ShTexCoord(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg); 00218 explicit ShTexCoord(T data[3]); 00219 00220 ShTexCoord(T, T, T); 00221 ShTexCoord(const ShGeneric<1, T>&, const ShGeneric<1, T>&, const ShGeneric<1, T>&); 00222 00223 ~ShTexCoord(); 00224 00225 ShTexCoord& operator=(const ShGeneric<3, T>& other); 00226 ShTexCoord& operator=(const ShTexCoord<3, Binding, T, Swizzled>& other); 00227 00228 ShTexCoord& operator=(const ShProgram& prg); 00229 00230 ShTexCoord& operator+=(const ShGeneric<3, T>& right); 00231 ShTexCoord& operator-=(const ShGeneric<3, T>& right); 00232 ShTexCoord& operator*=(const ShGeneric<3, T>& right); 00233 ShTexCoord& operator/=(const ShGeneric<3, T>& right); 00234 ShTexCoord& operator%=(const ShGeneric<3, T>& right); 00235 ShTexCoord& operator*=(T); 00236 ShTexCoord& operator/=(T); 00237 ShTexCoord& operator%=(T); 00238 ShTexCoord& operator+=(T); 00239 ShTexCoord& operator-=(T); 00240 ShTexCoord& operator+=(const ShGeneric<1, T>&); 00241 ShTexCoord& operator-=(const ShGeneric<1, T>&); 00242 ShTexCoord& operator*=(const ShGeneric<1, T>&); 00243 ShTexCoord& operator/=(const ShGeneric<1, T>&); 00244 ShTexCoord& operator%=(const ShGeneric<1, T>&); 00245 ShTexCoord<1, Binding, T, true> operator()(int) const; 00246 ShTexCoord<2, Binding, T, true> operator()(int, int) const; 00247 ShTexCoord<3, Binding, T, true> operator()(int, int, int) const; 00248 ShTexCoord<4, Binding, T, true> operator()(int, int, int, int) const; 00249 ShTexCoord<1, Binding, T, true> operator[](int) const; 00250 00251 template<int N2> 00252 ShTexCoord<N2, Binding, T, true> swiz(int indices[]) const; 00253 00254 ShTexCoord operator-() const; 00255 typedef T ValueType; 00256 static const int typesize = 3; 00257 static const ShBindingType binding_type = Binding; 00258 static const ShSemanticType semantic_type = SH_TEXCOORD; 00259 00260 typedef ShTexCoord<3, SH_INPUT, T> InputType; 00261 typedef ShTexCoord<3, SH_OUTPUT, T> OutputType; 00262 typedef ShTexCoord<3, SH_INOUT, T> InOutType; 00263 typedef ShTexCoord<3, SH_TEMP, T> TempType; 00264 typedef ShTexCoord<3, SH_CONST, T> ConstType; 00265 private: 00266 typedef ShAttrib<3, Binding, T, Swizzled> ParentType; 00267 }; 00268 00269 template<ShBindingType Binding, typename T, bool Swizzled> 00270 class ShTexCoord<4, Binding, T, Swizzled> : public ShAttrib<4, Binding, T, Swizzled> { 00271 public: 00272 ShTexCoord(); 00273 ShTexCoord(const ShGeneric<4, T>& other); 00274 ShTexCoord(const ShTexCoord<4, Binding, T, Swizzled>& other); 00275 ShTexCoord(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg); 00276 explicit ShTexCoord(T data[4]); 00277 00278 ShTexCoord(T, T, T, T); 00279 ShTexCoord(const ShGeneric<1, T>&, const ShGeneric<1, T>&, const ShGeneric<1, T>&, const ShGeneric<1, T>&); 00280 00281 ~ShTexCoord(); 00282 00283 ShTexCoord& operator=(const ShGeneric<4, T>& other); 00284 ShTexCoord& operator=(const ShTexCoord<4, Binding, T, Swizzled>& other); 00285 00286 ShTexCoord& operator=(const ShProgram& prg); 00287 00288 ShTexCoord& operator+=(const ShGeneric<4, T>& right); 00289 ShTexCoord& operator-=(const ShGeneric<4, T>& right); 00290 ShTexCoord& operator*=(const ShGeneric<4, T>& right); 00291 ShTexCoord& operator/=(const ShGeneric<4, T>& right); 00292 ShTexCoord& operator%=(const ShGeneric<4, T>& right); 00293 ShTexCoord& operator*=(T); 00294 ShTexCoord& operator/=(T); 00295 ShTexCoord& operator%=(T); 00296 ShTexCoord& operator+=(T); 00297 ShTexCoord& operator-=(T); 00298 ShTexCoord& operator+=(const ShGeneric<1, T>&); 00299 ShTexCoord& operator-=(const ShGeneric<1, T>&); 00300 ShTexCoord& operator*=(const ShGeneric<1, T>&); 00301 ShTexCoord& operator/=(const ShGeneric<1, T>&); 00302 ShTexCoord& operator%=(const ShGeneric<1, T>&); 00303 ShTexCoord<1, Binding, T, true> operator()(int) const; 00304 ShTexCoord<2, Binding, T, true> operator()(int, int) const; 00305 ShTexCoord<3, Binding, T, true> operator()(int, int, int) const; 00306 ShTexCoord<4, Binding, T, true> operator()(int, int, int, int) const; 00307 ShTexCoord<1, Binding, T, true> operator[](int) const; 00308 00309 template<int N2> 00310 ShTexCoord<N2, Binding, T, true> swiz(int indices[]) const; 00311 00312 ShTexCoord operator-() const; 00313 typedef T ValueType; 00314 static const int typesize = 4; 00315 static const ShBindingType binding_type = Binding; 00316 static const ShSemanticType semantic_type = SH_TEXCOORD; 00317 00318 typedef ShTexCoord<4, SH_INPUT, T> InputType; 00319 typedef ShTexCoord<4, SH_OUTPUT, T> OutputType; 00320 typedef ShTexCoord<4, SH_INOUT, T> InOutType; 00321 typedef ShTexCoord<4, SH_TEMP, T> TempType; 00322 typedef ShTexCoord<4, SH_CONST, T> ConstType; 00323 private: 00324 typedef ShAttrib<4, Binding, T, Swizzled> ParentType; 00325 }; 00326 00327 typedef ShTexCoord<1, SH_INPUT, float> ShInputTexCoord1f; 00328 typedef ShTexCoord<1, SH_OUTPUT, float> ShOutputTexCoord1f; 00329 typedef ShTexCoord<1, SH_INOUT, float> ShInOutTexCoord1f; 00330 typedef ShTexCoord<1, SH_TEMP, float> ShTexCoord1f; 00331 typedef ShTexCoord<1, SH_CONST, float> ShConstTexCoord1f; 00332 typedef ShTexCoord<2, SH_INPUT, float> ShInputTexCoord2f; 00333 typedef ShTexCoord<2, SH_OUTPUT, float> ShOutputTexCoord2f; 00334 typedef ShTexCoord<2, SH_INOUT, float> ShInOutTexCoord2f; 00335 typedef ShTexCoord<2, SH_TEMP, float> ShTexCoord2f; 00336 typedef ShTexCoord<2, SH_CONST, float> ShConstTexCoord2f; 00337 typedef ShTexCoord<3, SH_INPUT, float> ShInputTexCoord3f; 00338 typedef ShTexCoord<3, SH_OUTPUT, float> ShOutputTexCoord3f; 00339 typedef ShTexCoord<3, SH_INOUT, float> ShInOutTexCoord3f; 00340 typedef ShTexCoord<3, SH_TEMP, float> ShTexCoord3f; 00341 typedef ShTexCoord<3, SH_CONST, float> ShConstTexCoord3f; 00342 typedef ShTexCoord<4, SH_INPUT, float> ShInputTexCoord4f; 00343 typedef ShTexCoord<4, SH_OUTPUT, float> ShOutputTexCoord4f; 00344 typedef ShTexCoord<4, SH_INOUT, float> ShInOutTexCoord4f; 00345 typedef ShTexCoord<4, SH_TEMP, float> ShTexCoord4f; 00346 typedef ShTexCoord<4, SH_CONST, float> ShConstTexCoord4f; 00347 00348 } // namespace SH 00349 #include "ShTexCoordImpl.hpp" 00350 00351 #endif // SH_SHTEXCOORD_HPP

Generated on Mon Oct 18 14:17:40 2004 for Sh by doxygen 1.3.7