From e16b9f47afe7f95234e3fcfd06b2fb46c98a9346 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Wed, 10 Nov 2021 18:44:27 +0100 Subject: [PATCH] Part: Geometry - Curve member to calculate the normal at Point ============================================================== Convenience member function combining closestParameter and normalAt using parameter. --- src/Mod/Part/App/Geometry.cpp | 8 ++++++++ src/Mod/Part/App/Geometry.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index bc26e1f52b..fdcc29a688 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -698,6 +698,14 @@ bool GeomCurve::normalAt(double u, Base::Vector3d& dir) const return false; } +bool GeomCurve::normalAt(const Base::Vector3d & curvepoint, Base::Vector3d & dir) const +{ + double u; + closestParameter(curvepoint, u); + + return normalAt(u, dir); +} + bool GeomCurve::intersect( const GeomCurve *c, std::vector>& points, double tol) const diff --git a/src/Mod/Part/App/Geometry.h b/src/Mod/Part/App/Geometry.h index 1dd2210dee..467f6b8a5d 100644 --- a/src/Mod/Part/App/Geometry.h +++ b/src/Mod/Part/App/Geometry.h @@ -197,6 +197,7 @@ public: double curvatureAt(double u) const; double length(double u, double v) const; bool normalAt(double u, Base::Vector3d& dir) const; + bool normalAt(const Base::Vector3d & curvepoint, Base::Vector3d& dir) const; bool intersect(const GeomCurve *c, std::vector>& points, double tol = Precision::Confusion()) const;