From f84971fca2e97b107161e2ab2b302da6b31b65e2 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 5 Oct 2018 22:17:20 +0200 Subject: [PATCH] avoid throwing exception in intersectCC --- src/Mod/Part/App/GeometryCurvePyImp.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Mod/Part/App/GeometryCurvePyImp.cpp b/src/Mod/Part/App/GeometryCurvePyImp.cpp index fbea3154d5..f1dc3c0c8b 100644 --- a/src/Mod/Part/App/GeometryCurvePyImp.cpp +++ b/src/Mod/Part/App/GeometryCurvePyImp.cpp @@ -805,7 +805,8 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args) return 0; Handle(Geom_Curve) curve2 = Handle(Geom_Curve)::DownCast(static_cast(p)->getGeometryPtr()->handle()); GeomAPI_ExtremaCurveCurve intersector(curve1, curve2); - if (intersector.LowerDistance() > Precision::Confusion()) { + if (intersector.NbExtrema() == 0 || + intersector.LowerDistance() > Precision::Confusion()) { // No intersection return Py::new_reference_to(Py::List()); } @@ -816,7 +817,7 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args) continue; gp_Pnt p1, p2; intersector.Points(i, p1, p2); - points.append(Py::Object(new PointPy(new GeomPoint(Base::Vector3d(p1.X(), p1.Y(), p1.Z()))))); + points.append(Py::asObject(new PointPy(new GeomPoint(Base::Vector3d(p1.X(), p1.Y(), p1.Z()))))); } return Py::new_reference_to(points);