0.9.8
func_geometric.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include "type_vec3.hpp"
14 
15 namespace glm
16 {
19 
26  template <typename T, precision P, template <typename, precision> class vecType>
27  GLM_FUNC_DECL T length(
28  vecType<T, P> const & x);
29 
36  template <typename T, precision P, template <typename, precision> class vecType>
37  GLM_FUNC_DECL T distance(
38  vecType<T, P> const & p0,
39  vecType<T, P> const & p1);
40 
47  template <typename T, precision P, template <typename, precision> class vecType>
48  GLM_FUNC_DECL T dot(
49  vecType<T, P> const & x,
50  vecType<T, P> const & y);
51 
58  template <typename T, precision P>
59  GLM_FUNC_DECL tvec3<T, P> cross(
60  tvec3<T, P> const & x,
61  tvec3<T, P> const & y);
62 
68  template <typename T, precision P, template <typename, precision> class vecType>
69  GLM_FUNC_DECL vecType<T, P> normalize(
70  vecType<T, P> const & x);
71 
78  template <typename T, precision P, template <typename, precision> class vecType>
79  GLM_FUNC_DECL vecType<T, P> faceforward(
80  vecType<T, P> const & N,
81  vecType<T, P> const & I,
82  vecType<T, P> const & Nref);
83 
91  template <typename genType>
92  GLM_FUNC_DECL genType reflect(
93  genType const & I,
94  genType const & N);
95 
104  template <typename T, precision P, template <typename, precision> class vecType>
105  GLM_FUNC_DECL vecType<T, P> refract(
106  vecType<T, P> const & I,
107  vecType<T, P> const & N,
108  T eta);
109 
111 }//namespace glm
112 
113 #include "func_geometric.inl"
GLM Core
Definition: _noise.hpp:11
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 tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)
Returns the cross product of x and y.
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 vecType< T, P > faceforward(vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)
If dot(Nref, I) < 0.0, return N, otherwise, return -N.
GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)
Returns a vector in the same direction as x but with length of 1.
GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
GLM_FUNC_DECL T length(vecType< T, P > 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 eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...