diff --git a/src/Mod/Sketcher/App/SketchGeometryExtensionPy.xml b/src/Mod/Sketcher/App/SketchGeometryExtensionPy.xml
index c5c8ce4e1f..b48bc17237 100644
--- a/src/Mod/Sketcher/App/SketchGeometryExtensionPy.xml
+++ b/src/Mod/Sketcher/App/SketchGeometryExtensionPy.xml
@@ -15,10 +15,20 @@
Describes a SketchGeometryExtension
+
+
+ Returns a boolean indicating whether the given bit is set.
+
+
+
+
+ Sets the given bit to true/false.
+
+
- returns the Id of the SketchGeometryExtension.
+ Returns the Id of the SketchGeometryExtension.
@@ -26,7 +36,7 @@
- returns the Id of the SketchGeometryExtension.
+ Returns the Id of the SketchGeometryExtension.
diff --git a/src/Mod/Sketcher/App/SketchGeometryExtensionPyImp.cpp b/src/Mod/Sketcher/App/SketchGeometryExtensionPyImp.cpp
index 3d5bfb2cf9..efed2ae53a 100644
--- a/src/Mod/Sketcher/App/SketchGeometryExtensionPyImp.cpp
+++ b/src/Mod/Sketcher/App/SketchGeometryExtensionPyImp.cpp
@@ -124,6 +124,55 @@ void SketchGeometryExtensionPy::setBlocked(Py::Boolean arg)
getSketchGeometryExtensionPtr()->setGeometryMode(GeometryMode::Blocked, arg);
}
+Py::Boolean SketchGeometryExtensionPy::getConstruction(void) const
+{
+ return Py::Boolean(getSketchGeometryExtensionPtr()->testGeometryMode(GeometryMode::Construction));
+}
+
+void SketchGeometryExtensionPy::setConstruction(Py::Boolean arg)
+{
+ getSketchGeometryExtensionPtr()->setGeometryMode(GeometryMode::Construction, arg);
+}
+
+PyObject* SketchGeometryExtensionPy::testGeometryMode(PyObject *args)
+{
+ char* flag;
+ if (PyArg_ParseTuple(args, "s",&flag)) {
+
+ GeometryMode::GeometryMode mode;
+
+ if(getSketchGeometryExtensionPtr()->getGeometryModeFromName(flag, mode))
+ return new_reference_to(Py::Boolean(getSketchGeometryExtensionPtr()->testGeometryMode(mode)));
+
+ PyErr_SetString(PyExc_TypeError, "Flag string does not exist.");
+ return NULL;
+ }
+
+ PyErr_SetString(PyExc_TypeError, "No flag string provided.");
+ return NULL;
+}
+
+PyObject* SketchGeometryExtensionPy::setGeometryMode(PyObject *args)
+{
+ char * flag;
+ PyObject * bflag = Py_True;
+ if (PyArg_ParseTuple(args, "s|O!", &flag, &PyBool_Type, &bflag)) {
+
+ GeometryMode::GeometryMode mode;
+
+ if(getSketchGeometryExtensionPtr()->getGeometryModeFromName(flag, mode)) {
+ getSketchGeometryExtensionPtr()->setGeometryMode(mode, PyObject_IsTrue(bflag) ? true : false);
+ Py_Return;
+ }
+
+ PyErr_SetString(PyExc_TypeError, "Flag string does not exist.");
+ return NULL;
+ }
+
+ PyErr_SetString(PyExc_TypeError, "No flag string provided.");
+ Py_Return;
+}
+
PyObject *SketchGeometryExtensionPy::getCustomAttributes(const char* /*attr*/) const
{
return 0;