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