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