From 53ca0eb6a30ddbaacc035f0e02d64ba6172d7144 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 15 Sep 2016 10:36:44 +0200 Subject: [PATCH] support offset curve in edge.Curve for occ 7.0 --- src/Mod/Part/App/TopoShapeEdgePyImp.cpp | 44 +++++++++++++++++-------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp index 857021f19..ef6221123 100644 --- a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp +++ b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp @@ -43,6 +43,7 @@ # include # include # include +# include # include # include # include @@ -54,6 +55,7 @@ # include # include # include +# include #endif #include @@ -72,21 +74,22 @@ #include "Tools.h" #include "OCCError.h" #include "TopoShape.h" -#include "TopoShapeFacePy.h" -#include "TopoShapeVertexPy.h" -#include "TopoShapeWirePy.h" -#include "TopoShapeEdgePy.h" -#include "TopoShapeEdgePy.cpp" +#include +#include +#include +#include +#include #include "Geometry.h" -#include "GeometryPy.h" -#include "LinePy.h" -#include "CirclePy.h" -#include "EllipsePy.h" -#include "HyperbolaPy.h" -#include "ParabolaPy.h" -#include "BezierCurvePy.h" -#include "BSplineCurvePy.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include using namespace Part; @@ -741,6 +744,21 @@ Py::Object TopoShapeEdgePy::getCurve() const GeomBSplineCurve* curve = new GeomBSplineCurve(adapt.BSpline()); return Py::Object(new BSplineCurvePy(curve),true); } +#if OCC_VERSION_HEX >= 0x070000 + case GeomAbs_OffsetCurve: + { + Standard_Real first, last; + Handle_Geom_Curve c = BRep_Tool::Curve(e, first, last); + Handle_Geom_OffsetCurve off = Handle_Geom_OffsetCurve::DownCast(c); + if (!off.IsNull()) { + GeomOffsetCurve* curve = new GeomOffsetCurve(off); + return Py::Object(new OffsetCurvePy(curve),true); + } + else { + throw Py::RuntimeError("Failed to convert to offset curve"); + } + } +#endif case GeomAbs_OtherCurve: break; }