diff --git a/src/OpenMesh/Core/Utils/PropertyManager.hh b/src/OpenMesh/Core/Utils/PropertyManager.hh index 5d8cb3606fd00e1ddcd784bcec36bd97aeeb94d1..6281c9cdbc5367d824e9ae99e203675991100db9 100644 --- a/src/OpenMesh/Core/Utils/PropertyManager.hh +++ b/src/OpenMesh/Core/Utils/PropertyManager.hh @@ -177,6 +177,13 @@ class PropertyManager { return std::move(pm); } + + PropertyManager duplicate(const char *clone_name) { + PropertyManager pm(*mesh_, clone_name, false); + pm.mesh_->property(pm.prop_) = mesh_->property(prop_); + return std::move(pm); + } + #else class Proxy { private: @@ -215,6 +222,12 @@ class PropertyManager { pm.retain(); return (Proxy)pm; } + + Proxy duplicate(const char *clone_name) { + PropertyManager pm(*mesh_, clone_name, false); + pm.mesh_->property(pm.prop_) = mesh_->property(prop_); + return (Proxy)pm; + } #endif /**