1 /// @ref gtx_normalize_dot 2 /// @file glm/gtx/normalize_dot.hpp 3 /// 4 /// @see core (dependence) 5 /// @see gtx_fast_square_root (dependence) 6 /// 7 /// @defgroup gtx_normalize_dot GLM_GTX_normalize_dot 8 /// @ingroup gtx 9 /// 10 /// @brief Dot product of vectors that need to be normalize with a single square root. 11 /// 12 /// <glm/gtx/normalized_dot.hpp> need to be included to use these functionalities. 13 14 #pragma once 15 16 // Dependency: 17 #include "../gtx/fast_square_root.hpp" 18 19 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 # pragma message("GLM: GLM_GTX_normalize_dot extension included") 21 #endif 22 23 namespace glm 24 { 25 /// @addtogroup gtx_normalize_dot 26 /// @{ 27 28 /// Normalize parameters and returns the dot product of x and y. 29 /// It's faster that dot(normalize(x), normalize(y)). 30 /// 31 /// @see gtx_normalize_dot extension. 32 template <typename T, precision P, template <typename, precision> class vecType> 33 GLM_FUNC_DECL T normalizeDot(vecType<T, P> const & x, vecType<T, P> const & y); 34 35 /// Normalize parameters and returns the dot product of x and y. 36 /// Faster that dot(fastNormalize(x), fastNormalize(y)). 37 /// 38 /// @see gtx_normalize_dot extension. 39 template <typename T, precision P, template <typename, precision> class vecType> 40 GLM_FUNC_DECL T fastNormalizeDot(vecType<T, P> const & x, vecType<T, P> const & y); 41 42 /// @} 43 }//namespace glm 44 45 #include "normalize_dot.inl" 46