From 37fc29b59b49eca1a420e8e35d3de6294c6b34d2 Mon Sep 17 00:00:00 2001 From: Janis Born Date: Mon, 23 Nov 2015 09:37:08 +0100 Subject: [PATCH] add begin / end iterators for Vector11T component access --- src/OpenMesh/Core/Geometry/Vector11T.hh | 31 ++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/OpenMesh/Core/Geometry/Vector11T.hh b/src/OpenMesh/Core/Geometry/Vector11T.hh index 785d85bd..214d004b 100644 --- a/src/OpenMesh/Core/Geometry/Vector11T.hh +++ b/src/OpenMesh/Core/Geometry/Vector11T.hh @@ -85,7 +85,8 @@ class VectorT { static_assert(DIM >= 1, "VectorT requires positive dimensionality."); private: - std::array values_; + using container = std::array; + container values_; public: @@ -625,6 +626,34 @@ class VectorT { values_.begin(), values_.end(), _rhs.values_.begin(), _rhs.values_.end()); } + + //------------------------------------------------------------ component iterators + + /// \name Component iterators + //@{ + + using iterator = typename container::iterator; + using const_iterator = typename container::const_iterator; + using reverse_iterator = typename container::reverse_iterator; + using const_reverse_iterator = typename container::const_reverse_iterator; + + iterator begin() noexcept { return values_.begin(); } + const_iterator begin() const noexcept { return values_.cbegin(); } + const_iterator cbegin() const noexcept { return values_.cbegin(); } + + iterator end() noexcept { return values_.end(); } + const_iterator end() const noexcept { return values_.cend(); } + const_iterator cend() const noexcept { return values_.cend(); } + + reverse_iterator rbegin() noexcept { return values_.rbegin(); } + const_reverse_iterator rbegin() const noexcept { return values_.crbegin(); } + const_reverse_iterator crbegin() const noexcept { return values_.crbegin(); } + + reverse_iterator rend() noexcept { return values_.rend(); } + const_reverse_iterator rend() const noexcept { return values_.crend(); } + const_reverse_iterator crend() const noexcept { return values_.crend(); } + + //@} }; /// Component wise multiplication from the left