diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index 6096e4a2eb..757b3048a1 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -1530,6 +1530,18 @@ void GeomBSplineCurve::increaseMultiplicity(int index, int multiplicity) curve->IncreaseMultiplicity(index, multiplicity); return; } + catch (Standard_Failure& e) { + THROWM(Base::CADKernelError,e.GetMessageString()) + } +} + +void GeomBSplineCurve::insertKnot(double param, int multiplicity) +{ + try { + Handle(Geom_BSplineCurve) curve = Handle(Geom_BSplineCurve)::DownCast(this->handle()); + curve->InsertKnot(param, multiplicity); + return; + } catch (Standard_Failure& e) { THROWM(Base::CADKernelError,e.GetMessageString()) } diff --git a/src/Mod/Part/App/Geometry.h b/src/Mod/Part/App/Geometry.h index 2a3c09a316..adc55da70a 100644 --- a/src/Mod/Part/App/Geometry.h +++ b/src/Mod/Part/App/Geometry.h @@ -308,6 +308,7 @@ public: bool approximate(double tol3d, int maxSegments, int maxDegree, int continuity); void increaseMultiplicity(int index, int multiplicity); + void insertKnot(double param, int multiplicity); bool removeKnot(int index, int multiplicity, double tolerance = Precision::PConfusion()); void Trim(double u, double v);