/// @ref gtx_iteration /// @file glm/gtx/iteration.hpp /// /// @defgroup gtx_iteration GLM_GTX_iteration /// @ingroup gtx /// /// Include to use the features of this extension. /// /// Defines begin and end for vectors, matrices and quaternions useful for range based for loop construct #pragma once // Dependencies #include "../detail/setup.hpp" #include "../detail/qualifier.hpp" #ifndef GLM_ENABLE_EXPERIMENTAL # error "GLM: GLM_GTX_iteration is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_iteration extension included") #endif #include namespace glm { /// @addtogroup gtx_iteration /// @{ template GLM_FUNC_DECL GLM_CONSTEXPR T* begin(vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR T* begin(mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR T* begin(qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR const T* begin(const vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR const T* begin(const mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR const T* begin(const qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR T* end(vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR T* end(mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR T* end(qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR const T* end(const vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR const T* end(const mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR const T* end(const qua& q); // Reverse iteration // rbegin,rend template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(const vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(const mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rbegin(const qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(qua& q); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(const vec& v); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(const mat& m); template GLM_FUNC_DECL GLM_CONSTEXPR std::reverse_iterator rend(const qua& q); /// @} }//namespace glm #include "iteration.inl"