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 core 24 /// @file glm/glm.hpp 25 /// @date 2005-01-14 / 2011-10-24 26 /// @author Christophe Riccio 27 /// 28 /// @defgroup core GLM Core 29 /// 30 /// @brief The core of GLM, which implements exactly and only the GLSL specification to the degree possible. 31 /// 32 /// The GLM core consists of @ref core_types "C++ types that mirror GLSL types" and 33 /// C++ functions that mirror the GLSL functions. It also includes 34 /// @ref core_precision "a set of precision-based types" that can be used in the appropriate 35 /// functions. The C++ types are all based on a basic set of @ref core_template "template types". 36 /// 37 /// The best documentation for GLM Core is the current GLSL specification, 38 /// <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2 39 /// (pdf file)</a>. 40 /// There are a few @ref pg_differences "differences" between GLM core and GLSL. 41 /// 42 /// GLM core functionnalities require <glm/glm.hpp> to be included to be used. 43 /// 44 /// @defgroup core_types Types 45 /// 46 /// @brief The standard types defined by the specification. 47 /// 48 /// These types are all typedefs of more generalized, template types. To see the definiton 49 /// of these template types, go to @ref core_template. 50 /// 51 /// @ingroup core 52 /// 53 /// @defgroup core_precision Precision types 54 /// 55 /// @brief Non-GLSL types that are used to define precision-based types. 56 /// 57 /// The GLSL language allows the user to define the precision of a particular variable. 58 /// In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility 59 /// with OpenGL ES's precision qualifiers, where they @em do have an effect. 60 /// 61 /// C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: 62 /// a number of typedefs of the @ref core_template that use a particular precision. 63 /// 64 /// None of these types make any guarantees about the actual precision used. 65 /// 66 /// @ingroup core 67 /// 68 /// @defgroup core_template Template types 69 /// 70 /// @brief The generic template types used as the basis for the core types. 71 /// 72 /// These types are all templates used to define the actual @ref core_types. 73 /// These templetes are implementation details of GLM types and should not be used explicitly. 74 /// 75 /// @ingroup core 76 /////////////////////////////////////////////////////////////////////////////////// 77 78 #include "detail/_fixes.hpp" 79 80 #ifndef GLM_INCLUDED 81 #define GLM_INCLUDED 82 83 #include <cmath> 84 #include <climits> 85 #include <cfloat> 86 #include <limits> 87 #include <cassert> 88 #include "fwd.hpp" 89 90 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)) 91 # define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED 92 # pragma message("GLM: Core library included") 93 #endif//GLM_MESSAGE 94 95 #include "vec2.hpp" 96 #include "vec3.hpp" 97 #include "vec4.hpp" 98 #include "mat2x2.hpp" 99 #include "mat2x3.hpp" 100 #include "mat2x4.hpp" 101 #include "mat3x2.hpp" 102 #include "mat3x3.hpp" 103 #include "mat3x4.hpp" 104 #include "mat4x2.hpp" 105 #include "mat4x3.hpp" 106 #include "mat4x4.hpp" 107 108 #include "trigonometric.hpp" 109 #include "exponential.hpp" 110 #include "common.hpp" 111 #include "packing.hpp" 112 #include "geometric.hpp" 113 #include "matrix.hpp" 114 #include "vector_relational.hpp" 115 #include "integer.hpp" 116 117 #endif//GLM_INCLUDED 118