GLM Version 0.9.0
|
00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2006-01-16 00005 // Updated : 2007-08-30 00006 // Licence : This source is under MIT License 00007 // File : glm/gtx/random.hpp 00009 // Dependency: 00010 // - GLM core 00011 // - GLM_GTX_vecx 00012 // - GLM_GTX_half_float 00014 00015 #ifndef glm_gtx_random 00016 #define glm_gtx_random 00017 00018 // Dependency: 00019 #include "../glm.hpp" 00020 #include "../gtc/half_float.hpp" 00021 00022 namespace glm{ 00023 namespace gtx{ 00025 namespace random 00026 { 00029 template <typename T> T signedRand1(); 00030 00031 template <> float signedRand1(); 00032 template <> double signedRand1(); 00033 template <typename T> detail::tvec2<T> signedRand2(); 00034 template <typename T> detail::tvec3<T> signedRand3(); 00035 template <typename T> detail::tvec4<T> signedRand4(); 00036 00037 template <typename T> detail::tvec2<T> normalizedRand2(); 00038 template <typename T> detail::tvec2<T> normalizedRand2(T Min, T Max); 00039 template <typename T> detail::tvec3<T> normalizedRand3(); 00040 template <typename T> detail::tvec3<T> normalizedRand3(T Min, T Max); 00041 00042 template <typename T> T compRand1(); 00043 template <> float compRand1(); 00044 template <> double compRand1(); 00045 template <typename T> T compRand1(T Min, T Max); 00046 template <typename T> detail::tvec2<T> compRand2(T Min, T Max); 00047 template <typename T> detail::tvec3<T> compRand3(T Min, T Max); 00048 template <typename T> detail::tvec4<T> compRand4(T Min, T Max); 00049 template <typename T> detail::tvec2<T> compRand2(const detail::tvec2<T>& Min, const detail::tvec2<T>& Max); 00050 template <typename T> detail::tvec3<T> compRand3(const detail::tvec3<T>& Min, const detail::tvec3<T>& Max); 00051 template <typename T> detail::tvec3<T> compRand4(const detail::tvec4<T>& Min, const detail::tvec4<T>& Max); 00052 00053 template <typename T> detail::tvec2<T> vecRand2(); 00054 template <typename T> detail::tvec2<T> vecRand2(T MinRadius, T MaxRadius); 00055 template <typename T> detail::tvec3<T> vecRand3(); 00056 template <typename T> detail::tvec3<T> vecRand3(T MinRadius, T MaxRadius); 00057 template <typename T> detail::tvec4<T> vecRand4(); 00058 template <typename T> detail::tvec4<T> vecRand4(T MinRadius, T MaxRadius); 00059 00060 template <typename T> T gaussRand1(T mean, T std_deviation); 00061 template <typename T> detail::tvec2<T> gaussRand2(T mean, T std_deviation); 00062 template <typename T> detail::tvec3<T> gaussRand3(T mean, T std_deviation); 00063 template <typename T> detail::tvec4<T> gaussRand4(T mean, T std_deviation); 00064 template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, T std_deviation); 00065 template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, T std_deviation); 00066 template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, T std_deviation); 00067 template <typename T> detail::tvec2<T> gaussRand2(T mean, const detail::tvec2<T>& std_deviation); 00068 template <typename T> detail::tvec3<T> gaussRand3(T mean, const detail::tvec3<T>& std_deviation); 00069 template <typename T> detail::tvec4<T> gaussRand4(T mean, const detail::tvec4<T>& std_deviation); 00070 template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, const detail::tvec2<T>& std_deviation); 00071 template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation); 00072 template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation); 00073 00074 }//namespace random 00075 }//namespace gtx 00076 }//namespace glm 00077 00078 #include "random.inl" 00079 00080 namespace glm{using namespace gtx::random;} 00081 00082 #endif//glm_gtx_random