- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List

# random.hpp

    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 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
    00023 #       pragma message("GLM: GLM_GTX_random extension included")
    00024 #endif
    00025
    00026 namespace glm{
    00027 namespace gtx{
    00029 namespace random
    00030 {
    00033
    00036     template <typename T> T signedRand1();
    00037
    00038         template <> float signedRand1();
    00039     template <> double signedRand1();
    00040     template <typename T> detail::tvec2<T> signedRand2();
    00041     template <typename T> detail::tvec3<T> signedRand3();
    00042     template <typename T> detail::tvec4<T> signedRand4();
    00043
    00044         template <typename T> detail::tvec2<T> normalizedRand2();
    00045         template <typename T> detail::tvec2<T> normalizedRand2(T Min, T Max);
    00046         template <typename T> detail::tvec3<T> normalizedRand3();
    00047         template <typename T> detail::tvec3<T> normalizedRand3(T Min, T Max);
    00048
    00049     template <typename T> T compRand1();
    00050         template <> float compRand1();
    00051     template <> double compRand1();
    00052     template <typename T> T compRand1(T Min, T Max);
    00053     template <typename T> detail::tvec2<T> compRand2(T Min, T Max);
    00054     template <typename T> detail::tvec3<T> compRand3(T Min, T Max);
    00055     template <typename T> detail::tvec4<T> compRand4(T Min, T Max);
    00056     template <typename T> detail::tvec2<T> compRand2(const detail::tvec2<T>& Min, const detail::tvec2<T>& Max);
    00057     template <typename T> detail::tvec3<T> compRand3(const detail::tvec3<T>& Min, const detail::tvec3<T>& Max);
    00058     template <typename T> detail::tvec3<T> compRand4(const detail::tvec4<T>& Min, const detail::tvec4<T>& Max);
    00059
    00060     template <typename T> detail::tvec2<T> vecRand2();
    00061     template <typename T> detail::tvec2<T> vecRand2(T MinRadius, T MaxRadius);
    00062     template <typename T> detail::tvec3<T> vecRand3();
    00063     template <typename T> detail::tvec3<T> vecRand3(T MinRadius, T MaxRadius);
    00064     template <typename T> detail::tvec4<T> vecRand4();
    00065     template <typename T> detail::tvec4<T> vecRand4(T MinRadius, T MaxRadius);
    00066
    00067     template <typename T> T gaussRand1(T mean, T std_deviation);
    00068     template <typename T> detail::tvec2<T> gaussRand2(T mean, T std_deviation);
    00069     template <typename T> detail::tvec3<T> gaussRand3(T mean, T std_deviation);
    00070     template <typename T> detail::tvec4<T> gaussRand4(T mean, T std_deviation);
    00071     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, T std_deviation);
    00072     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, T std_deviation);
    00073     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, T std_deviation);
    00074     template <typename T> detail::tvec2<T> gaussRand2(T  mean, const detail::tvec2<T>& std_deviation);
    00075     template <typename T> detail::tvec3<T> gaussRand3(T  mean, const detail::tvec3<T>& std_deviation);
    00076     template <typename T> detail::tvec4<T> gaussRand4(T  mean, const detail::tvec4<T>& std_deviation);
    00077     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, const detail::tvec2<T>& std_deviation);
    00078     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation);
    00079     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation);
    00080
    00082 }//namespace random
    00083 }//namespace gtx
    00084 }//namespace glm
    00085
    00086 #include "random.inl"
    00087
    00088 namespace glm{using namespace gtx::random;}
    00089
    00090 #endif//glm_gtx_random