3rdparty/glm/doc/api/a00090_source.html
| | 0.9.8 |
range.hpp
Go to the documentation of this file.
1
13 #pragma once
14
15 // Dependencies
16 #include "../detail/setup.hpp"
17
18 #if !GLM_HAS_RANGE_FOR
19 # error "GLM_GTX_range requires C++11 suppport or 'range for'"
20 #endif
21
22 #include "../gtc/type_ptr.hpp"
23 #include "../gtc/vec1.hpp"
24
25 namespace glm
26 {
29
30template <typename T, precision P>
31inline length_t components(tvec1<T, P> const & v)
32 {
33return v.length();
34 }
35
36template <typename T, precision P>
37inline length_t components(tvec2<T, P> const & v)
38 {
39return v.length();
40 }
41
42template <typename T, precision P>
43inline length_t components(tvec3<T, P> const & v)
44 {
45return v.length();
46 }
47
48template <typename T, precision P>
49inline length_t components(tvec4<T, P> const & v)
50 {
51return v.length();
52 }
53
54template <typename genType>
55inline length_t components(genType const & m)
56 {
57return m.length() * m[0].length();
58 }
59
60template <typename genType>
61inline typename genType::value_type const * begin(genType const & v)
62 {
63return value_ptr(v);
64 }
65
66template <typename genType>
67inline typename genType::value_type const * end(genType const & v)
68 {
69return begin(v) + components(v);
70 }
71
72template <typename genType>
73inline typename genType::value_type * begin(genType& v)
74 {
75return value_ptr(v);
76 }
77
78template <typename genType>
79inline typename genType::value_type * end(genType& v)
80 {
81return begin(v) + components(v);
82 }
83
85 }//namespace glm
Definition: _noise.hpp:11
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.
Generated by 1.8.10