1 /////////////////////////////////////////////////////////////////////////////////// 2 /// OpenGL Mathematics (glm.g-truc.net) 3 /// 4 /// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 5 /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 /// of this software and associated documentation files (the "Software"), to deal 7 /// in the Software without restriction, including without limitation the rights 8 /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 /// copies of the Software, and to permit persons to whom the Software is 10 /// furnished to do so, subject to the following conditions: 11 /// 12 /// The above copyright notice and this permission notice shall be included in 13 /// all copies or substantial portions of the Software. 14 /// 15 /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 /// THE SOFTWARE. 22 /// 23 /// @ref gtc_constants 24 /// @file glm/gtc/constants.hpp 25 /// @date 2011-09-30 / 2012-01-25 26 /// @author Christophe Riccio 27 /// 28 /// @see core (dependence) 29 /// @see gtc_half_float (dependence) 30 /// 31 /// @defgroup gtc_constants GLM_GTC_constants 32 /// @ingroup gtc 33 /// 34 /// @brief Provide a list of constants and precomputed useful values. 35 /// 36 /// <glm/gtc/constants.hpp> need to be included to use these features. 37 /////////////////////////////////////////////////////////////////////////////////// 38 39 #ifndef GLM_GTC_constants 40 #define GLM_GTC_constants 41 42 // Dependencies 43 #include "../detail/setup.hpp" 44 45 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) 46 # pragma message("GLM: GLM_GTC_constants extension included") 47 #endif 48 49 namespace glm 50 { 51 /// @addtogroup gtc_constants 52 /// @{ 53 54 /// Return the epsilon constant for floating point types. 55 /// @todo Implement epsilon for half-precision floating point type. 56 /// @see gtc_constants 57 template <typename genType> 58 GLM_FUNC_DECL genType epsilon(); 59 60 /// Return 0. 61 /// @see gtc_constants 62 template <typename genType> 63 GLM_FUNC_DECL genType zero(); 64 65 /// Return 1. 66 /// @see gtc_constants 67 template <typename genType> 68 GLM_FUNC_DECL genType one(); 69 70 /// Return the pi constant. 71 /// @see gtc_constants 72 template <typename genType> 73 GLM_FUNC_DECL genType pi(); 74 75 /// Return square root of pi. 76 /// @see gtc_constants 77 template <typename genType> 78 GLM_FUNC_DECL genType root_pi(); 79 80 /// Return pi / 2. 81 /// @see gtc_constants 82 template <typename genType> 83 GLM_FUNC_DECL genType half_pi(); 84 85 /// Return pi / 4. 86 /// @see gtc_constants 87 template <typename genType> 88 GLM_FUNC_DECL genType quarter_pi(); 89 90 /// Return 1 / pi. 91 /// @see gtc_constants 92 template <typename genType> 93 GLM_FUNC_DECL genType one_over_pi(); 94 95 /// Return 2 / pi. 96 /// @see gtc_constants 97 template <typename genType> 98 GLM_FUNC_DECL genType two_over_pi(); 99 100 /// Return 2 / sqrt(pi). 101 /// @see gtc_constants 102 template <typename genType> 103 GLM_FUNC_DECL genType two_over_root_pi(); 104 105 /// Return 1 / sqrt(2). 106 /// @see gtc_constants 107 template <typename genType> 108 GLM_FUNC_DECL genType one_over_root_two(); 109 110 /// Return sqrt(pi / 2). 111 /// @see gtc_constants 112 template <typename genType> 113 GLM_FUNC_DECL genType root_half_pi(); 114 115 /// Return sqrt(2 * pi). 116 /// @see gtc_constants 117 template <typename genType> 118 GLM_FUNC_DECL genType root_two_pi(); 119 120 /// Return sqrt(ln(4)). 121 /// @see gtc_constants 122 template <typename genType> 123 GLM_FUNC_DECL genType root_ln_four(); 124 125 /// Return e constant. 126 /// @see gtc_constants 127 template <typename genType> 128 GLM_FUNC_DECL genType e(); 129 130 /// Return Euler's constant. 131 /// @see gtc_constants 132 template <typename genType> 133 GLM_FUNC_DECL genType euler(); 134 135 /// Return sqrt(2). 136 /// @see gtc_constants 137 template <typename genType> 138 GLM_FUNC_DECL genType root_two(); 139 140 /// Return sqrt(3). 141 /// @see gtc_constants 142 template <typename genType> 143 GLM_FUNC_DECL genType root_three(); 144 145 /// Return sqrt(5). 146 /// @see gtc_constants 147 template <typename genType> 148 GLM_FUNC_DECL genType root_five(); 149 150 /// Return ln(2). 151 /// @see gtc_constants 152 template <typename genType> 153 GLM_FUNC_DECL genType ln_two(); 154 155 /// Return ln(10). 156 /// @see gtc_constants 157 template <typename genType> 158 GLM_FUNC_DECL genType ln_ten(); 159 160 /// Return ln(ln(2)). 161 /// @see gtc_constants 162 template <typename genType> 163 GLM_FUNC_DECL genType ln_ln_two(); 164 165 /// Return 1 / 3. 166 /// @see gtc_constants 167 template <typename genType> 168 GLM_FUNC_DECL genType third(); 169 170 /// Return 2 / 3. 171 /// @see gtc_constants 172 template <typename genType> 173 GLM_FUNC_DECL genType two_thirds(); 174 175 /// Return the golden ratio constant. 176 /// @see gtc_constants 177 template <typename genType> 178 GLM_FUNC_DECL genType golden_ratio(); 179 180 /// @} 181 } //namespace glm 182 183 #include "constants.inl" 184 185 #endif//GLM_GTC_constants 186