diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-26 18:31:18 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-26 18:31:18 +0000 |
commit | 953f475b857fcf2f12a0175fb214ed13cf41d1c9 (patch) | |
tree | 262eb109d9d357b3c42c0f90e105e84a3e334df8 | |
parent | Create perf-terrain test window globally (diff) | |
download | ilt-953f475b857fcf2f12a0175fb214ed13cf41d1c9.tar.bz2 ilt-953f475b857fcf2f12a0175fb214ed13cf41d1c9.tar.xz ilt-953f475b857fcf2f12a0175fb214ed13cf41d1c9.zip |
Add range support for OpenMesh::PolyConnectivity::EntityRange
-rw-r--r-- | thirdparty/openmesh/helpers.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/thirdparty/openmesh/helpers.h b/thirdparty/openmesh/helpers.h index d148c06..a0105c8 100644 --- a/thirdparty/openmesh/helpers.h +++ b/thirdparty/openmesh/helpers.h @@ -4,8 +4,8 @@ #include <ranges> namespace OpenMesh { - template<typename Iter, typename CenterEntityHandle> - using IteratorFunction = Iter (OpenMesh::PolyConnectivity::*)(CenterEntityHandle) const; + template<typename Iter, typename... IterParams> + using IteratorFunction = Iter (OpenMesh::PolyConnectivity::*)(IterParams...) const; template<typename Iter, typename CenterEntityHandle, IteratorFunction<Iter, CenterEntityHandle> BeginFunc, IteratorFunction<Iter, CenterEntityHandle> EndFunc, typename Adaptor> @@ -17,6 +17,16 @@ namespace OpenMesh { return std::views::iota(range.begin(), range.end()) | std::forward<Adaptor>(adaptor); } + template<typename Iter, IteratorFunction<Iter> BeginFunc, IteratorFunction<Iter> EndFunc, typename Adaptor> + auto + operator|( + const OpenMesh::PolyConnectivity::EntityRange<const OpenMesh::PolyConnectivity, Iter, BeginFunc, EndFunc> & + range, + Adaptor && adaptor) + { + return std::views::iota(range.begin(), range.end()) | std::forward<Adaptor>(adaptor); + } + namespace Helpers { template<typename Type, template<typename> typename PropertyT> struct Property : public PropertyT<Type> { template<typename... Params> explicit Property(OpenMesh::BaseKernel * kernel, Params &&... params) |