/*! \defgroup core GLM Core \brief The core of GLM, which implements exactly and only the GLSL specification to the degree possible. The GLM core consists of \ref core_types "C++ types that mirror GLSL types", \ref core_funcs "C++ functions that mirror the GLSL functions". It also includes \ref core_precision "a set of precision-based types" that can be used in the appropriate functions. The C++ types are all based on a basic set of \ref core_template "template types". The best documentation for GLM Core is the current GLSL specification, version 4.1 (pdf file). There are a few \ref pg_differences "differences" between GLM core and GLSL. **/ /*! \defgroup core_types Core Types \brief The standard types defined by the specification. These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to \ref core_template. \ingroup core **/ /*! \defgroup core_precision Core Precision Types \brief Non-GLSL types that are used to define precision-based types. The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they \em do have an effect. C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the \ref core_template that use a particular precision. None of these types make any guarantees about the actual precision used. \ingroup core **/ /*! \defgroup core_template Core Template Types \brief The generic template types used as the basis for the core types. These types are all templates used to define the actual \ref core_types. \ingroup core **/ /*! \defgroup core_funcs Core Functions \brief The functions defined by the specification. \ingroup core **/