Browse Source

Promote and deprecate extensions

Christophe Riccio 14 years ago
parent
commit
9a394874c3
8 changed files with 163 additions and 229 deletions
  1. 121 0
      glm/gtc/reciprocal.hpp
  2. 0 0
      glm/gtc/reciprocal.inl
  3. 4 4
      glm/gtx/bit.hpp
  4. 2 39
      glm/gtx/noise.hpp
  5. 2 83
      glm/gtx/random.hpp
  6. 2 97
      glm/gtx/reciprocal.hpp
  7. 6 6
      glm/gtx/std_based_type.hpp
  8. 26 0
      glm/gtx/ulp.hpp

+ 121 - 0
glm/gtc/reciprocal.hpp

@@ -0,0 +1,121 @@
+///////////////////////////////////////////////////////////////////////////////////
+/// OpenGL Mathematics (glm.g-truc.net)
+///
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
+/// Permission is hereby granted, free of charge, to any person obtaining a copy
+/// of this software and associated documentation files (the "Software"), to deal
+/// in the Software without restriction, including without limitation the rights
+/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+/// copies of the Software, and to permit persons to whom the Software is
+/// furnished to do so, subject to the following conditions:
+/// 
+/// The above copyright notice and this permission notice shall be included in
+/// all copies or substantial portions of the Software.
+/// 
+/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+/// THE SOFTWARE.
+///
+/// @ref gtx_reciprocal
+/// @file glm/gtx/reciprocal.hpp
+/// @date 2008-10-09 / 2011-06-07
+/// @author Christophe Riccio
+///
+/// @see core (dependence)
+///
+/// @defgroup gtx_reciprocal GLM_GTX_reciprocal: Reciprocal
+/// @ingroup gtx
+/// 
+/// @brief Define secant, cosecant and cotangent functions.
+/// 
+/// <glm/gtx/reciprocal.hpp> need to be included to use these functionalities.
+///////////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLM_GTX_reciprocal
+#define GLM_GTX_reciprocal GLM_VERSION
+
+// Dependency:
+#include "../glm.hpp"
+
+#if(defined(GLM_MESSAGES) && !defined(glm_ext))
+#	pragma message("GLM: GLM_GTX_reciprocal extension included")
+#endif
+
+namespace glm
+{
+	/// @addtogroup gtx_reciprocal
+	/// @{
+
+	//! Secant function. 
+	//! hypotenuse / adjacent or 1 / cos(x)
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType sec(genType const & angle);
+
+	//! Cosecant function. 
+	//! hypotenuse / opposite or 1 / sin(x)
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType csc(genType const & angle);
+		
+	//! Cotangent function. 
+	//! adjacent / opposite or 1 / tan(x)
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType cot(genType const & angle);
+
+	//! Inverse secant function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType asec(genType const & x);
+
+	//! Inverse cosecant function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType acsc(genType const & x);
+		
+	//! Inverse cotangent function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType acot(genType const & x);
+
+	//! Secant hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType sech(genType const & angle);
+
+	//! Cosecant hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType csch(genType const & angle);
+		
+	//! Cotangent hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType coth(genType const & angle);
+
+	//! Inverse secant hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType asech(genType const & x);
+
+	//! Inverse cosecant hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType acsch(genType const & x);
+		
+	//! Inverse cotangent hyperbolic function. 
+	//! From GLM_GTX_reciprocal extension.
+	template <typename genType> 
+	genType acoth(genType const & x);
+
+	/// @}
+}//namespace glm
+
+#include "reciprocal.inl"
+
+#endif//GLM_GTX_reciprocal

+ 0 - 0
glm/gtx/reciprocal.inl → glm/gtc/reciprocal.inl


+ 4 - 4
glm/gtx/bit.hpp

@@ -61,7 +61,7 @@ namespace glm
 	/// genType and genIType could be a scalar or a vector.
 	/// @see gtx_bit
 	template <typename genIUType, typename sizeType>
-	genIUType extractField(
+	GLM_DEPRECATED genIUType extractField(
 		genIUType const & v, 
 		sizeType const & first, 
 		sizeType const & count);
@@ -69,12 +69,12 @@ namespace glm
 	//! Find the lowest bit set to 1 in a integer variable.
 	/// @see gtx_bit
 	template <typename genType> 
-	int lowestBit(genType const & value);
+	GLM_DEPRECATED int lowestBit(genType const & value);
 
 	//! Find the highest bit set to 1 in a integer variable.
 	/// @see gtx_bit
 	template <typename genType> 
-	int highestBit(genType const & value);
+	GLM_DEPRECATED int highestBit(genType const & value);
 
 	//! Find the highest bit set to 1 in a integer variable and return its value. 
 	/// @see gtx_bit
@@ -104,7 +104,7 @@ namespace glm
 	//! Revert all bits of any integer based type. 
 	/// @see gtx_bit
 	template <typename genType> 
-	genType bitRevert(genType const & value);
+	GLM_DEPRECATED genType bitRevert(genType const & value);
 
 	//! Rotate all bits to the right.
 	/// @see gtx_bit

+ 2 - 39
glm/gtx/noise.hpp

@@ -19,45 +19,8 @@
 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 /// THE SOFTWARE.
-///
-/// @ref gtx_noise
-/// @file glm/gtx/noise.hpp
-/// @date 2011-04-21 / 2011-06-07
-/// @author Christophe Riccio
-///
-/// @see core (dependence)
-///
-/// @defgroup gtx_noise GLM_GTX_noise: Procedural noise functions
-/// @ingroup gtx
-/// 
-/// Defines 2D, 3D and 4D procedural noise functions 
-/// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": 
-/// https://github.com/ashima/webgl-noise 
-/// Following Stefan Gustavson's paper "Simplex noise demystified": 
-/// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
-/// Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.
-/// <glm/gtx/noise.hpp> need to be included to use these functionalities.
 ///////////////////////////////////////////////////////////////////////////////////
 
-#ifndef GLM_GTX_noise
-#define GLM_GTX_noise GLM_VERSION
-
-// Dependency:
-#include "../glm.hpp"
-#include "../gtc/noise.hpp"
-
-#if(defined(GLM_MESSAGES) && !defined(glm_ext))
-#	pragma message("GLM: GLM_GTX_noise extension included")
+#if(defined(GLM_MESSAGES))
+#	pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random instead")
 #endif
-
-namespace glm
-{
-	/// @addtogroup gtx_noise
-	/// @{
-
-	/// @}
-}//namespace glm
-
-#include "noise.inl"
-
-#endif//glm_gtx_noise

+ 2 - 83
glm/gtx/random.hpp

@@ -19,89 +19,8 @@
 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 /// THE SOFTWARE.
-///
-/// @ref gtx_random
-/// @file glm/gtx/random.hpp
-/// @date 2006-01-16 / 2011-06-07
-/// @author Christophe Riccio
-///
-/// @see core (dependence)
-/// @see gtc_half_float (dependence)
-///
-/// @defgroup gtx_random GLM_GTX_random: Random
-/// @ingroup gtx
-/// 
-/// @brief Generate random number from various distribution methods
-/// 
-/// <glm/gtx/random.hpp> need to be included to use these functionalities.
 ///////////////////////////////////////////////////////////////////////////////////
 
-#ifndef GLM_GTX_random
-#define GLM_GTX_random GLM_VERSION
-
-// Dependency:
-#include "../glm.hpp"
-#include "../gtc/random.hpp"
-
-#if(defined(GLM_MESSAGES) && !defined(glm_ext))
-#	pragma message("GLM: GLM_GTX_random extension included")
+#if(defined(GLM_MESSAGES))
+#	pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random instead")
 #endif
-
-namespace glm
-{
-	/// @addtogroup gtx_random
-	/// @{
-
-	/// Generate a random number in the interval [-1, 1], according a linear distribution.
-	/// From GLM_GTX_random extension.
-    template <typename T> T signedRand1();
-	
-	template <> float signedRand1(); //!< \brief Generate a random number in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <> double signedRand1(); //!< \brief Generate a random number in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> signedRand2(); //!< \brief Generate 2 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> signedRand3(); //!< \brief Generate 3 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> signedRand4(); //!< \brief Generate 4 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension)
-    
-	template <typename T> detail::tvec2<T> normalizedRand2(); //!< \brief Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)
-	template <typename T> detail::tvec2<T> normalizedRand2(T Min, T Max); //!< \brief Generate a scaled and normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension)
-	template <typename T> detail::tvec3<T> normalizedRand3(); //!< \brief Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)
-	template <typename T> detail::tvec3<T> normalizedRand3(T Min, T Max); //!< \brief Generate a scaled and normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension)
-
-    template <typename T> T compRand1(); //!< \brief Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random extension)
-	template <> float compRand1(); //!< \brief Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <> double compRand1(); //!< \brief Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> T compRand1(T Min, T Max); //!< \brief Generate a random number in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> compRand2(T Min, T Max); //!< \brief Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> compRand3(T Min, T Max); //!< \brief Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> compRand4(T Min, T Max); //!< \brief Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> compRand2(const detail::tvec2<T>& Min, const detail::tvec2<T>& Max); //!< \brief Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> compRand3(const detail::tvec3<T>& Min, const detail::tvec3<T>& Max); //!< \brief Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> compRand4(const detail::tvec4<T>& Min, const detail::tvec4<T>& Max); //!< \brief Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension)
-
-    template <typename T> detail::tvec2<T> vecRand2(); //!< \brief Generate a random normalized 2 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> vecRand2(T MinRadius, T MaxRadius); //!< \brief Generate a random normalized 2 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> vecRand3(); //!< \brief Generate a random normalized 3 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> vecRand3(T MinRadius, T MaxRadius); //!< \brief Generate a random normalized 3 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> vecRand4(); //!< \brief Generate a random normalized 4 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> vecRand4(T MinRadius, T MaxRadius); //!< \brief Generate a random normalized 4 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension)
-
-    template <typename T> T gaussRand1(T mean, T std_deviation); //!< \brief Gererate a random floating number according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> gaussRand2(T mean, T std_deviation); //!< \brief Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> gaussRand3(T mean, T std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> gaussRand4(T mean, T std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, T std_deviation); //!< \brief Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, T std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, T std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> gaussRand2(T  mean, const detail::tvec2<T>& std_deviation); //!< \brief Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> gaussRand3(T  mean, const detail::tvec3<T>& std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> gaussRand4(T  mean, const detail::tvec4<T>& std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, const detail::tvec2<T>& std_deviation); //!< \brief Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation); //!< \brief Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-    template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation); //!< \brief Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension)
-
-	/// @}
-}//namespace glm
-
-#include "random.inl"
-
-#endif//GLM_GTX_random

+ 2 - 97
glm/gtx/reciprocal.hpp

@@ -19,103 +19,8 @@
 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 /// THE SOFTWARE.
-///
-/// @ref gtx_reciprocal
-/// @file glm/gtx/reciprocal.hpp
-/// @date 2008-10-09 / 2011-06-07
-/// @author Christophe Riccio
-///
-/// @see core (dependence)
-///
-/// @defgroup gtx_reciprocal GLM_GTX_reciprocal: Reciprocal
-/// @ingroup gtx
-/// 
-/// @brief Define secant, cosecant and cotangent functions.
-/// 
-/// <glm/gtx/reciprocal.hpp> need to be included to use these functionalities.
 ///////////////////////////////////////////////////////////////////////////////////
 
-#ifndef GLM_GTX_reciprocal
-#define GLM_GTX_reciprocal GLM_VERSION
-
-// Dependency:
-#include "../glm.hpp"
-
-#if(defined(GLM_MESSAGES) && !defined(glm_ext))
-#	pragma message("GLM: GLM_GTX_reciprocal extension included")
+#if(defined(GLM_MESSAGES))
+#	pragma message("GLM: GLM_GTX_reciprocal extension is deprecated, include GLM_GTC_reciprocal instead")
 #endif
-
-namespace glm
-{
-	/// @addtogroup gtx_reciprocal
-	/// @{
-
-	//! Secant function. 
-	//! hypotenuse / adjacent or 1 / cos(x)
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType sec(genType const & angle);
-
-	//! Cosecant function. 
-	//! hypotenuse / opposite or 1 / sin(x)
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType csc(genType const & angle);
-		
-	//! Cotangent function. 
-	//! adjacent / opposite or 1 / tan(x)
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType cot(genType const & angle);
-
-	//! Inverse secant function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType asec(genType const & x);
-
-	//! Inverse cosecant function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType acsc(genType const & x);
-		
-	//! Inverse cotangent function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType acot(genType const & x);
-
-	//! Secant hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType sech(genType const & angle);
-
-	//! Cosecant hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType csch(genType const & angle);
-		
-	//! Cotangent hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType coth(genType const & angle);
-
-	//! Inverse secant hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType asech(genType const & x);
-
-	//! Inverse cosecant hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType acsch(genType const & x);
-		
-	//! Inverse cotangent hyperbolic function. 
-	//! From GLM_GTX_reciprocal extension.
-	template <typename genType> 
-	genType acoth(genType const & x);
-
-	/// @}
-}//namespace glm
-
-#include "reciprocal.inl"
-
-#endif//GLM_GTX_reciprocal

+ 6 - 6
glm/gtx/std_based_type.hpp

@@ -52,27 +52,27 @@ namespace glm
 	/// @{
 	
 	/// Vector type based of two std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec2<std::size_t>		size2;
 	
 	/// Vector type based of three std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec3<std::size_t>		size3;
 
 	/// Vector type based of four std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec4<std::size_t>		size4;
 
 	/// Vector type based of two std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec2<std::size_t>		size2_t;
 	
 	/// Vector type based of three std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec3<std::size_t>		size3_t;
 	
 	/// Vector type based of four std::size_t components.
-	/// @see - GLM_GTX_std_based_type
+	/// @see GLM_GTX_std_based_type
 	typedef detail::tvec4<std::size_t>		size4_t;
 
 	/// @}

+ 26 - 0
glm/gtx/ulp.hpp

@@ -0,0 +1,26 @@
+///////////////////////////////////////////////////////////////////////////////////
+/// OpenGL Mathematics (glm.g-truc.net)
+///
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
+/// Permission is hereby granted, free of charge, to any person obtaining a copy
+/// of this software and associated documentation files (the "Software"), to deal
+/// in the Software without restriction, including without limitation the rights
+/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+/// copies of the Software, and to permit persons to whom the Software is
+/// furnished to do so, subject to the following conditions:
+/// 
+/// The above copyright notice and this permission notice shall be included in
+/// all copies or substantial portions of the Software.
+/// 
+/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+/// THE SOFTWARE.
+///////////////////////////////////////////////////////////////////////////////////
+
+#if(defined(GLM_MESSAGES))
+#	pragma message("GLM: GLM_GTX_ulp extension is deprecated, include GLM_GTC_ulp instead")
+#endif