diff --git a/src/Mod/Part/App/GeometryPy.xml b/src/Mod/Part/App/GeometryPy.xml index b8d5cc425f..d259660688 100644 --- a/src/Mod/Part/App/GeometryPy.xml +++ b/src/Mod/Part/App/GeometryPy.xml @@ -53,6 +53,14 @@ It describes the common behavior of these objects when: Create a clone of this geometry with the same Tag + + + + isSame(geom, tol, angulartol) -> boolean + + Compare this geometry to another one + + Returns a boolean indicating whether a geometry extension of the type indicated as a string exists. diff --git a/src/Mod/Part/App/GeometryPyImp.cpp b/src/Mod/Part/App/GeometryPyImp.cpp index 095ef90d54..8cc3b90743 100644 --- a/src/Mod/Part/App/GeometryPyImp.cpp +++ b/src/Mod/Part/App/GeometryPyImp.cpp @@ -203,6 +203,20 @@ PyObject* GeometryPy::clone(PyObject *args) return cpy; } +PyObject* GeometryPy::isSame(PyObject *args) +{ + PyObject* other {}; + double tol {}; + double angular {}; + if (!PyArg_ParseTuple(args, "O!dd", &GeometryPy::Type, &other, &tol, &angular)) { + return nullptr; + } + + Part::Geometry* geom = this->getGeometryPtr(); + bool same = geom->isSame(*static_cast(other)->getGeometryPtr(), tol, angular); + return Py::new_reference_to(Py::Boolean(same)); +} + PyObject* GeometryPy::setExtension(PyObject *args) { PyObject* o;