00001 
00002 
00004 
00005 
00006 
00007 
00009 
00010 
00012 
00013 #ifndef glm_gtx_optimum_pow
00014 #define glm_gtx_optimum_pow
00015 
00016 
00017 #include "../glm.hpp"
00018 
00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00020 #       pragma message("GLM: GLM_GTX_optimum_pow extension included")
00021 #endif
00022 
00023 namespace glm
00024 {
00025         namespace test{
00026                 void main_gtx_optimum_pow();
00027         }
00028 
00029     namespace gtx{
00031     namespace optimum_pow
00032     {
00035 
00038         template <typename genType> 
00039                 genType pow2(const genType& x);
00040 
00043         template <typename genType> 
00044                 genType pow3(const genType& x);
00045 
00048                 template <typename genType> 
00049                 genType pow4(const genType& x);
00050         
00053         bool powOfTwo(int num);
00054 
00057         detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x);
00058 
00061         detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x);
00062 
00065         detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
00066 
00068 
00069     }
00070     }
00071 }
00072 
00073 #include "optimum_pow.inl"
00074 
00075 namespace glm{using namespace gtx::optimum_pow;}
00076 
00077 #endif//glm_gtx_optimum_pow