summaryrefslogtreecommitdiff
path: root/thirdparty/openmesh/helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/openmesh/helpers.h')
-rw-r--r--thirdparty/openmesh/helpers.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/thirdparty/openmesh/helpers.h b/thirdparty/openmesh/helpers.h
index a0105c8..0e29261 100644
--- a/thirdparty/openmesh/helpers.h
+++ b/thirdparty/openmesh/helpers.h
@@ -7,6 +7,7 @@ namespace OpenMesh {
template<typename Iter, typename... IterParams>
using IteratorFunction = Iter (OpenMesh::PolyConnectivity::*)(IterParams...) const;
+#if OM_GET_VER < 8
template<typename Iter, typename CenterEntityHandle, IteratorFunction<Iter, CenterEntityHandle> BeginFunc,
IteratorFunction<Iter, CenterEntityHandle> EndFunc, typename Adaptor>
auto
@@ -26,6 +27,27 @@ namespace OpenMesh {
{
return std::views::iota(range.begin(), range.end()) | std::forward<Adaptor>(adaptor);
}
+#else
+ template<typename Iter, typename CenterEntityHandle, typename ToEntityHandle,
+ IteratorFunction<Iter, CenterEntityHandle> BeginFunc, IteratorFunction<Iter, CenterEntityHandle> EndFunc,
+ typename Adaptor>
+ auto
+ operator|(const CirculatorRange<CirculatorRangeTraitT<OpenMesh::PolyConnectivity, Iter, CenterEntityHandle,
+ ToEntityHandle, BeginFunc, EndFunc>> & range,
+ Adaptor && adaptor)
+ {
+ 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 EntityRange<RangeTraitT<const OpenMesh::PolyConnectivity, Iter, BeginFunc, EndFunc>> & range,
+ Adaptor && adaptor)
+ {
+ return std::views::iota(range.begin(), range.end()) | std::forward<Adaptor>(adaptor);
+ }
+
+#endif
namespace Helpers {
template<typename Type, template<typename> typename PropertyT> struct Property : public PropertyT<Type> {