diff --git a/src/Mod/Sketcher/App/GeometryFacade.cpp b/src/Mod/Sketcher/App/GeometryFacade.cpp index 405775c00e..8a13bc1e4c 100644 --- a/src/Mod/Sketcher/App/GeometryFacade.cpp +++ b/src/Mod/Sketcher/App/GeometryFacade.cpp @@ -99,7 +99,19 @@ void GeometryFacade::initExtension() const const_cast(this)->SketchGeoExtension = ext; } +void GeometryFacade::ensureSketchGeometryExtension(Part::Geometry * geometry) +{ + if(!geometry->hasExtension(SketchGeometryExtension::getClassTypeId())) { + geometry->setExtension(std::make_unique()); // Create getExtension + } +} +void GeometryFacade::copyId(const Part::Geometry * src, Part::Geometry * dst) +{ + auto gfsrc = GeometryFacade::getFacade(src); + auto gfdst = GeometryFacade::getFacade(dst); + gfdst->setId(gfsrc->getId()); +} PyObject * GeometryFacade::getPyObject(void) { diff --git a/src/Mod/Sketcher/App/GeometryFacade.h b/src/Mod/Sketcher/App/GeometryFacade.h index 8d5af28ee8..6dcd11be55 100644 --- a/src/Mod/Sketcher/App/GeometryFacade.h +++ b/src/Mod/Sketcher/App/GeometryFacade.h @@ -56,6 +56,10 @@ public: // Factory methods static std::unique_ptr getFacade(Part::Geometry * geometry); static std::unique_ptr getFacade(const Part::Geometry * geometry); +public: // Utility methods + static void ensureSketchGeometryExtension(Part::Geometry * geometry); + static void copyId(const Part::Geometry * src, Part::Geometry * dst); + public: void setGeometry(Part::Geometry *geometry);