From 3aefc82e955aeaff8e203eb339205a951bf8abb9 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 22 Sep 2011 09:58:57 +0100 Subject: [PATCH] Added linearRand implementation --- glm/gtc/random.inl | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/glm/gtc/random.inl b/glm/gtc/random.inl index 68df87cc..171fb474 100644 --- a/glm/gtc/random.inl +++ b/glm/gtc/random.inl @@ -12,5 +12,73 @@ namespace glm{ +template <> +GLM_FUNC_QUALIFIER glm::half linearRand +( + glm::half const & Min, + glm::half const & Max +) +{ + return glm::half(float(std::rand()) / float(RAND_MAX) * (float(Max) - float(Min)) + float(Min)); +} + +template <> +GLM_FUNC_QUALIFIER float linearRand +( + float const & Min, + float const & Max +) +{ + return float(std::rand()) / float(RAND_MAX) * (Max - Min) + Min; +} + +template <> +GLM_FUNC_QUALIFIER double linearRand +( + double const & Min, + double const & Max +) +{ + return double(std::rand()) / double(RAND_MAX) * (Max - Min) + Min; +} + +template +GLM_FUNC_QUALIFIER detail::tvec2 linearRand +( + detail::tvec2 const & Min, + detail::tvec2 const & Max +) +{ + return detail::tvec2( + linearRand(Min.x, Max.x), + linearRand(Min.y, Max.y)); +} + +template +GLM_FUNC_QUALIFIER detail::tvec3 linearRand +( + detail::tvec3 const & Min, + detail::tvec3 const & Max +) +{ + return detail::tvec3( + linearRand(Min.x, Max.x), + linearRand(Min.y, Max.y), + linearRand(Min.z, Max.z)); +} + +template +GLM_FUNC_QUALIFIER detail::tvec4 linearRand +( + detail::tvec4 const & Min, + detail::tvec4 const & Max +) +{ + return detail::tvec4( + linearRand(Min.x, Max.x), + linearRand(Min.y, Max.y), + linearRand(Min.z, Max.z), + linearRand(Min.w, Max.w)); +} }//namespace glm