summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thirdparty/openmesh/helpers.h14
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)