diff --git a/src/Mod/Sketcher/App/ExternalGeometryFacade.cpp b/src/Mod/Sketcher/App/ExternalGeometryFacade.cpp index 952c5e0bbf96..a60d60e4646a 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryFacade.cpp +++ b/src/Mod/Sketcher/App/ExternalGeometryFacade.cpp @@ -36,7 +36,7 @@ using namespace Sketcher; -TYPESYSTEM_SOURCE(Sketcher::ExternalGeometryFacade,Part::GeometryExtension) +TYPESYSTEM_SOURCE(Sketcher::ExternalGeometryFacade,Base::BaseClass) ExternalGeometryFacade::ExternalGeometryFacade(): Geo(nullptr), SketchGeoExtension(nullptr), ExternalGeoExtension(nullptr) { diff --git a/src/Mod/Sketcher/App/ExternalGeometryFacade.h b/src/Mod/Sketcher/App/ExternalGeometryFacade.h index fecc6e46f0db..960f1e3f1a4f 100644 --- a/src/Mod/Sketcher/App/ExternalGeometryFacade.h +++ b/src/Mod/Sketcher/App/ExternalGeometryFacade.h @@ -83,6 +83,9 @@ TYPESYSTEM_HEADER_WITH_OVERRIDE(); virtual InternalType::InternalType getInternalType() const override {return getGeoExt()->getInternalType();} virtual void setInternalType(InternalType::InternalType type) override {getGeoExt()->setInternalType(type);} + virtual bool testGeometryMode(int flag) const override { return getGeoExt()->testGeometryMode(flag); } + virtual void setGeometryMode(int flag, bool v=true) override { getGeoExt()->setGeometryMode(flag, v); } + // Geometry Extension Information inline const std::string &getSketchExtensionName () const {return SketchGeoExtension->getName();} inline const std::string &getExternalExtensionName () const {return ExternalGeoExtension->getName();} diff --git a/src/Mod/Sketcher/App/GeometryFacade.cpp b/src/Mod/Sketcher/App/GeometryFacade.cpp index 2b881e94820e..439530f48ca2 100644 --- a/src/Mod/Sketcher/App/GeometryFacade.cpp +++ b/src/Mod/Sketcher/App/GeometryFacade.cpp @@ -36,7 +36,7 @@ using namespace Sketcher; -TYPESYSTEM_SOURCE(Sketcher::GeometryFacade,Part::GeometryExtension) +TYPESYSTEM_SOURCE(Sketcher::GeometryFacade,Base::BaseClass) GeometryFacade::GeometryFacade(): Geo(nullptr), SketchGeoExtension(nullptr) { diff --git a/src/Mod/Sketcher/App/GeometryFacade.h b/src/Mod/Sketcher/App/GeometryFacade.h index b134969c923c..a3b726db7134 100644 --- a/src/Mod/Sketcher/App/GeometryFacade.h +++ b/src/Mod/Sketcher/App/GeometryFacade.h @@ -125,6 +125,12 @@ TYPESYSTEM_HEADER_WITH_OVERRIDE(); virtual InternalType::InternalType getInternalType() const override {return getGeoExt()->getInternalType();} virtual void setInternalType(InternalType::InternalType type) override {getGeoExt()->setInternalType(type);} + virtual bool testGeometryMode(int flag) const override { return getGeoExt()->testGeometryMode(flag); } + virtual void setGeometryMode(int flag, bool v=true) override { getGeoExt()->setGeometryMode(flag, v); } + + bool getBlocked() const { return this->testGeometryMode(GeometryMode::Blocked);} + void setBlocked(bool status = true) {this->setGeometryMode(GeometryMode::Blocked, status);} + // Geometry Extension Information inline const std::string &getExtensionName () const {return SketchGeoExtension->getName();} diff --git a/src/Mod/Sketcher/App/GeometryFacadePy.xml b/src/Mod/Sketcher/App/GeometryFacadePy.xml index 2ace52a7c808..db4febce4a86 100644 --- a/src/Mod/Sketcher/App/GeometryFacadePy.xml +++ b/src/Mod/Sketcher/App/GeometryFacadePy.xml @@ -26,11 +26,20 @@ - returns the Id of the SketchGeometryExtension. + returns the Internal Type of the Geometry. + + + + returns whether the geometry is blocked or not. + + + + + Performs the symmetrical transformation of this geometric object diff --git a/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp b/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp index 77b118c0dcd0..ebc78fd35b72 100644 --- a/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp +++ b/src/Mod/Sketcher/App/GeometryFacadePyImp.cpp @@ -117,6 +117,17 @@ void GeometryFacadePy::setInternalType(Py::String arg) throw Py::ValueError("Argument is not a valid internal geometry type."); } +Py::Boolean GeometryFacadePy::getBlocked(void) const +{ + return Py::Boolean(getGeometryFacadePtr()->getBlocked()); +} + +void GeometryFacadePy::setBlocked(Py::Boolean arg) +{ + getGeometryFacadePtr()->setBlocked(arg); +} + + PyObject* GeometryFacadePy::mirror(PyObject *args) { PyObject* o;