From af72ae09c143d9bb086a762b8cb9f1fb48ca3e5f Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 28 Apr 2016 11:08:28 +0200 Subject: [PATCH] + implement TopoEdge.isSeam(face) --- src/Mod/Part/App/TopoShapeEdgePy.xml | 5 +++++ src/Mod/Part/App/TopoShapeEdgePyImp.cpp | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/Mod/Part/App/TopoShapeEdgePy.xml b/src/Mod/Part/App/TopoShapeEdgePy.xml index 59a4a1eb4..bc37223f0 100644 --- a/src/Mod/Part/App/TopoShapeEdgePy.xml +++ b/src/Mod/Part/App/TopoShapeEdgePy.xml @@ -109,6 +109,11 @@ Part.show(s) Splits the edge at the given parameter values and builds a wire out of it + + + isSeam(Face) - Checks whether the edge is a seam edge. + + Set or get the tolerance of the vertex diff --git a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp index 8b46c21bd..203221bc5 100644 --- a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp +++ b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp @@ -52,6 +52,7 @@ # include # include # include +# include # include #endif @@ -628,6 +629,27 @@ PyObject* TopoShapeEdgePy::split(PyObject *args) return 0; } +PyObject* TopoShapeEdgePy::isSeam(PyObject *args) +{ + PyObject* face; + if (!PyArg_ParseTuple(args, "O!", &TopoShapeFacePy::Type, &face)) + return 0; + + try { + const TopoDS_Edge& e = TopoDS::Edge(this->getTopoShapePtr()->_Shape); + const TopoDS_Face& f = TopoDS::Face(static_cast(face)->getTopoShapePtr()->_Shape); + + ShapeAnalysis_Edge sa; + Standard_Boolean ok = sa.IsSeam(e, f); + return PyBool_FromLong(ok ? 1 : 0); + } + catch (Standard_Failure) { + Handle_Standard_Failure e = Standard_Failure::Caught(); + PyErr_SetString(PartExceptionOCCError, e->GetMessageString()); + return 0; + } +} + PyObject* TopoShapeEdgePy::setTolerance(PyObject *args) { double tol;