diff --git a/src/Mod/Sketcher/App/ExternalGeometryExtension.cpp b/src/Mod/Sketcher/App/ExternalGeometryExtension.cpp index 578d5ff4683f..f229e690e323 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryExtension.cpp +++ b/src/Mod/Sketcher/App/ExternalGeometryExtension.cpp @@ -33,7 +33,7 @@ using namespace Sketcher; //---------- Geometry Extension -constexpr std::array ExternalGeometryExtension::flag2str; +constexpr std::array ISketchExternalGeometryExtension::flag2str; TYPESYSTEM_SOURCE(Sketcher::ExternalGeometryExtension,Part::GeometryExtension) diff --git a/src/Mod/Sketcher/App/ExternalGeometryExtension.h b/src/Mod/Sketcher/App/ExternalGeometryExtension.h index e7ec183ed4c8..58557fdc1fde 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryExtension.h +++ b/src/Mod/Sketcher/App/ExternalGeometryExtension.h @@ -25,13 +25,13 @@ #include #include +#include namespace Sketcher { -class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension +class ISketchExternalGeometryExtension { - TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: // START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) enum Flag { @@ -46,6 +46,25 @@ class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension constexpr static std::array flag2str {{ "Defining", "Frozen", "Detached","Missing", "Sync" }}; +public: + // Identification information + // START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) + virtual bool testFlag(int flag) const = 0; + virtual void setFlag(int flag, bool v=true) = 0; + // END_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) + + virtual bool isClear() const = 0; + virtual size_t flagSize() const = 0; + + virtual const std::string& getRef() const = 0; + virtual void setRef(const std::string & ref) = 0; +}; + +class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension, public ISketchExternalGeometryExtension +{ + TYPESYSTEM_HEADER_WITH_OVERRIDE(); +public: + ExternalGeometryExtension() = default; virtual ~ExternalGeometryExtension() override = default; @@ -59,15 +78,15 @@ class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension virtual PyObject *getPyObject(void) override; // START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) - bool testFlag(int flag) const { return Flags.test((size_t)(flag)); } - void setFlag(int flag, bool v=true) { Flags.set((size_t)(flag),v); } + virtual bool testFlag(int flag) const override { return Flags.test((size_t)(flag)); } + virtual void setFlag(int flag, bool v=true) override { Flags.set((size_t)(flag),v); } // END_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) - bool isClear() const {return Flags.none();} - size_t flagSize() const {return Flags.size();} + virtual bool isClear() const override {return Flags.none();} + virtual size_t flagSize() const override {return Flags.size();} - const std::string& getRef() const {return Ref;} - void setRef(const std::string & ref) {Ref = ref;} + virtual const std::string& getRef() const override {return Ref;} + virtual void setRef(const std::string & ref) override {Ref = ref;} private: ExternalGeometryExtension(const ExternalGeometryExtension&) = default; diff --git a/src/Mod/Sketcher/App/ExternalGeometryExtensionPyImp.cpp b/src/Mod/Sketcher/App/ExternalGeometryExtensionPyImp.cpp index bdf010574ccc..f1addee1407f 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryExtensionPyImp.cpp +++ b/src/Mod/Sketcher/App/ExternalGeometryExtensionPyImp.cpp @@ -55,7 +55,7 @@ std::string ExternalGeometryExtensionPy::representation(void) const bool first=true; - for(size_t i=0;itestFlag(i)) { if(first) { first=false;