44 #include "../detail/setup.hpp"
46 #if !GLM_HAS_RANGE_FOR
47 # error "GLM_GTX_range requires C++11 suppport or 'range for'"
50 #include "../gtc/type_ptr.hpp"
57 template <
typename T, precision P>
58 detail::component_count_t number_of_elements_(tvec2<T, P>
const & v){
59 return detail::component_count(v);
62 template <
typename T, precision P>
63 detail::component_count_t number_of_elements_(tvec3<T, P>
const & v){
64 return detail::component_count(v);
67 template <
typename T, precision P>
68 detail::component_count_t number_of_elements_(tvec4<T, P>
const & v){
69 return detail::component_count(v);
72 template <
typename genType>
73 detail::component_count_t number_of_elements_(genType
const & m){
74 return detail::component_count(m) * detail::component_count(m[0]);
81 template <
typename genType>
82 const typename genType::value_type * begin(genType
const & v){
86 template <
typename genType>
87 const typename genType::value_type * end(genType
const & v){
88 return begin(v) + detail::number_of_elements_(v);
91 template <
typename genType>
92 typename genType::value_type * begin(genType& v){
96 template <
typename genType>
97 typename genType::value_type * end(genType& v){
98 return begin(v) + detail::number_of_elements_(v);
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)
Return the constant address to the data of the input parameter.