From e62817b8252974b8a98393275874ee303840bf13 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Fri, 12 May 2017 18:49:50 +0500 Subject: 2017-05-12 --- depedencies/include/glm/gtc/random.hpp | 98 ++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 depedencies/include/glm/gtc/random.hpp (limited to 'depedencies/include/glm/gtc/random.hpp') diff --git a/depedencies/include/glm/gtc/random.hpp b/depedencies/include/glm/gtc/random.hpp new file mode 100644 index 0000000..fa3956e --- /dev/null +++ b/depedencies/include/glm/gtc/random.hpp @@ -0,0 +1,98 @@ +/// @ref gtc_random +/// @file glm/gtc/random.hpp +/// +/// @see core (dependence) +/// @see gtc_half_float (dependence) +/// @see gtx_random (extended) +/// +/// @defgroup gtc_random GLM_GTC_random +/// @ingroup gtc +/// +/// @brief Generate random number from various distribution methods. +/// +/// need to be included to use these functionalities. + +#pragma once + +// Dependency: +#include "../vec2.hpp" +#include "../vec3.hpp" + +#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) +# pragma message("GLM: GLM_GTC_random extension included") +#endif + +namespace glm +{ + /// @addtogroup gtc_random + /// @{ + + /// Generate random numbers in the interval [Min, Max], according a linear distribution + /// + /// @param Min + /// @param Max + /// @tparam genType Value type. Currently supported: float or double scalars. + /// @see gtc_random + template + GLM_FUNC_DECL genTYpe linearRand( + genTYpe Min, + genTYpe Max); + + /// Generate random numbers in the interval [Min, Max], according a linear distribution + /// + /// @param Min + /// @param Max + /// @tparam T Value type. Currently supported: float or double. + /// @tparam vecType A vertor type: tvec1, tvec2, tvec3, tvec4 or compatible + /// @see gtc_random + template class vecType> + GLM_FUNC_DECL vecType linearRand( + vecType const & Min, + vecType const & Max); + + /// Generate random numbers in the interval [Min, Max], according a gaussian distribution + /// + /// @param Mean + /// @param Deviation + /// @see gtc_random + template + GLM_FUNC_DECL genType gaussRand( + genType Mean, + genType Deviation); + + /// Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius + /// + /// @param Radius + /// @see gtc_random + template + GLM_FUNC_DECL tvec2 circularRand( + T Radius); + + /// Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius + /// + /// @param Radius + /// @see gtc_random + template + GLM_FUNC_DECL tvec3 sphericalRand( + T Radius); + + /// Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius + /// + /// @param Radius + /// @see gtc_random + template + GLM_FUNC_DECL tvec2 diskRand( + T Radius); + + /// Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius + /// + /// @param Radius + /// @see gtc_random + template + GLM_FUNC_DECL tvec3 ballRand( + T Radius); + + /// @} +}//namespace glm + +#include "random.inl" -- cgit v1.2.3