GLM  0.9.5
func_geometric.hpp
1 
36 #ifndef glm_core_func_geometric
37 #define glm_core_func_geometric
38 
39 #include "type_vec3.hpp"
40 
41 namespace glm
42 {
45 
52  template <typename genType>
53  GLM_FUNC_DECL typename genType::value_type length(
54  genType const & x);
55 
62  template <typename genType>
63  GLM_FUNC_DECL typename genType::value_type distance(
64  genType const & p0,
65  genType const & p1);
66 
73  template <typename T, precision P, template <typename, precision> class vecType>
74  GLM_FUNC_DECL T dot(
75  vecType<T, P> const & x,
76  vecType<T, P> const & y);
77 /*
84  template <typename genType>
85  GLM_FUNC_DECL genType dot(
86  genType const & x,
87  genType const & y);
88 */
95  template <typename T, precision P>
96  GLM_FUNC_DECL detail::tvec3<T, P> cross(
97  detail::tvec3<T, P> const & x,
98  detail::tvec3<T, P> const & y);
99 
104  template <typename genType>
105  GLM_FUNC_DECL genType normalize(
106  genType const & x);
107 
114  template <typename genType>
115  GLM_FUNC_DECL genType faceforward(
116  genType const & N,
117  genType const & I,
118  genType const & Nref);
119 
127  template <typename genType>
128  GLM_FUNC_DECL genType reflect(
129  genType const & I,
130  genType const & N);
131 
140  template <typename T, precision P, template <typename, precision> class vecType>
141  GLM_FUNC_DECL vecType<T, P> refract(
142  vecType<T, P> const & I,
143  vecType<T, P> const & N,
144  T const & eta);
145 
147 }//namespace glm
148 
149 #include "func_geometric.inl"
150 
151 #endif//glm_core_func_geometric
GLM_FUNC_DECL genType faceforward(genType const &N, genType const &I, genType const &Nref)
If dot(Nref, I) &lt; 0.0, return N, otherwise, return -N.
GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)
Returns the dot product of x and y, i.e., result = x * y.
GLM_FUNC_DECL detail::tvec3< T, P > cross(detail::tvec3< T, P > const &x, detail::tvec3< T, P > const &y)
Returns the cross product of x and y.
GLM_FUNC_DECL genType normalize(genType const &x)
Returns a vector in the same direction as x but with length of 1.
GLM_FUNC_DECL genType::value_type length(genType const &x)
Returns the length of x, i.e., sqrt(x * x).
GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T const &eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
GLM_FUNC_DECL genType::value_type distance(genType const &p0, genType const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).