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 49namespace 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