diff options
author | saurabhb17 | 2020-02-26 16:20:48 +0530 |
---|---|---|
committer | GitHub | 2020-02-26 16:20:48 +0530 |
commit | b77f5d9d8097c38159c6f60917995d6af13bbe1c (patch) | |
tree | 1392c90227aeea231c1d86371131e04c40382918 /include/gal/opengl/glm/gtx/wrap.inl | |
parent | dadc4d490966a24efe15b5cc533ef8695986048a (diff) | |
parent | 003d02608917e7a69d1a98438837e94ccf68352a (diff) | |
download | KiCad-eSim-b77f5d9d8097c38159c6f60917995d6af13bbe1c.tar.gz KiCad-eSim-b77f5d9d8097c38159c6f60917995d6af13bbe1c.tar.bz2 KiCad-eSim-b77f5d9d8097c38159c6f60917995d6af13bbe1c.zip |
Merge pull request #4 from FOSSEE/develop
merging dev into master
Diffstat (limited to 'include/gal/opengl/glm/gtx/wrap.inl')
-rw-r--r-- | include/gal/opengl/glm/gtx/wrap.inl | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/include/gal/opengl/glm/gtx/wrap.inl b/include/gal/opengl/glm/gtx/wrap.inl new file mode 100644 index 0000000..41c7d47 --- /dev/null +++ b/include/gal/opengl/glm/gtx/wrap.inl @@ -0,0 +1,165 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Created : 2009-11-25 +// Updated : 2010-02-13 +// Licence : This source is under MIT License +// File : glm/gtx/wrap.inl +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Dependency: +// - GLM core +/////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + template <typename genType> + GLM_FUNC_QUALIFIER genType clamp + ( + genType const & Texcoord + ) + { + return glm::clamp(Texcoord, genType(0), genType(1)); + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec2<T> clamp + ( + detail::tvec2<T> const & Texcoord + ) + { + detail::tvec2<T> Result; + for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i) + Result[i] = clamp(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec3<T> clamp + ( + detail::tvec3<T> const & Texcoord + ) + { + detail::tvec3<T> Result; + for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i) + Result[i] = clamp(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec4<T> clamp + ( + detail::tvec4<T> const & Texcoord + ) + { + detail::tvec4<T> Result; + for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i) + Result[i] = clamp(Texcoord[i]); + return Result; + } + + //////////////////////// + // repeat + + template <typename genType> + GLM_FUNC_QUALIFIER genType repeat + ( + genType const & Texcoord + ) + { + return glm::fract(Texcoord); + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec2<T> repeat + ( + detail::tvec2<T> const & Texcoord + ) + { + detail::tvec2<T> Result; + for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i) + Result[i] = repeat(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec3<T> repeat + ( + detail::tvec3<T> const & Texcoord + ) + { + detail::tvec3<T> Result; + for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i) + Result[i] = repeat(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec4<T> repeat + ( + detail::tvec4<T> const & Texcoord + ) + { + detail::tvec4<T> Result; + for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i) + Result[i] = repeat(Texcoord[i]); + return Result; + } + + //////////////////////// + // mirrorRepeat + + template <typename genType> + GLM_FUNC_QUALIFIER genType mirrorRepeat + ( + genType const & Texcoord + ) + { + genType const Clamp = genType(int(glm::floor(Texcoord)) % 2); + genType const Floor = glm::floor(Texcoord); + genType const Rest = Texcoord - Floor; + genType const Mirror = Clamp + Rest; + + genType Out; + if(Mirror >= genType(1)) + Out = genType(1) - Rest; + else + Out = Rest; + return Out; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec2<T> mirrorRepeat + ( + detail::tvec2<T> const & Texcoord + ) + { + detail::tvec2<T> Result; + for(typename detail::tvec2<T>::size_type i = 0; i < detail::tvec2<T>::value_size(); ++i) + Result[i] = mirrorRepeat(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec3<T> mirrorRepeat + ( + detail::tvec3<T> const & Texcoord + ) + { + detail::tvec3<T> Result; + for(typename detail::tvec3<T>::size_type i = 0; i < detail::tvec3<T>::value_size(); ++i) + Result[i] = mirrorRepeat(Texcoord[i]); + return Result; + } + + template <typename T> + GLM_FUNC_QUALIFIER detail::tvec4<T> mirrorRepeat + ( + detail::tvec4<T> const & Texcoord + ) + { + detail::tvec4<T> Result; + for(typename detail::tvec4<T>::size_type i = 0; i < detail::tvec4<T>::value_size(); ++i) + Result[i] = mirrorRepeat(Texcoord[i]); + return Result; + } +}//namespace glm |