Clutter Engine 0.0.1
Loading...
Searching...
No Matches
orthonormalize.inl
1
2
3namespace glm
4{
5 template<typename T, qualifier Q>
6 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m)
7 {
8 mat<3, 3, T, Q> r = m;
9
10 r[0] = normalize(r[0]);
11
12 T d0 = dot(r[0], r[1]);
13 r[1] -= r[0] * d0;
14 r[1] = normalize(r[1]);
15
16 T d1 = dot(r[1], r[2]);
17 d0 = dot(r[0], r[2]);
18 r[2] -= r[0] * d0 + r[1] * d1;
19 r[2] = normalize(r[2]);
20
21 return r;
22 }
23
24 template<typename T, qualifier Q>
25 GLM_FUNC_QUALIFIER vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y)
26 {
27 return normalize(x - y * dot(y, x));
28 }
29}//namespace glm
GLM_FUNC_QUALIFIER vec< L, T, Q > normalize(vec< L, T, Q > const &x)
Definition func_geometric.inl:190
GLM_FUNC_DECL mat< 3, 3, T, Q > orthonormalize(mat< 3, 3, T, Q > const &m)
Definition orthonormalize.inl:6
Core features
Definition common.hpp:21
Definition qualifier.hpp:36
Definition qualifier.hpp:35